1{
2 "$schema": "https://json-schema.org/draft-07/schema",
3 "$defs": {
4 "colors": {
5 "oneOf": [
6 {
7 "type": "string",
8 "$comment": "https://github.com/fastfetch-cli/fastfetch/wiki/Color-Format-Specification",
9 "examples": [
10 "reset_", "bright_", "dim_", "italic_", "underline_", "blink_", "inverse_", "hidden_", "strike_", "light_",
11 "black", "red", "green", "yellow", "blue", "magenta", "cyan", "white", "default"
12 ]
13 },
14 {
15 "type": "null",
16 "$comment": "Disable default coloring"
17 }
18 ]
19 },
20 "key": {
21 "description": "Module key\nUse a single space (` `) to hide the key",
22 "type": "string"
23 },
24 "keyColor": {
25 "description": "Color of the module key. Overrides `display.color.keys`",
26 "$ref": "#/$defs/colors"
27 },
28 "keyWidth": {
29 "description": "Width of the module key. Overrides `display.key.width`",
30 "type": "integer",
31 "minimum": 1
32 },
33 "keyIcon": {
34 "description": "Icon to display when `display.key.type` is set to `icon`",
35 "type": "string"
36 },
37 "outputColor": {
38 "description": "Color of the module output. Overrides `display.color.output`",
39 "$ref": "#/$defs/colors"
40 },
41 "percentType": {
42 "description": "Percentage output style",
43 "oneOf": [
44 {
45 "type": "number",
46 "description": "0 uses the global setting; 1 shows the percentage number; 2 shows a multicolor bar; 3 shows both; 6 shows only the bar; 9 shows a colored number; 10 shows a monochrome bar",
47 "minimum": 0,
48 "maximum": 255,
49 "default": 9
50 },
51 {
52 "type": "array",
53 "description": "Array of style flags",
54 "items": {
55 "enum": [
56 "num",
57 "bar",
58 "hide-others",
59 "num-color",
60 "bar-monochrome"
61 ]
62 },
63 "uniqueItems": true,
64 "default": [
65 "num",
66 "num-color"
67 ]
68 }
69 ]
70 },
71 "percent": {
72 "description": "Color thresholds for percentage output",
73 "type": "object",
74 "additionalProperties": false,
75 "properties": {
76 "green": {
77 "type": "integer",
78 "minimum": 0,
79 "maximum": 100,
80 "description": "Values below this threshold are shown in green"
81 },
82 "yellow": {
83 "type": "integer",
84 "minimum": 0,
85 "maximum": 100,
86 "description": "Values between the green and yellow thresholds are shown in yellow.\nValues above the yellow threshold are shown in red"
87 },
88 "type": {
89 "$ref": "#/$defs/percentType"
90 }
91 }
92 },
93 "temperature": {
94 "description": "Whether to detect and display temperature, if supported",
95 "oneOf": [
96 {
97 "type": "boolean",
98 "default": false
99 },
100 {
101 "type": "object",
102 "additionalProperties": false,
103 "properties": {
104 "green": {
105 "type": "integer",
106 "minimum": 0,
107 "maximum": 100,
108 "description": "Values in Celsius below this threshold are shown in green"
109 },
110 "yellow": {
111 "type": "integer",
112 "minimum": 0,
113 "maximum": 100,
114 "description": "Values in Celsius between the green and yellow thresholds are shown in yellow.\nValues above the yellow threshold are shown in red"
115 }
116 }
117 }
118 ]
119 },
120 "systems": {
121 "type": "string",
122 "enum": [
123 "Android",
124 "Linux",
125 "DragonFly",
126 "MidnightBSD",
127 "FreeBSD",
128 "macOS",
129 "Windows",
130 "SunOS",
131 "OpenBSD",
132 "NetBSD",
133 "Haiku",
134 "GNU",
135 "Unknown"
136 ]
137 },
138 "architectures": {
139 "type": "string",
140 "enum": [
141 "x86_64",
142 "i386",
143 "ia64",
144 "aarch64",
145 "arm",
146 "mips",
147 "powerpc",
148 "riscv",
149 "s390x",
150 "loongarch",
151 "sparc",
152 "alpha",
153 "hppa",
154 "sh",
155 "m68k",
156 "Unknown"
157 ]
158 },
159 "conditions": {
160 "description": "Show the module only if these conditions are met",
161 "type": "object",
162 "additionalProperties": false,
163 "properties": {
164 "system": {
165 "description": "System to match",
166 "oneOf": [
167 {
168 "$ref": "#/$defs/systems"
169 },
170 {
171 "type": "array",
172 "uniqueItems": true,
173 "items": {
174 "$ref": "#/$defs/systems"
175 },
176 "description": "Array of systems to match"
177 },
178 {
179 "type": "null",
180 "description": "Set to null to disable this condition"
181 }
182 ]
183 },
184 "!system": {
185 "description": "System not to match",
186 "oneOf": [
187 {
188 "$ref": "#/$defs/systems"
189 },
190 {
191 "type": "array",
192 "uniqueItems": true,
193 "items": {
194 "$ref": "#/$defs/systems"
195 },
196 "description": "Array of systems not to match"
197 },
198 {
199 "type": "null",
200 "description": "Set to null to disable this condition"
201 }
202 ]
203 },
204 "arch": {
205 "description": "Architecture to match",
206 "oneOf": [
207 {
208 "$ref": "#/$defs/architectures"
209 },
210 {
211 "type": "array",
212 "uniqueItems": true,
213 "items": {
214 "$ref": "#/$defs/architectures"
215 },
216 "description": "Array of architectures to match"
217 },
218 {
219 "type": "null",
220 "description": "Set to null to disable this condition"
221 }
222 ]
223 },
224 "!arch": {
225 "description": "Architecture not to match",
226 "oneOf": [
227 {
228 "$ref": "#/$defs/architectures"
229 },
230 {
231 "type": "array",
232 "uniqueItems": true,
233 "items": {
234 "$ref": "#/$defs/architectures"
235 },
236 "description": "Array of architectures not to match"
237 },
238 {
239 "type": "null",
240 "description": "Set to null to disable this condition"
241 }
242 ]
243 },
244 "succeeded": {
245 "description": "Whether the module succeeded in the last run",
246 "oneOf": [
247 {
248 "type": "boolean",
249 "description": "True to show the module only if the last run succeeded; false to show it only if the last run failed"
250 },
251 {
252 "type": "null",
253 "description": "Set to null to disable this condition"
254 }
255 ]
256 }
257 }
258 },
259 "spaceBeforeUnit": {
260 "type": "string",
261 "description": "Whether to insert a space before the unit",
262 "oneOf": [
263 {
264 "const": "default",
265 "description": "Use the default behavior of the module"
266 },
267 {
268 "const": "always",
269 "description": "Always add a space before the unit"
270 },
271 {
272 "const": "never",
273 "description": "Never add a space before the unit"
274 }
275 ]
276 },
277
278
279 "batteryFormat": {
280 "description": "Output format for the `Battery` module. See Wiki for formatting syntax\n 1. {manufacturer}: Battery manufacturer\n 2. {model-name}: Battery model name *\n 3. {technology}: Battery technology\n 4. {capacity}: Battery capacity (percentage num)\n 5. {status}: Battery status\n 6. {temperature}: Battery temperature (formatted)\n 7. {cycle-count}: Battery cycle count\n 8. {serial}: Battery serial number\n 9. {manufacture-date}: Battery manufacture date\n 10. {capacity-bar}: Battery capacity (percentage bar)\n 11. {time-days}: Battery time remaining days\n 12. {time-hours}: Battery time remaining hours\n 13. {time-minutes}: Battery time remaining minutes\n 14. {time-seconds}: Battery time remaining seconds\n 15. {time-formatted}: Battery time remaining (formatted)",
281 "type": "string"
282 },
283 "biosFormat": {
284 "description": "Output format for the `BIOS` module. See Wiki for formatting syntax\n 1. {date}: BIOS date\n 2. {release}: BIOS release\n 3. {vendor}: BIOS vendor\n 4. {version}: BIOS version\n 5. {type}: Firmware type *",
285 "type": "string"
286 },
287 "bluetoothFormat": {
288 "description": "Output format for the `Bluetooth` module. See Wiki for formatting syntax\n 1. {name}: Name\n 2. {address}: Address\n 3. {type}: Type\n 4. {device-type}: Bluetooth stacks the device answers on\n 5. {battery-percentage}: Battery percentage number\n 6. {battery-percentage-bar}: Battery percentage bar\n 7. {signal-quality}: Signal quality number\n 8. {signal-quality-bar}: Signal quality bar\n 9. {connected}: Is connected",
289 "type": "string"
290 },
291 "bluetoothradioFormat": {
292 "description": "Output format for the `BluetoothRadio` module. See Wiki for formatting syntax\n 1. {name}: Radio name for discovering *\n 2. {address}: Address\n 3. {lmp-version}: LMP version\n 4. {lmp-subversion}: LMP subversion\n 5. {version}: Bluetooth version\n 6. {vendor}: Vendor\n 7. {discoverable}: Discoverable\n 8. {connectable}: Connectable / Pairable",
293 "type": "string"
294 },
295 "boardFormat": {
296 "description": "Output format for the `Board` module. See Wiki for formatting syntax\n 1. {name}: Board name\n 2. {vendor}: Board vendor\n 3. {version}: Board version\n 4. {serial}: Board serial number",
297 "type": "string"
298 },
299 "bootmgrFormat": {
300 "description": "Output format for the `Bootmgr` module. See Wiki for formatting syntax\n 1. {name}: Name / description\n 2. {firmware-path}: Firmware file path\n 3. {firmware-name}: Firmware file name\n 4. {secure-boot}: Is secure boot enabled\n 5. {order}: Boot order",
301 "type": "string"
302 },
303 "brightnessFormat": {
304 "description": "Output format for the `Brightness` module. See Wiki for formatting syntax\n 1. {percentage}: Screen brightness (percentage num)\n 2. {name}: Screen name *\n 3. {max}: Maximum brightness value\n 4. {min}: Minimum brightness value\n 5. {current}: Current brightness value\n 6. {percentage-bar}: Screen brightness (percentage bar)\n 7. {is-builtin}: Is built-in screen",
305 "type": "string"
306 },
307 "btrfsFormat": {
308 "description": "Output format for the `Btrfs` module. See Wiki for formatting syntax\n 1. {name}: Name / Label *\n 2. {uuid}: UUID\n 3. {devices}: Associated devices\n 4. {features}: Enabled features\n 5. {used}: Size used\n 6. {allocated}: Size allocated\n 7. {total}: Size total\n 8. {used-percentage}: Used percentage num\n 9. {allocated-percentage}: Allocated percentage num\n 10. {used-percentage-bar}: Used percentage bar\n 11. {allocated-percentage-bar}: Allocated percentage bar\n 12. {node-size}: Node size\n 13. {sector-size}: Sector size",
309 "type": "string"
310 },
311 "cameraFormat": {
312 "description": "Output format for the `Camera` module. See Wiki for formatting syntax\n 1. {name}: Device name\n 2. {vendor}: Vendor\n 3. {colorspace}: Color space\n 4. {id}: Identifier\n 5. {width}: Width (in px)\n 6. {height}: Height (in px)",
313 "type": "string"
314 },
315 "chassisFormat": {
316 "description": "Output format for the `Chassis` module. See Wiki for formatting syntax\n 1. {type}: Chassis type\n 2. {vendor}: Chassis vendor\n 3. {version}: Chassis version\n 4. {serial}: Chassis serial number",
317 "type": "string"
318 },
319 "codecFormat": {
320 "description": "Output format for the `Codec` module. See Wiki for formatting syntax\n 1. {gpu}: GPU name *\n 2. {direction}: Decoder / Encoder *\n 3. {types}: Compatibility alias of codec types\n 4. {platform-api}: Platform API used for detection",
321 "type": "string"
322 },
323 "commandFormat": {
324 "description": "Output format for the `Command` module. See Wiki for formatting syntax\n 1. {result}: Command result",
325 "type": "string"
326 },
327 "cpuFormat": {
328 "description": "Output format for the `CPU` module. See Wiki for formatting syntax\n 1. {name}: Name\n 2. {vendor}: Vendor\n 3. {cores-physical}: Physical core count\n 4. {cores-logical}: Logical core count\n 5. {cores-online}: Online core count\n 6. {freq-base}: Base frequency (formatted)\n 7. {freq-max}: Max frequency (formatted)\n 8. {temperature}: Temperature (formatted)\n 9. {core-types}: Logical core count grouped by frequency\n 10. {packages}: Processor package count\n 11. {march}: CPU microarchitecture\n 12. {numa-nodes}: NUMA node count",
329 "type": "string"
330 },
331 "cpucacheFormat": {
332 "description": "Output format for the `CPUCache` module. See Wiki for formatting syntax\n 1. {result}: Separate result\n 2. {sum}: Sum result\n 3. {level}: Cache level *",
333 "type": "string"
334 },
335 "cpuusageFormat": {
336 "description": "Output format for the `CPUUsage` module. See Wiki for formatting syntax\n 1. {avg}: CPU usage (percentage num, average)\n 2. {max}: CPU usage (percentage num, maximum)\n 3. {max-index}: CPU core index of maximum usage\n 4. {min}: CPU usage (percentage num, minimum)\n 5. {min-index}: CPU core index of minimum usage\n 6. {avg-bar}: CPU usage (percentage bar, average)\n 7. {max-bar}: CPU usage (percentage bar, maximum)\n 8. {min-bar}: CPU usage (percentage bar, minimum)",
337 "type": "string"
338 },
339 "cursorFormat": {
340 "description": "Output format for the `Cursor` module. See Wiki for formatting syntax\n 1. {theme}: Cursor theme\n 2. {size}: Cursor size",
341 "type": "string"
342 },
343 "datetimeFormat": {
344 "description": "Output format for the `DateTime` module. See Wiki for formatting syntax\n 1. {year}: Year\n 2. {year-short}: Last two digits of year\n 3. {month}: Month\n 4. {month-pretty}: Month with leading zero\n 5. {month-name}: Month name\n 6. {month-name-short}: Month name short\n 7. {week}: Week number on year\n 8. {weekday}: Weekday\n 9. {weekday-short}: Weekday short\n 10. {day-in-year}: Day in year\n 11. {day-in-month}: Day in month\n 12. {day-in-week}: Day in week\n 13. {hour}: Hour\n 14. {hour-pretty}: Hour with leading zero\n 15. {hour-12}: Hour 12h format\n 16. {hour-12-pretty}: Hour 12h format with leading zero\n 17. {minute}: Minute\n 18. {minute-pretty}: Minute with leading zero\n 19. {second}: Second\n 20. {second-pretty}: Second with leading zero\n 21. {offset-from-utc}: Offset from UTC in the ISO 8601 format\n 22. {timezone-name}: Locale-dependent timezone name or abbreviation\n 23. {day-pretty}: Day in month with leading zero\n 24. {am-pm}: AM or PM",
345 "type": "string"
346 },
347 "deFormat": {
348 "description": "Output format for the `DE` module. See Wiki for formatting syntax\n 1. {process-name}: DE process name\n 2. {pretty-name}: DE pretty name\n 3. {version}: DE version",
349 "type": "string"
350 },
351 "displayFormat": {
352 "description": "Output format for the `Display` module. See Wiki for formatting syntax\n 1. {width}: Screen configured width (in pixels)\n 2. {height}: Screen configured height (in pixels)\n 3. {refresh-rate}: Screen configured refresh rate (in Hz)\n 4. {scaled-width}: Screen scaled width (in pixels)\n 5. {scaled-height}: Screen scaled height (in pixels)\n 6. {name}: Screen name *\n 7. {type}: Screen type (Built-in or External) *\n 8. {rotation}: Screen rotation (in degrees)\n 9. {is-primary}: True if being the primary screen\n 10. {physical-width}: Screen physical width (in millimeters)\n 11. {physical-height}: Screen physical height (in millimeters)\n 12. {inch}: Physical diagonal length in inches\n 13. {ppi}: Pixels per inch (PPI)\n 14. {bit-depth}: Bits per color channel\n 15. {hdr-enabled}: True if high dynamic range (HDR) mode is enabled\n 16. {manufacture-year}: Year of manufacturing\n 17. {manufacture-week}: Nth week of manufacturing in the year\n 18. {serial}: Serial number\n 19. {platform-api}: The platform API used when detecting the display\n 20. {hdr-compatible}: True if the display is HDR compatible\n 21. {scale-factor}: HiDPI scale factor\n 22. {preferred-width}: Screen preferred width (in pixels)\n 23. {preferred-height}: Screen preferred height (in pixels)\n 24. {preferred-refresh-rate}: Screen preferred refresh rate (in Hz)\n 25. {dpi}: DPI",
353 "type": "string"
354 },
355 "diskFormat": {
356 "description": "Output format for the `Disk` module. See Wiki for formatting syntax\n 1. {size-used}: Size used (formatted)\n 2. {size-total}: Size total (formatted)\n 3. {size-percentage}: Size percentage num\n 4. {files-used}: Files used\n 5. {files-total}: Files total\n 6. {files-percentage}: Files percentage num\n 7. {is-external}: True if external volume\n 8. {is-hidden}: True if hidden volume\n 9. {filesystem}: Filesystem *\n 10. {name}: Label / name *\n 11. {is-readonly}: True if read-only\n 12. {create-time}: Create time in local timezone\n 13. {size-percentage-bar}: Size percentage bar\n 14. {files-percentage-bar}: Files percentage bar\n 15. {days}: Days after creation\n 16. {hours}: Hours after creation\n 17. {minutes}: Minutes after creation\n 18. {seconds}: Seconds after creation\n 19. {milliseconds}: Milliseconds after creation\n 20. {mountpoint}: Mount point / drive letter *\n 21. {mount-from}: Mount from (device path) *\n 22. {years}: Years integer after creation\n 23. {days-of-year}: Days of year after creation\n 24. {years-fraction}: Years fraction after creation\n 25. {size-free}: Size free (formatted)\n 26. {bytes-used}: Size used (in bytes)\n 27. {bytes-total}: Size total (in bytes)",
357 "type": "string"
358 },
359 "diskioFormat": {
360 "description": "Output format for the `DiskIO` module. See Wiki for formatting syntax\n 1. {size-read}: Size of data read [per second] (formatted)\n 2. {size-written}: Size of data written [per second] (formatted)\n 3. {name}: Device name *\n 4. {dev-path}: Device raw file path *\n 5. {bytes-read}: Size of data read [per second] (in bytes)\n 6. {bytes-written}: Size of data written [per second] (in bytes)\n 7. {read-count}: Number of reads\n 8. {write-count}: Number of writes",
361 "type": "string"
362 },
363 "dnsFormat": {
364 "description": "Output format for the `DNS` module. See Wiki for formatting syntax\n 1. {result}: DNS result",
365 "type": "string"
366 },
367 "editorFormat": {
368 "description": "Output format for the `Editor` module. See Wiki for formatting syntax\n 1. {type}: Type (Visual / Editor)\n 2. {name}: Name\n 3. {exe-name}: Exe name of real path\n 4. {path}: Full path of real path\n 5. {version}: Version",
369 "type": "string"
370 },
371 "fontFormat": {
372 "description": "Output format for the `Font` module. See Wiki for formatting syntax\n 1. {font1}: Font 1\n 2. {font2}: Font 2\n 3. {font3}: Font 3\n 4. {font4}: Font 4\n 5. {combined}: Combined fonts for display",
373 "type": "string"
374 },
375 "gamepadFormat": {
376 "description": "Output format for the `Gamepad` module. See Wiki for formatting syntax\n 1. {name}: Name\n 2. {serial}: Serial number\n 3. {battery-percentage}: Battery percentage num\n 4. {battery-percentage-bar}: Battery percentage bar",
377 "type": "string"
378 },
379 "gpuFormat": {
380 "description": "Output format for the `GPU` module. See Wiki for formatting syntax\n 1. {vendor}: GPU vendor\n 2. {name}: GPU name\n 3. {driver}: GPU driver\n 4. {temperature}: GPU temperature\n 5. {core-count}: GPU core count\n 6. {type}: GPU type\n 7. {dedicated-total}: GPU total dedicated memory\n 8. {dedicated-used}: GPU used dedicated memory\n 9. {shared-total}: GPU total shared memory\n 10. {shared-used}: GPU used shared memory\n 11. {platform-api}: The platform API used when detecting the GPU\n 12. {frequency}: Current frequency in GHz\n 13. {index}: GPU vendor specific index\n 14. {dedicated-percentage-num}: Dedicated memory usage percentage num\n 15. {dedicated-percentage-bar}: Dedicated memory usage percentage bar\n 16. {shared-percentage-num}: Shared memory usage percentage num\n 17. {shared-percentage-bar}: Shared memory usage percentage bar\n 18. {core-usage-num}: Core usage percentage num\n 19. {core-usage-bar}: Core usage percentage bar\n 20. {memory-type}: Memory type (Windows only)\n 21. {pcie-max-speed}: PCIe maximum speed in gen and lanes\n 22. {pcie-curr-speed}: PCIe current speed in gen and lanes",
381 "type": "string"
382 },
383 "hostFormat": {
384 "description": "Output format for the `Host` module. See Wiki for formatting syntax\n 1. {family}: Product family\n 2. {name}: Product name\n 3. {version}: Product version\n 4. {sku}: Product sku\n 5. {vendor}: Product vendor\n 6. {serial}: Product serial number\n 7. {uuid}: Product uuid",
385 "type": "string"
386 },
387 "iconsFormat": {
388 "description": "Output format for the `Icons` module. See Wiki for formatting syntax\n 1. {icons1}: Icons part 1\n 2. {icons2}: Icons part 2",
389 "type": "string"
390 },
391 "initsystemFormat": {
392 "description": "Output format for the `InitSystem` module. See Wiki for formatting syntax\n 1. {name}: Init system name\n 2. {exe}: Init system exe path\n 3. {version}: Init system version path\n 4. {pid}: Init system pid",
393 "type": "string"
394 },
395 "kernelFormat": {
396 "description": "Output format for the `Kernel` module. See Wiki for formatting syntax\n 1. {sysname}: Sysname\n 2. {release}: Release\n 3. {version}: Version\n 4. {arch}: Architecture\n 5. {page-size}: Page size",
397 "type": "string"
398 },
399 "keyboardFormat": {
400 "description": "Output format for the `Keyboard` module. See Wiki for formatting syntax\n 1. {name}: Name\n 2. {serial}: Serial number",
401 "type": "string"
402 },
403 "lmFormat": {
404 "description": "Output format for the `LM` module. See Wiki for formatting syntax\n 1. {service}: LM service / process name\n 2. {pretty-name}: LM pretty name\n 3. {version}: LM version",
405 "type": "string"
406 },
407 "loadavgFormat": {
408 "description": "Output format for the `Loadavg` module. See Wiki for formatting syntax\n 1. {loadavg1}: Load average over 1min\n 2. {loadavg2}: Load average over 5min\n 3. {loadavg3}: Load average over 15min",
409 "type": "string"
410 },
411 "localeFormat": {
412 "description": "Output format for the `Locale` module. See Wiki for formatting syntax\n 1. {result}: Locale code",
413 "type": "string"
414 },
415 "localipFormat": {
416 "description": "Output format for the `LocalIp` module. See Wiki for formatting syntax\n 1. {ipv4}: IPv4 address\n 2. {ipv6}: IPv6 address\n 3. {mac}: MAC address *\n 4. {ifname}: Interface name *\n 5. {is-default-route}: Is default route\n 6. {mtu}: MTU size in bytes\n 7. {speed}: Link speed (formatted)\n 8. {flags}: Interface flags",
417 "type": "string"
418 },
419 "mediaFormat": {
420 "description": "Output format for the `Media` module. See Wiki for formatting syntax\n 1. {combined}: Pretty media name\n 2. {title}: Media name\n 3. {artist}: Artist name\n 4. {album}: Album name\n 5. {status}: Status\n 6. {progress}: Progress in text\n 7. {progress-num}: Progress in percentage (number)\n 8. {progress-bar}: Progress in percentage (bar)\n 9. {player-name}: Player name\n 10. {player-id}: Player ID\n 11. {url}: URL",
421 "type": "string"
422 },
423 "memoryFormat": {
424 "description": "Output format for the `Memory` module. See Wiki for formatting syntax\n 1. {used}: Used size\n 2. {total}: Total size\n 3. {percentage}: Percentage used (num)\n 4. {percentage-bar}: Percentage used (bar)",
425 "type": "string"
426 },
427 "monitorFormat": {
428 "description": "Output format for the `Monitor` module. See Wiki for formatting syntax\n 1. {name}: Display name *\n 2. {width}: Native resolution width in pixels\n 3. {height}: Native resolution height in pixels\n 4. {physical-width}: Physical width in millimeters\n 5. {physical-height}: Physical height in millimeters\n 6. {inch}: Physical diagonal length in inches\n 7. {ppi}: Pixels per inch (PPI)\n 8. {manufacture-year}: Year of manufacturing\n 9. {manufacture-week}: Nth week of manufacturing in the year\n 10. {serial}: Serial number\n 11. {refresh-rate}: Maximum refresh rate in Hz\n 12. {hdr-compatible}: True if the display is HDR compatible",
429 "type": "string"
430 },
431 "mouseFormat": {
432 "description": "Output format for the `Mouse` module. See Wiki for formatting syntax\n 1. {name}: Mouse name\n 2. {serial}: Mouse serial number",
433 "type": "string"
434 },
435 "netioFormat": {
436 "description": "Output format for the `NetIO` module. See Wiki for formatting syntax\n 1. {rx-size}: Size of data received [per second] (formatted)\n 2. {tx-size}: Size of data sent [per second] (formatted)\n 3. {ifname}: Interface name *\n 4. {is-default-route}: Is default route\n 5. {rx-bytes}: Size of data received [per second] (in bytes)\n 6. {tx-bytes}: Size of data sent [per second] (in bytes)\n 7. {rx-packets}: Number of packets received [per second]\n 8. {tx-packets}: Number of packets sent [per second]\n 9. {rx-errors}: Number of errors received [per second]\n 10. {tx-errors}: Number of errors sent [per second]\n 11. {rx-drops}: Number of packets dropped when receiving [per second]\n 12. {tx-drops}: Number of packets dropped when sending [per second]",
437 "type": "string"
438 },
439 "openclFormat": {
440 "description": "Output format for the `OpenCL` module. See Wiki for formatting syntax\n 1. {version}: Platform version\n 2. {name}: Platform name\n 3. {vendor}: Platform vendor",
441 "type": "string"
442 },
443 "openglFormat": {
444 "description": "Output format for the `OpenGL` module. See Wiki for formatting syntax\n 1. {version}: OpenGL version\n 2. {renderer}: OpenGL renderer\n 3. {vendor}: OpenGL vendor\n 4. {slv}: OpenGL shading language version\n 5. {library}: OpenGL library used",
445 "type": "string"
446 },
447 "osFormat": {
448 "description": "Output format for the `OS` module. See Wiki for formatting syntax\n 1. {sysname}: Name of the kernel *\n 2. {name}: Name of the OS *\n 3. {pretty-name}: Pretty name of the OS, if available\n 4. {id}: ID of the OS\n 5. {id-like}: ID like of the OS\n 6. {variant}: Variant of the OS\n 7. {variant-id}: Variant ID of the OS\n 8. {version}: Version of the OS\n 9. {version-id}: Version ID of the OS\n 10. {codename}: Version codename of the OS\n 11. {build-id}: Build ID of the OS\n 12. {arch}: Architecture of the OS\n 13. {kernel-release}: Release of the kernel",
449 "type": "string"
450 },
451 "packagesFormat": {
452 "description": "Output format for the `Packages` module. See Wiki for formatting syntax\n 1. {am-system}: Number of am-system packages\n 2. {am-user}: Number of am-user (aka appman) packages\n 3. {appimage}: Number of appimage packages\n 4. {apk}: Number of apk packages\n 5. {brew}: Number of brew packages\n 6. {brew-cask}: Number of brew-cask packages\n 7. {cards}: Number of cards packages\n 8. {choco}: Number of choco packages\n 9. {crux}: Number of crux packages\n 10. {dpkg}: Number of dpkg packages\n 11. {emerge}: Number of emerge packages\n 12. {eopkg}: Number of eopkg packages\n 13. {flatpak-system}: Number of flatpak-system app packages\n 14. {flatpak-user}: Number of flatpak-user app packages\n 15. {guix-home}: Number of guix-home packages\n 16. {guix-system}: Number of guix-system packages\n 17. {guix-user}: Number of guix-user packages\n 18. {hpkg-system}: Number of hpkg-system packages\n 19. {hpkg-user}: Number of hpkg-user packages\n 20. {install-release}: Number of install-release packages\n 21. {kiss}: Number of kiss packages\n 22. {linglong}: Number of linglong packages\n 23. {lpkg}: Number of lpkg packages\n 24. {lpkgbuild}: Number of lpkgbuild packages\n 25. {macports}: Number of macports packages\n 26. {mport}: Number of mport packages\n 27. {moss}: Number of moss packages\n 28. {nix-default}: Number of nix-default packages\n 29. {nix-system}: Number of nix-system packages\n 30. {nix-user}: Number of nix-user packages\n 31. {opkg}: Number of opkg packages\n 32. {pacman}: Number of pacman packages\n 33. {pacman-branch}: Pacman branch on manjaro\n 34. {pacstall}: Number of pacstall packages\n 35. {paludis}: Number of paludis packages\n 36. {pisi}: Number of pisi packages\n 37. {pkg}: Number of pkg packages\n 38. {pkgsrc}: Number of pkgsrc packages\n 39. {pkgtool}: Number of pkgtool packages\n 40. {porg}: Number of porg packages\n 41. {rpm}: Number of rpm packages\n 42. {rum}: Number of rum overlay packages\n 43. {scoop-global}: Number of scoop-global packages\n 44. {scoop-user}: Number of scoop-user packages\n 45. {snap}: Number of snap packages\n 46. {soar}: Number of soar packages\n 47. {sorcery}: Number of sorcery packages\n 48. {winget}: Number of winget packages\n 49. {xbps}: Number of xbps packages\n 50. {brew-all}: Total number of all brew packages\n 51. {flatpak-all}: Total number of all flatpak app packages\n 52. {guix-all}: Total number of all guix packages\n 53. {hpkg-all}: Total number of all hpkg packages\n 54. {nix-all}: Total number of all nix packages\n 55. {all}: Number of all packages",
453 "type": "string"
454 },
455 "physicaldiskFormat": {
456 "description": "Output format for the `PhysicalDisk` module. See Wiki for formatting syntax\n 1. {size}: Device size (formatted)\n 2. {name}: Device name *\n 3. {interconnect}: Device interconnect type\n 4. {dev-path}: Device raw file path *\n 5. {serial}: Serial number\n 6. {physical-type}: Device kind (SSD or HDD)\n 7. {removable-type}: Device kind (Removable or Fixed)\n 8. {readonly-type}: Device kind (Read-only or Read-write)\n 9. {revision}: Product revision\n 10. {temperature}: Device temperature (formatted)",
457 "type": "string"
458 },
459 "physicalmemoryFormat": {
460 "description": "Output format for the `PhysicalMemory` module. See Wiki for formatting syntax\n 1. {bytes}: Size (in bytes)\n 2. {size}: Size formatted\n 3. {max-speed}: Max speed (in MT/s)\n 4. {running-speed}: Running speed (in MT/s)\n 5. {type}: Type (DDR4, DDR5, etc.)\n 6. {form-factor}: Form factor (SODIMM, DIMM, etc.)\n 7. {locator}: Bank/Device Locator (BANK0/SIMM0, BANK0/SIMM1, etc.)\n 8. {vendor}: Vendor\n 9. {serial}: Serial number\n 10. {part-number}: Part number\n 11. {is-ecc-enabled}: True if ECC enabled\n 12. {is-installed}: True if a memory module is installed in the slot",
461 "type": "string"
462 },
463 "playerFormat": {
464 "description": "Output format for the `Player` module. See Wiki for formatting syntax\n 1. {player}: Pretty player name\n 2. {name}: Player name\n 3. {id}: Player Identifier\n 4. {url}: URL name",
465 "type": "string"
466 },
467 "poweradapterFormat": {
468 "description": "Output format for the `PowerAdapter` module. See Wiki for formatting syntax\n 1. {watts}: Power adapter watts\n 2. {name}: Power adapter name\n 3. {manufacturer}: Power adapter manufacturer\n 4. {model-name}: Power adapter model name\n 5. {description}: Power adapter description\n 6. {serial}: Power adapter serial number",
469 "type": "string"
470 },
471 "processesFormat": {
472 "description": "Output format for the `Processes` module. See Wiki for formatting syntax\n 1. {result}: Process count\n 2. {threads}: Thread count",
473 "type": "string"
474 },
475 "publicipFormat": {
476 "description": "Output format for the `PublicIp` module. See Wiki for formatting syntax\n 1. {ip}: Public IP address\n 2. {location}: Location",
477 "type": "string"
478 },
479 "shellFormat": {
480 "description": "Output format for the `Shell` module. See Wiki for formatting syntax\n 1. {process-name}: Shell process name\n 2. {exe}: The first argument of the command line when running the shell\n 3. {exe-name}: Shell base name of arg0\n 4. {version}: Shell version\n 5. {pid}: Shell pid\n 6. {pretty-name}: Shell pretty name\n 7. {exe-path}: Shell full exe path\n 8. {tty}: Shell tty used",
481 "type": "string"
482 },
483 "soundFormat": {
484 "description": "Output format for the `Sound` module. See Wiki for formatting syntax\n 1. {is-main}: Is main sound device\n 2. {is-active}: Is active sound device\n 3. {name}: Device name\n 4. {volume-percentage}: Volume (in percentage num)\n 5. {identifier}: Identifier\n 6. {volume-percentage-bar}: Volume (in percentage bar)\n 7. {platform-api}: Platform API used",
485 "type": "string"
486 },
487 "swapFormat": {
488 "description": "Output format for the `Swap` module. See Wiki for formatting syntax\n 1. {used}: Used size\n 2. {total}: Total size\n 3. {percentage}: Percentage used (num)\n 4. {percentage-bar}: Percentage used (bar)\n 5. {name}: Name *",
489 "type": "string"
490 },
491 "terminalFormat": {
492 "description": "Output format for the `Terminal` module. See Wiki for formatting syntax\n 1. {process-name}: Terminal process name\n 2. {exe}: The first argument of the command line when running the terminal\n 3. {exe-name}: Terminal base name of arg0\n 4. {pid}: Terminal pid\n 5. {pretty-name}: Terminal pretty name\n 6. {version}: Terminal version\n 7. {exe-path}: Terminal full exe path\n 8. {tty}: Terminal tty / pts used",
493 "type": "string"
494 },
495 "terminalfontFormat": {
496 "description": "Output format for the `TerminalFont` module. See Wiki for formatting syntax\n 1. {combined}: Terminal font combined\n 2. {name}: Terminal font name\n 3. {size}: Terminal font size\n 4. {styles}: Terminal font styles",
497 "type": "string"
498 },
499 "terminalsizeFormat": {
500 "description": "Output format for the `TerminalSize` module. See Wiki for formatting syntax\n 1. {rows}: Terminal rows\n 2. {columns}: Terminal columns\n 3. {width}: Terminal width (in pixels)\n 4. {height}: Terminal height (in pixels)",
501 "type": "string"
502 },
503 "terminalthemeFormat": {
504 "description": "Output format for the `TerminalTheme` module. See Wiki for formatting syntax\n 1. {fg-color}: Terminal foreground color\n 2. {fg-type}: Terminal foreground type (Dark / Light)\n 3. {bg-color}: Terminal background color\n 4. {bg-type}: Terminal background type (Dark / Light)",
505 "type": "string"
506 },
507 "titleFormat": {
508 "description": "Output format for the `Title` module. See Wiki for formatting syntax\n 1. {user-name}: User name\n 2. {host-name}: Host name\n 3. {home-dir}: Home directory\n 4. {exe-path}: Executable path of current process\n 5. {user-shell}: User's default shell\n 6. {user-name-colored}: User name (colored)\n 7. {at-symbol-colored}: @ symbol (colored)\n 8. {host-name-colored}: Host name (colored)\n 9. {full-user-name}: Full user name\n 10. {user-id}: UID (*nix) / SID (Windows)\n 11. {pid}: PID of current process\n 12. {cwd}: CWD with home dir replaced by `~`",
509 "type": "string"
510 },
511 "topFormat": {
512 "description": "Output format for the `Top` module. See Wiki for formatting syntax\n 1. {name}: Process name\n 2. {pid}: Process ID\n 3. {cpu}: CPU usage\n 4. {mem}: Memory usage (RSS) in bytes\n 5. {disk-read}: Disk read bytes per second (0 if unsupported)\n 6. {disk-write}: Disk write bytes per second (0 if unsupported)\n 7. {threads}: Number of threads\n 8. {cpu-percentage}: CPU usage percentage\n 9. {mem-formatted}: Memory usage (RSS) formatted\n 10. {disk-read-formatted}: Disk read formatted\n 11. {disk-write-formatted}: Disk write formatted",
513 "type": "string"
514 },
515 "themeFormat": {
516 "description": "Output format for the `Theme` module. See Wiki for formatting syntax\n 1. {theme1}: Theme part 1\n 2. {theme2}: Theme part 2",
517 "type": "string"
518 },
519 "tpmFormat": {
520 "description": "Output format for the `TPM` module. See Wiki for formatting syntax\n 1. {version}: TPM device version\n 2. {description}: TPM general description",
521 "type": "string"
522 },
523 "uptimeFormat": {
524 "description": "Output format for the `Uptime` module. See Wiki for formatting syntax\n 1. {days}: Days after boot\n 2. {hours}: Hours after boot\n 3. {minutes}: Minutes after boot\n 4. {seconds}: Seconds after boot\n 5. {milliseconds}: Milliseconds after boot\n 6. {boot-time}: Boot time in local timezone\n 7. {years}: Years integer after boot\n 8. {days-of-year}: Days of year after boot\n 9. {years-fraction}: Years fraction after boot\n 10. {formatted}: Formatted uptime",
525 "type": "string"
526 },
527 "usersFormat": {
528 "description": "Output format for the `Users` module. See Wiki for formatting syntax\n 1. {name}: User name\n 2. {host-name}: Host name\n 3. {session-name}: Session name\n 4. {client-ip}: Client IP\n 5. {login-time}: Login Time in local timezone\n 6. {days}: Days after login\n 7. {hours}: Hours after login\n 8. {minutes}: Minutes after login\n 9. {seconds}: Seconds after login\n 10. {milliseconds}: Milliseconds after login\n 11. {years}: Years integer after login\n 12. {days-of-year}: Days of year after login\n 13. {years-fraction}: Years fraction after login",
529 "type": "string"
530 },
531 "versionFormat": {
532 "description": "Output format for the `Version` module. See Wiki for formatting syntax\n 1. {project-name}: Project name\n 2. {version}: Version\n 3. {version-tweak}: Version tweak\n 4. {build-type}: Build type (debug or release)\n 5. {sysname}: System name\n 6. {arch}: Architecture\n 7. {cmake-built-type}: CMake build type when compiling (Debug, Release, RelWithDebInfo, MinSizeRel)\n 8. {compile-time}: Date time when compiling\n 9. {compiler}: Compiler used when compiling\n 10. {libc}: Libc used when compiling",
533 "type": "string"
534 },
535 "vulkanFormat": {
536 "description": "Output format for the `Vulkan` module. See Wiki for formatting syntax\n 1. {driver}: Driver name\n 2. {api-version}: API version\n 3. {conformance-version}: Conformance version\n 4. {instance-version}: Instance version",
537 "type": "string"
538 },
539 "wallpaperFormat": {
540 "description": "Output format for the `Wallpaper` module. See Wiki for formatting syntax\n 1. {file-name}: File name\n 2. {full-path}: Full path",
541 "type": "string"
542 },
543 "weatherFormat": {
544 "description": "Output format for the `Weather` module. See Wiki for formatting syntax\n 1. {result}: Weather result",
545 "type": "string"
546 },
547 "wmFormat": {
548 "description": "Output format for the `WM` module. See Wiki for formatting syntax\n 1. {process-name}: WM process name\n 2. {pretty-name}: WM pretty name\n 3. {protocol-name}: WM protocol name\n 4. {plugin-name}: WM plugin name\n 5. {version}: WM version",
549 "type": "string"
550 },
551 "wifiFormat": {
552 "description": "Output format for the `Wifi` module. See Wiki for formatting syntax\n 1. {inf-desc}: Interface description\n 2. {inf-status}: Interface status\n 3. {status}: Connection status\n 4. {ssid}: Connection SSID\n 5. {bssid}: Connection BSSID\n 6. {protocol}: Connection protocol\n 7. {signal-quality}: Connection signal quality (percentage num)\n 8. {rx-rate}: Connection RX rate\n 9. {tx-rate}: Connection TX rate\n 10. {security}: Connection Security algorithm\n 11. {signal-quality-bar}: Connection signal quality (percentage bar)\n 12. {channel}: Connection channel number\n 13. {channel-width}: Connection channel width in MHz\n 14. {band}: Connection channel band in GHz",
553 "type": "string"
554 },
555 "wmthemeFormat": {
556 "description": "Output format for the `WMTheme` module. See Wiki for formatting syntax\n 1. {result}: WM theme",
557 "type": "string"
558 },
559 "zpoolFormat": {
560 "description": "Output format for the `Zpool` module. See Wiki for formatting syntax\n 1. {name}: Zpool name *\n 2. {guid}: Zpool guid *\n 3. {state}: Zpool state\n 4. {size-used}: Size used\n 5. {size-allocated}: Size allocated\n 6. {size-total}: Size total\n 7. {used-percentage}: Size used percentage num\n 8. {allocated-percentage}: Size allocated percentage num\n 9. {frag-percentage}: Fragmentation percentage num\n 10. {used-percentage-bar}: Size used percentage bar\n 11. {allocated-percentage-bar}: Size allocated percentage bar\n 12. {frag-percentage-bar}: Fragmentation percentage bar\n 13. {is-readonly}: Is read-only",
561 "type": "string"
562 }
563 },
564 "type": "object",
565 "additionalProperties": false,
566 "title": "JSON config",
567 "description": "Fastfetch JSON config file. Usually located at `~/.config/fastfetch/config.jsonc`",
568 "properties": {
569 "$schema": {
570 "type": "string",
571 "description": "JSON Schema URL for validation and IDE support",
572 "format": "uri",
573 "default": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json"
574 },
575 "logo": {
576 "description": "Fastfetch logo configuration\nSee also https://github.com/fastfetch-cli/fastfetch/wiki/Logo-options",
577 "oneOf": [
578 {
579 "description": "Disable logo",
580 "type": "null",
581 "const": null
582 },
583 {
584 "description": "Path to a logo source file or the name of a built-in ASCII art logo",
585 "type": "string"
586 },
587 {
588 "description": "Fastfetch logo configuration",
589 "type": "object",
590 "additionalProperties": false,
591 "properties": {
592 "type": {
593 "description": "Logo type",
594 "oneOf": [
595 {
596 "const": "auto",
597 "description": "If a value is provided, try a built-in logo first, then a file. Otherwise, auto-detect the logo. Explicit type is highly recommended when use image files."
598 },
599 {
600 "const": "builtin",
601 "description": "Built-in ASCII art"
602 },
603 {
604 "const": "small",
605 "description": "Built-in ASCII art, small version (not all logos support this option)"
606 },
607 {
608 "const": "file",
609 "description": "Text file with color code replacement"
610 },
611 {
612 "const": "file-raw",
613 "description": "Text file, printed as is"
614 },
615 {
616 "const": "data",
617 "description": "Text data with color code replacement"
618 },
619 {
620 "const": "data-raw",
621 "description": "Text data, printed as is"
622 },
623 {
624 "const": "command-raw",
625 "description": "Command that generates text data, printed as is"
626 },
627 {
628 "const": "sixel",
629 "description": "Image file rendered as sixel"
630 },
631 {
632 "const": "kitty",
633 "description": "Image file rendered using the Kitty graphics protocol"
634 },
635 {
636 "const": "kitty-direct",
637 "description": "Image file. Instructs the terminal emulator to read image data directly from the specified file"
638 },
639 {
640 "const": "kitty-icat",
641 "description": "Image file displayed using `kitten icat`. Requires the `kitten` binary to be installed"
642 },
643 {
644 "const": "iterm",
645 "description": "Image file rendered using the iTerm image protocol"
646 },
647 {
648 "const": "chafa",
649 "description": "Image file rendered as ASCII art using `libchafa`"
650 },
651 {
652 "const": "raw",
653 "description": "Image file rendered as a raw binary string"
654 },
655 {
656 "const": "none",
657 "description": "Disable logo printing"
658 }
659 ],
660 "default": "auto"
661 },
662 "source": {
663 "type": "string",
664 "description": "Path to the logo source file"
665 },
666 "color": {
667 "type": "object",
668 "additionalProperties": false,
669 "description": "Override colors in the logo",
670 "properties": {
671 "1": {
672 "description": "Color 1",
673 "$ref": "#/$defs/colors"
674 },
675 "2": {
676 "description": "Color 2",
677 "$ref": "#/$defs/colors"
678 },
679 "3": {
680 "description": "Color 3",
681 "$ref": "#/$defs/colors"
682 },
683 "4": {
684 "description": "Color 4",
685 "$ref": "#/$defs/colors"
686 },
687 "5": {
688 "description": "Color 5",
689 "$ref": "#/$defs/colors"
690 },
691 "6": {
692 "description": "Color 6",
693 "$ref": "#/$defs/colors"
694 },
695 "7": {
696 "description": "Color 7",
697 "$ref": "#/$defs/colors"
698 },
699 "8": {
700 "description": "Color 8",
701 "$ref": "#/$defs/colors"
702 },
703 "9": {
704 "description": "Color 9",
705 "$ref": "#/$defs/colors"
706 }
707 }
708 },
709 "width": {
710 "oneOf": [
711 {
712 "type": "null",
713 "description": "Auto-detect the width (default)"
714 },
715 {
716 "type": "integer",
717 "description": "Width of the logo in characters. Required by some image protocols",
718 "minimum": 1
719 }
720 ]
721 },
722 "height": {
723 "oneOf": [
724 {
725 "type": "null",
726 "description": "Auto-detect the height (default)"
727 },
728 {
729 "type": "integer",
730 "description": "Height of the logo in characters. Required by some image protocols",
731 "minimum": 1
732 }
733 ]
734 },
735 "padding": {
736 "type": "object",
737 "additionalProperties": false,
738 "description": "Logo padding",
739 "properties": {
740 "top": {
741 "type": "integer",
742 "description": "Top padding of the logo",
743 "minimum": 0
744 },
745 "bottom": {
746 "type": "integer",
747 "description": "Bottom padding of the logo; only supported when position is `top`",
748 "minimum": 0
749 },
750 "left": {
751 "type": "integer",
752 "description": "Left padding of the logo",
753 "minimum": 0
754 },
755 "right": {
756 "type": "integer",
757 "description": "Right padding of the logo",
758 "minimum": 0
759 }
760 }
761 },
762 "printRemaining": {
763 "type": "boolean",
764 "description": "Whether to print any remaining logo lines when the logo is taller than the module list",
765 "default": true
766 },
767 "preserveAspectRatio": {
768 "type": "boolean",
769 "description": "Whether to preserve the aspect ratio of the logo. Supported by iTerm image protocol only",
770 "default": false
771 },
772 "cache": {
773 "description": "How the image logo cache is used. true reuses a cached rendering when it is valid and writes it back on a cache miss; false ignores the cache completely, neither reading nor writing it; \"regen\" ignores any existing cached rendering and regenerates it",
774 "oneOf": [
775 {
776 "type": "boolean",
777 "description": "Whether to use the image logo cache"
778 },
779 {
780 "const": "regen",
781 "description": "Regenerate the image logo cache, ignoring any existing cached rendering"
782 }
783 ],
784 "default": true
785 },
786 "position": {
787 "type": "string",
788 "description": "Position of the logo. Auto places a left-side logo above the output when the terminal is too narrow to reserve 32 columns for module output.",
789 "enum": [
790 "auto",
791 "left",
792 "top",
793 "right"
794 ],
795 "default": "left"
796 },
797 "animationFrame": {
798 "type": "integer",
799 "description": "Frame of an animated image to render:\n0 plays the animation (kitty image protocol only), a positive value is the 1-based frame number, and a negative value counts back from the end, so -1 is the last frame.\nOnly the JSON config can express a negative value, as the command line parser reads a leading `-` as another option",
800 "default": 1
801 },
802 "chafa": {
803 "type": "object",
804 "additionalProperties": false,
805 "description": "Chafa configuration. See chafa documentation for details",
806 "properties": {
807 "fgOnly": {
808 "type": "boolean",
809 "description": "Produce character-cell output using foreground colors only",
810 "default": false
811 },
812 "symbols": {
813 "type": "string",
814 "description": "Specify character symbols to employ in final output"
815 },
816 "canvasMode": {
817 "type": "string",
818 "description": "Determine how colors are used in the output. This value maps to enum ChafaCanvasMode.",
819 "oneOf": [
820 {
821 "const": "TRUECOLOR",
822 "description": "Use 24-bit true colors"
823 },
824 {
825 "const": "INDEXED_256",
826 "description": "Use 256 colors"
827 },
828 {
829 "const": "INDEXED_240",
830 "description": "Use 240 colors, but avoid using the lower 16 whose values vary between terminal environments"
831 },
832 {
833 "const": "INDEXED_16",
834 "description": "Use 16 colors using the aixterm ANSI extension"
835 },
836 {
837 "const": "FGBG_BGFG",
838 "description": "Use default foreground and background colors, plus inversion"
839 },
840 {
841 "const": "FGBG",
842 "description": "Use default foreground and background colors. No ANSI codes will be used"
843 },
844 {
845 "const": "INDEXED_8",
846 "description": "Use 8 colors, compatible with original ANSI X3.64"
847 },
848 {
849 "const": "INDEXED_16_8",
850 "description": "Use 16 FG colors (8 of which enabled with bold/bright) and 8 BG colors"
851 }
852 ]
853 },
854 "colorSpace": {
855 "type": "string",
856 "description": "Set color space used for quantization. This value maps to enum ChafaColorSpace.",
857 "oneOf": [
858 {
859 "const": "RGB",
860 "description": "RGB color space. Fast but imprecise"
861 },
862 {
863 "const": "DIN99D",
864 "description": "DIN99d color space. Slower, but good perceptual color precision"
865 }
866 ]
867 },
868 "ditherMode": {
869 "type": "string",
870 "description": "Set output dither mode (No effect with 24-bit color). This value maps to enum ChafaDitherMode.",
871 "oneOf": [
872 {
873 "const": "NONE",
874 "description": "No dithering"
875 },
876 {
877 "const": "ORDERED",
878 "description": "Ordered dithering (Bayer or similar)"
879 },
880 {
881 "const": "DIFFUSION",
882 "description": "Error diffusion dithering (Floyd-Steinberg or similar)"
883 }
884 ]
885 }
886 }
887 }
888 }
889 }
890 ]
891 },
892 "general": {
893 "description": "General Fastfetch configuration",
894 "type": "object",
895 "additionalProperties": false,
896 "properties": {
897 "thread": {
898 "type": "boolean",
899 "description": "Use separate threads for HTTP requests",
900 "default": true
901 },
902 "escapeBedrock": {
903 "type": "boolean",
904 "description": "On Bedrock Linux, whether to escape the bedrock jail",
905 "default": true
906 },
907 "playerName": {
908 "type": "string",
909 "description": "The name of the player to use for Media and Player modules. Linux only"
910 },
911 "dsForceDrm": {
912 "description": "Force display detection to use DRM (Linux only)",
913 "oneOf": [
914 {
915 "type": "boolean",
916 "const": false,
917 "description": "Try `wayland`, then `x11`, then `drm`"
918 },
919 {
920 "type": "string",
921 "description": "Use `/sys/class/drm` only",
922 "const": "sysfs-only"
923 },
924 {
925 "type": "boolean",
926 "const": true,
927 "description": "Try `libdrm` first, then `sysfs` if libdrm fails"
928 }
929 ],
930 "default": false
931 },
932 "processingTimeout": {
933 "type": "integer",
934 "description": "Set the timeout (ms) when waiting for child processes, `-1` for no timeout",
935 "default": 5000
936 },
937 "detectVersion": {
938 "type": "boolean",
939 "description": "Whether to detect and display component versions. Mainly for benchmarking",
940 "default": true
941 },
942 "preload": {
943 "description": "Scripts to run while the config is read, before any module runs",
944 "type": "object",
945 "additionalProperties": false,
946 "properties": {
947 "lua": {
948 "type": "string",
949 "description": "Lua script to run once, as soon as the config is read, for example `dofile('/path/to/helpers.lua')`"
950 }
951 }
952 }
953 }
954 },
955 "display": {
956 "description": "Configure output formatting",
957 "type": "object",
958 "additionalProperties": false,
959 "properties": {
960 "stat": {
961 "description": "Show execution time (in ms) for individual modules, optionally above a threshold",
962 "oneOf": [
963 {
964 "type": "boolean",
965 "default": false
966 },
967 {
968 "type": "integer",
969 "minimum": 1
970 }
971 ]
972 },
973 "pipe": {
974 "type": "boolean",
975 "description": "Whether to disable colors (auto-detected based on isatty(1) by default)",
976 "default": false
977 },
978 "showErrors": {
979 "type": "boolean",
980 "description": "Whether to print errors to the console. If false, modules that error are ignored",
981 "default": false
982 },
983 "disableLinewrap": {
984 "type": "boolean",
985 "description": "Whether to disable line wrap during execution",
986 "default": true
987 },
988 "hideCursor": {
989 "type": "boolean",
990 "description": "Whether to hide the cursor during execution",
991 "default": true
992 },
993 "separator": {
994 "type": "string",
995 "description": "Separator between the key and value",
996 "default": ": "
997 },
998 "color": {
999 "description": "Color of keys and titles",
1000 "oneOf": [
1001 {
1002 "description": "Color for both keys and titles",
1003 "$ref": "#/$defs/colors"
1004 },
1005 {
1006 "type": "object",
1007 "additionalProperties": false,
1008 "properties": {
1009 "keys": {
1010 "description": "Color of keys",
1011 "$ref": "#/$defs/colors"
1012 },
1013 "title": {
1014 "description": "Color of titles",
1015 "$ref": "#/$defs/colors"
1016 },
1017 "output": {
1018 "description": "Color of module output",
1019 "$ref": "#/$defs/colors"
1020 },
1021 "separator": {
1022 "description": "Color of the key-value separator",
1023 "$ref": "#/$defs/colors"
1024 }
1025 }
1026 }
1027 ]
1028 },
1029 "brightColor": {
1030 "description": "Whether to print keys, titles, and the ASCII logo in bright colors",
1031 "type": "boolean",
1032 "default": true
1033 },
1034 "key": {
1035 "type": "object",
1036 "additionalProperties": false,
1037 "description": "Configure how module keys are displayed",
1038 "properties": {
1039 "width": {
1040 "description": "Key width in characters. Set to 0 to disable alignment",
1041 "type": "integer",
1042 "minimum": 0,
1043 "default": 0
1044 },
1045 "type": {
1046 "type": "string",
1047 "description": "Whether to show a built-in icon before string keys",
1048 "oneOf": [
1049 {
1050 "const": "none",
1051 "description": "Disable keys"
1052 },
1053 {
1054 "const": "string",
1055 "description": "Show string keys"
1056 },
1057 {
1058 "const": "icon",
1059 "description": "Show the built-in icon (requires a recent Nerd Font)"
1060 },
1061 {
1062 "const": "both",
1063 "description": "Show both icon and string keys (alias of `both-1`)"
1064 },
1065 {
1066 "const": "both-0",
1067 "description": "Show both icon and string with no spaces between them"
1068 },
1069 {
1070 "const": "both-1",
1071 "description": "Show both icon and string with a space between them"
1072 },
1073 {
1074 "const": "both-2",
1075 "description": "Show both icon and string with 2 spaces between them"
1076 },
1077 {
1078 "const": "both-3",
1079 "description": "Show both icon and string with 3 spaces between them"
1080 },
1081 {
1082 "const": "both-4",
1083 "description": "Show both icon and string with 4 spaces between them"
1084 }
1085 ],
1086 "default": "string"
1087 },
1088 "paddingLeft": {
1089 "type": "integer",
1090 "description": "Left padding for keys",
1091 "minimum": 0,
1092 "default": 0
1093 },
1094 "language": {
1095 "description": "Language used for module keys. `null` for auto detection based on system locale",
1096 "oneOf": [
1097 {
1098 "type": "null",
1099 "description": "Auto detection based on system locale"
1100 },
1101 {
1102 "type": "string",
1103 "const": "en",
1104 "description": "English"
1105 },
1106 {
1107 "type": "string",
1108 "const": "ar",
1109 "description": "Arabic"
1110 },
1111 {
1112 "type": "string",
1113 "const": "cs",
1114 "description": "Czech"
1115 },
1116 {
1117 "type": "string",
1118 "const": "de",
1119 "description": "German"
1120 },
1121 {
1122 "type": "string",
1123 "const": "es",
1124 "description": "Spanish"
1125 },
1126 {
1127 "type": "string",
1128 "const": "fi",
1129 "description": "Finnish"
1130 },
1131 {
1132 "type": "string",
1133 "const": "fr",
1134 "description": "French"
1135 },
1136 {
1137 "type": "string",
1138 "const": "gl",
1139 "description": "Galician"
1140 },
1141 {
1142 "type": "string",
1143 "const": "he",
1144 "description": "Hebrew"
1145 },
1146 {
1147 "type": "string",
1148 "const": "id",
1149 "description": "Indonesian"
1150 },
1151 {
1152 "type": "string",
1153 "const": "it",
1154 "description": "Italian"
1155 },
1156 {
1157 "type": "string",
1158 "const": "ja",
1159 "description": "Japanese"
1160 },
1161 {
1162 "type": "string",
1163 "const": "ko",
1164 "description": "Korean"
1165 },
1166 {
1167 "type": "string",
1168 "const": "pl",
1169 "description": "Polish"
1170 },
1171 {
1172 "type": "string",
1173 "const": "pt",
1174 "description": "Portuguese"
1175 },
1176 {
1177 "type": "string",
1178 "const": "ru",
1179 "description": "Russian"
1180 },
1181 {
1182 "type": "string",
1183 "const": "tr",
1184 "description": "Turkish"
1185 },
1186 {
1187 "type": "string",
1188 "const": "uk",
1189 "description": "Ukrainian"
1190 },
1191 {
1192 "type": "string",
1193 "const": "vi",
1194 "description": "Vietnamese"
1195 },
1196 {
1197 "type": "string",
1198 "const": "zh_CN",
1199 "description": "Simplified Chinese"
1200 },
1201 {
1202 "type": "string",
1203 "const": "zh_TW",
1204 "description": "Traditional Chinese"
1205 }
1206 ],
1207 "default": "en"
1208 }
1209 }
1210 },
1211 "size": {
1212 "type": "object",
1213 "additionalProperties": false,
1214 "description": "Configure how sizes are displayed",
1215 "properties": {
1216 "binaryPrefix": {
1217 "type": "string",
1218 "description": "Set the binary prefix to use when formatting sizes",
1219 "oneOf": [
1220 {
1221 "const": "iec",
1222 "description": "1024 Bytes = 1 KiB, 1024 KiB = 1 MiB, ... (standard)"
1223 },
1224 {
1225 "const": "si",
1226 "description": "1000 Bytes = 1 kB, 1000 kB = 1 MB, ..."
1227 },
1228 {
1229 "const": "jedec",
1230 "description": "1024 Bytes = 1 KB, 1024 KB = 1 MB, ..."
1231 }
1232 ],
1233 "default": "iec"
1234 },
1235 "maxPrefix": {
1236 "type": "string",
1237 "description": "Set the largest binary prefix to use when formatting sizes",
1238 "enum": ["B", "kB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"],
1239 "default": "YB"
1240 },
1241 "ndigits": {
1242 "type": "integer",
1243 "description": "Number of decimal places to use when formatting sizes",
1244 "minimum": 0,
1245 "maximum": 9,
1246 "default": 2
1247 },
1248 "spaceBeforeUnit": {
1249 "$ref": "#/$defs/spaceBeforeUnit"
1250 }
1251 }
1252 },
1253 "temp": {
1254 "type": "object",
1255 "additionalProperties": false,
1256 "description": "Configure how temperatures are displayed",
1257 "properties": {
1258 "unit": {
1259 "type": "string",
1260 "description": "Set the unit of temperature",
1261 "oneOf": [
1262 {
1263 "const": "C",
1264 "description": "Celsius"
1265 },
1266 {
1267 "const": "F",
1268 "description": "Fahrenheit"
1269 },
1270 {
1271 "const": "K",
1272 "description": "Kelvin"
1273 },
1274 {
1275 "const": "D",
1276 "description": "Default (alias for Celsius)"
1277 }
1278 ],
1279 "default": "D"
1280 },
1281 "ndigits": {
1282 "type": "integer",
1283 "description": "Number of decimal places to use when formatting temperatures",
1284 "minimum": 0,
1285 "maximum": 9,
1286 "default": 1
1287 },
1288 "color": {
1289 "type": "object",
1290 "additionalProperties": false,
1291 "description": "Colors used for different temperature states",
1292 "properties": {
1293 "green": {
1294 "description": "Color used in green state",
1295 "$ref": "#/$defs/colors",
1296 "default": "green"
1297 },
1298 "yellow": {
1299 "description": "Color used in yellow state",
1300 "$ref": "#/$defs/colors",
1301 "default": "light_yellow"
1302 },
1303 "red": {
1304 "description": "Color used in red state",
1305 "$ref": "#/$defs/colors",
1306 "default": "light_red"
1307 }
1308 }
1309 },
1310 "spaceBeforeUnit": {
1311 "$ref": "#/$defs/spaceBeforeUnit"
1312 }
1313 }
1314 },
1315 "bar": {
1316 "type": "object",
1317 "additionalProperties": false,
1318 "description": "Bar configuration",
1319 "properties": {
1320 "char": {
1321 "type": "object",
1322 "additionalProperties": false,
1323 "description": "Characters used in the bar",
1324 "properties": {
1325 "elapsed": {
1326 "type": "string",
1327 "description": "Character used for the elapsed portion",
1328 "default": "â– "
1329 },
1330 "total": {
1331 "type": "string",
1332 "description": "Character used for the remaining portion",
1333 "default": "-"
1334 }
1335 }
1336 },
1337 "border": {
1338 "oneOf": [
1339 {
1340 "type": "null",
1341 "description": "Disable bar borders"
1342 },
1343 {
1344 "type": "object",
1345 "additionalProperties": false,
1346 "description": "Strings used for percentage bar borders",
1347 "properties": {
1348 "left": {
1349 "type": "string",
1350 "description": "String used for the left border",
1351 "default": "[ "
1352 },
1353 "right": {
1354 "type": "string",
1355 "description": "String used for the right border",
1356 "default": " ]"
1357 },
1358 "leftElapsed": {
1359 "type": "string",
1360 "description": "If both `leftElapsed` and `rightElapsed` are set, the border is used as part of the bar content",
1361 "default": ""
1362 },
1363 "rightElapsed": {
1364 "type": "string",
1365 "description": "If both `leftElapsed` and `rightElapsed` are set, the border is used as part of the bar content",
1366 "default": ""
1367 }
1368 }
1369 }
1370 ]
1371 },
1372 "color": {
1373 "oneOf": [
1374 {
1375 "type": "null",
1376 "description": "Disable color in percentage bars"
1377 },
1378 {
1379 "type": "object",
1380 "additionalProperties": false,
1381 "description": "Colors used for percentage bars",
1382 "properties": {
1383 "elapsed": {
1384 "description": "Color used for the elapsed portion of percentage bars\nBy default, it is selected automatically from `percent.color.{green,yellow,red}`",
1385 "$ref": "#/$defs/colors",
1386 "default": "auto"
1387 },
1388 "total": {
1389 "description": "Color used for the remaining portion of percentage bars",
1390 "$ref": "#/$defs/colors",
1391 "default": "light_white"
1392 },
1393 "border": {
1394 "description": "Color used for percentage bar borders",
1395 "$ref": "#/$defs/colors",
1396 "default": "light_white"
1397 }
1398 }
1399 }
1400 ]
1401 },
1402 "width": {
1403 "type": "integer",
1404 "description": "Width of the bar in characters",
1405 "minimum": 1,
1406 "default": 10
1407 }
1408 }
1409 },
1410 "percent": {
1411 "type": "object",
1412 "additionalProperties": false,
1413 "description": "Configure how percentages are displayed",
1414 "properties": {
1415 "type": {
1416 "$ref": "#/$defs/percentType"
1417 },
1418 "ndigits": {
1419 "type": "number",
1420 "description": "Number of decimal places to use when formatting percentages",
1421 "minimum": 0,
1422 "maximum": 9,
1423 "default": 0
1424 },
1425 "color": {
1426 "type": "object",
1427 "additionalProperties": false,
1428 "description": "Colors used for different percentage states",
1429 "properties": {
1430 "green": {
1431 "description": "Color used in green state",
1432 "$ref": "#/$defs/colors",
1433 "default": "green"
1434 },
1435 "yellow": {
1436 "description": "Color used in yellow state",
1437 "$ref": "#/$defs/colors",
1438 "default": "light_yellow"
1439 },
1440 "red": {
1441 "description": "Color used in red state",
1442 "$ref": "#/$defs/colors",
1443 "default": "light_red"
1444 }
1445 }
1446 },
1447 "spaceBeforeUnit": {
1448 "$ref": "#/$defs/spaceBeforeUnit"
1449 },
1450 "width": {
1451 "type": "integer",
1452 "description": "Width of the percentage number in characters",
1453 "minimum": 0,
1454 "default": 0
1455 }
1456 }
1457 },
1458 "freq": {
1459 "type": "object",
1460 "additionalProperties": false,
1461 "description": "Configure how frequencies are displayed",
1462 "properties": {
1463 "ndigits": {
1464 "description": "Set the number of decimal places to display when formatting frequency values",
1465 "oneOf": [
1466 {
1467 "type": "integer",
1468 "minimum": 0,
1469 "maximum": 9,
1470 "description": "An integer displays the frequency in GHz with the specified number of decimal places"
1471 },
1472 {
1473 "type": "null",
1474 "description": "A null value displays the frequency as an integer in MHz"
1475 }
1476 ],
1477 "default": 2
1478 },
1479 "spaceBeforeUnit": {
1480 "$ref": "#/$defs/spaceBeforeUnit"
1481 }
1482 }
1483 },
1484 "duration": {
1485 "type": "object",
1486 "description": "Configure how durations are displayed",
1487 "properties": {
1488 "abbreviation": {
1489 "type": "boolean",
1490 "description": "Whether to abbreviate durations\nIf true, values are shown as \"1h 2m\" instead of \"1 hour, 2 mins\"",
1491 "default": false
1492 },
1493 "spaceBeforeUnit": {
1494 "$ref": "#/$defs/spaceBeforeUnit"
1495 }
1496 }
1497 },
1498 "fraction": {
1499 "type": "object",
1500 "additionalProperties": false,
1501 "description": "Configure how fractional values are displayed",
1502 "properties": {
1503 "ndigits": {
1504 "oneOf": [
1505 {
1506 "type": "number",
1507 "description": "Number of decimal places to use when formatting fractional values",
1508 "minimum": 0,
1509 "maximum": 9
1510 },
1511 {
1512 "type": "null",
1513 "description": "Automatically determine the number of decimal places based on the value"
1514 }
1515 ],
1516 "default": 2
1517 },
1518 "trailingZeros": {
1519 "description": "Control when trailing zeros are preserved",
1520 "oneOf": [
1521 {
1522 "type": "null",
1523 "description": "Same as `default`"
1524 },
1525 {
1526 "const": "default",
1527 "description": "Use the built-in behavior"
1528 },
1529 {
1530 "const": "always",
1531 "description": "Always keep trailing zeros"
1532 },
1533 {
1534 "const": "never",
1535 "description": "Never keep trailing zeros"
1536 }
1537 ],
1538 "default": null
1539 }
1540 }
1541 },
1542 "common": {
1543 "type": "object",
1544 "additionalProperties": false,
1545 "description": "Override the settings for `duration`, `fraction`, `freq`, `percent`, `size`, and `temp`\nPlace this before those properties to use it as their default configuration",
1546 "properties": {
1547 "ndigits": {
1548 "description": "Default number of decimal places to display",
1549 "type": "integer",
1550 "minimum": 0,
1551 "maximum": 9
1552 },
1553 "spaceBeforeUnit": {
1554 "$ref": "#/$defs/spaceBeforeUnit"
1555 }
1556 }
1557 },
1558 "noBuffer": {
1559 "type": "boolean",
1560 "description": "Whether to disable stdout buffering",
1561 "default": false
1562 },
1563 "constants": {
1564 "type": "array",
1565 "description": "List of strings available for use in module custom formats",
1566 "items": {
1567 "type": "string"
1568 }
1569 }
1570 }
1571 },
1572 "modules": {
1573 "description": "Modules to run",
1574 "type": "array",
1575 "items": {
1576 "anyOf": [
1577 {
1578 "type": "string",
1579 "description": "Run a module with its default configuration",
1580 "enum": [
1581 "battery",
1582 "bios",
1583 "bluetooth",
1584 "bluetoothradio",
1585 "board",
1586 "bootmgr",
1587 "break",
1588 "brightness",
1589 "btrfs",
1590 "camera",
1591 "chassis",
1592 "cpu",
1593 "cpucache",
1594 "cpuusage",
1595 "codec",
1596 "command",
1597 "colors",
1598 "cursor",
1599 "custom",
1600 "datetime",
1601 "display",
1602 "disk",
1603 "diskio",
1604 "de",
1605 "dns",
1606 "editor",
1607 "font",
1608 "gamepad",
1609 "gpu",
1610 "host",
1611 "icons",
1612 "initsystem",
1613 "keyboard",
1614 "kernel",
1615 "lm",
1616 "loadavg",
1617 "locale",
1618 "localip",
1619 "logo",
1620 "media",
1621 "memory",
1622 "monitor",
1623 "mouse",
1624 "netio",
1625 "opencl",
1626 "opengl",
1627 "os",
1628 "packages",
1629 "physicaldisk",
1630 "physicalmemory",
1631 "player",
1632 "poweradapter",
1633 "processes",
1634 "publicip",
1635 "top",
1636 "separator",
1637 "shell",
1638 "sound",
1639 "swap",
1640 "terminal",
1641 "terminalfont",
1642 "terminalsize",
1643 "terminaltheme",
1644 "title",
1645 "theme",
1646 "tpm",
1647 "uptime",
1648 "users",
1649 "version",
1650 "vulkan",
1651 "wallpaper",
1652 "weather",
1653 "wm",
1654 "wifi",
1655 "wmtheme",
1656 "zpool"
1657 ]
1658 },
1659 {
1660 "type": "object",
1661 "description": "Run a module with a custom configuration",
1662 "required": [
1663 "type"
1664 ],
1665 "properties": {
1666 "type": {
1667 "type": "string"
1668 }
1669 },
1670 "oneOf": [
1671 {
1672 "title": "Break",
1673 "type": "object",
1674 "additionalProperties": false,
1675 "properties": {
1676 "type": {
1677 "const": "break",
1678 "description": "Print an empty line"
1679 },
1680 "condition": {
1681 "$ref": "#/$defs/conditions"
1682 }
1683 }
1684 },
1685 {
1686 "title": "Battery",
1687 "type": "object",
1688 "additionalProperties": false,
1689 "properties": {
1690 "type": {
1691 "const": "battery",
1692 "description": "Print battery information"
1693 },
1694 "temp": {
1695 "$ref": "#/$defs/temperature"
1696 },
1697 "percent": {
1698 "$ref": "#/$defs/percent"
1699 },
1700 "key": {
1701 "$ref": "#/$defs/key"
1702 },
1703 "keyColor": {
1704 "$ref": "#/$defs/keyColor"
1705 },
1706 "keyIcon": {
1707 "$ref": "#/$defs/keyIcon"
1708 },
1709 "keyWidth": {
1710 "$ref": "#/$defs/keyWidth"
1711 },
1712 "outputColor": {
1713 "$ref": "#/$defs/outputColor"
1714 },
1715 "format": {
1716 "$ref": "#/$defs/batteryFormat"
1717 },
1718 "condition": {
1719 "$ref": "#/$defs/conditions"
1720 }
1721 }
1722 },
1723 {
1724 "title": "BIOS",
1725 "type": "object",
1726 "additionalProperties": false,
1727 "properties": {
1728 "type": {
1729 "description": "Print first-stage bootloader information (name, version, release date, etc.)",
1730 "const": "bios"
1731 },
1732 "key": {
1733 "$ref": "#/$defs/key"
1734 },
1735 "keyColor": {
1736 "$ref": "#/$defs/keyColor"
1737 },
1738 "keyIcon": {
1739 "$ref": "#/$defs/keyIcon"
1740 },
1741 "keyWidth": {
1742 "$ref": "#/$defs/keyWidth"
1743 },
1744 "outputColor": {
1745 "$ref": "#/$defs/outputColor"
1746 },
1747 "format": {
1748 "$ref": "#/$defs/biosFormat"
1749 },
1750 "condition": {
1751 "$ref": "#/$defs/conditions"
1752 }
1753 }
1754 },
1755 {
1756 "title": "Bluetooth",
1757 "type": "object",
1758 "additionalProperties": false,
1759 "properties": {
1760 "type": {
1761 "description": "List connected Bluetooth devices",
1762 "const": "bluetooth"
1763 },
1764 "showDisconnected": {
1765 "description": "Whether to show disconnected Bluetooth devices",
1766 "type": "boolean",
1767 "default": false
1768 },
1769 "showType": {
1770 "description": "Which Bluetooth stacks to look for",
1771 "oneOf": [
1772 {
1773 "const": "classic",
1774 "description": "Look for BR/EDR devices only"
1775 },
1776 {
1777 "const": "le",
1778 "description": "Look for Bluetooth Low Energy devices only"
1779 },
1780 {
1781 "const": "both",
1782 "description": "Look for devices on either stack"
1783 }
1784 ],
1785 "default": "both"
1786 },
1787 "percent": {
1788 "$ref": "#/$defs/percent"
1789 },
1790 "key": {
1791 "$ref": "#/$defs/key"
1792 },
1793 "keyColor": {
1794 "$ref": "#/$defs/keyColor"
1795 },
1796 "keyIcon": {
1797 "$ref": "#/$defs/keyIcon"
1798 },
1799 "keyWidth": {
1800 "$ref": "#/$defs/keyWidth"
1801 },
1802 "outputColor": {
1803 "$ref": "#/$defs/outputColor"
1804 },
1805 "format": {
1806 "$ref": "#/$defs/bluetoothFormat"
1807 },
1808 "condition": {
1809 "$ref": "#/$defs/conditions"
1810 }
1811 }
1812 },
1813 {
1814 "title": "Bluetooth Radio",
1815 "type": "object",
1816 "additionalProperties": false,
1817 "properties": {
1818 "type": {
1819 "description": "List Bluetooth radios (supported versions, vendors, etc.)",
1820 "const": "bluetoothradio"
1821 },
1822 "key": {
1823 "$ref": "#/$defs/key"
1824 },
1825 "keyColor": {
1826 "$ref": "#/$defs/keyColor"
1827 },
1828 "keyIcon": {
1829 "$ref": "#/$defs/keyIcon"
1830 },
1831 "keyWidth": {
1832 "$ref": "#/$defs/keyWidth"
1833 },
1834 "outputColor": {
1835 "$ref": "#/$defs/outputColor"
1836 },
1837 "format": {
1838 "$ref": "#/$defs/bluetoothradioFormat"
1839 },
1840 "condition": {
1841 "$ref": "#/$defs/conditions"
1842 }
1843 }
1844 },
1845 {
1846 "title": "Board",
1847 "type": "object",
1848 "additionalProperties": false,
1849 "properties": {
1850 "type": {
1851 "description": "Print motherboard name and other information",
1852 "const": "board"
1853 },
1854 "key": {
1855 "$ref": "#/$defs/key"
1856 },
1857 "keyColor": {
1858 "$ref": "#/$defs/keyColor"
1859 },
1860 "keyIcon": {
1861 "$ref": "#/$defs/keyIcon"
1862 },
1863 "keyWidth": {
1864 "$ref": "#/$defs/keyWidth"
1865 },
1866 "outputColor": {
1867 "$ref": "#/$defs/outputColor"
1868 },
1869 "format": {
1870 "$ref": "#/$defs/boardFormat"
1871 },
1872 "condition": {
1873 "$ref": "#/$defs/conditions"
1874 }
1875 }
1876 },
1877 {
1878 "title": "Boot Manager",
1879 "type": "object",
1880 "additionalProperties": false,
1881 "properties": {
1882 "type": {
1883 "description": "Print second-stage bootloader information (name, firmware, etc.)",
1884 "const": "bootmgr"
1885 },
1886 "key": {
1887 "$ref": "#/$defs/key"
1888 },
1889 "keyColor": {
1890 "$ref": "#/$defs/keyColor"
1891 },
1892 "keyIcon": {
1893 "$ref": "#/$defs/keyIcon"
1894 },
1895 "keyWidth": {
1896 "$ref": "#/$defs/keyWidth"
1897 },
1898 "outputColor": {
1899 "$ref": "#/$defs/outputColor"
1900 },
1901 "format": {
1902 "$ref": "#/$defs/bootmgrFormat"
1903 },
1904 "condition": {
1905 "$ref": "#/$defs/conditions"
1906 }
1907 }
1908 },
1909 {
1910 "title": "Brightness",
1911 "type": "object",
1912 "additionalProperties": false,
1913 "properties": {
1914 "type": {
1915 "const": "brightness",
1916 "description": "Print the current brightness level of your monitors"
1917 },
1918 "percent": {
1919 "$ref": "#/$defs/percent"
1920 },
1921 "ddcciSleep": {
1922 "description": "Sleep time in milliseconds between DDC/CI requests\nSet to null to skip DDC/CI detection",
1923 "oneOf": [
1924 {
1925 "type": "null",
1926 "description": "Skip DDC/CI detection"
1927 },
1928 {
1929 "type": "integer",
1930 "minimum": 0,
1931 "maximum": 400
1932 }
1933 ],
1934 "default": 10
1935 },
1936 "compact": {
1937 "description": "Whether to print multiple results on a single line",
1938 "type": "boolean",
1939 "default": false
1940 },
1941 "key": {
1942 "$ref": "#/$defs/key"
1943 },
1944 "keyColor": {
1945 "$ref": "#/$defs/keyColor"
1946 },
1947 "keyIcon": {
1948 "$ref": "#/$defs/keyIcon"
1949 },
1950 "keyWidth": {
1951 "$ref": "#/$defs/keyWidth"
1952 },
1953 "outputColor": {
1954 "$ref": "#/$defs/outputColor"
1955 },
1956 "format": {
1957 "$ref": "#/$defs/brightnessFormat"
1958 },
1959 "condition": {
1960 "$ref": "#/$defs/conditions"
1961 }
1962 }
1963 },
1964 {
1965 "title": "BTRFS",
1966 "type": "object",
1967 "additionalProperties": false,
1968 "properties": {
1969 "type": {
1970 "const": "btrfs",
1971 "description": "Print Linux BTRFS volumes"
1972 },
1973 "percent": {
1974 "$ref": "#/$defs/percent"
1975 },
1976 "key": {
1977 "$ref": "#/$defs/key"
1978 },
1979 "keyColor": {
1980 "$ref": "#/$defs/keyColor"
1981 },
1982 "keyIcon": {
1983 "$ref": "#/$defs/keyIcon"
1984 },
1985 "keyWidth": {
1986 "$ref": "#/$defs/keyWidth"
1987 },
1988 "outputColor": {
1989 "$ref": "#/$defs/outputColor"
1990 },
1991 "format": {
1992 "$ref": "#/$defs/btrfsFormat"
1993 },
1994 "condition": {
1995 "$ref": "#/$defs/conditions"
1996 }
1997 }
1998 },
1999 {
2000 "title": "Camera",
2001 "type": "object",
2002 "additionalProperties": false,
2003 "properties": {
2004 "type": {
2005 "description": "Print available cameras",
2006 "const": "camera"
2007 },
2008 "key": {
2009 "$ref": "#/$defs/key"
2010 },
2011 "keyColor": {
2012 "$ref": "#/$defs/keyColor"
2013 },
2014 "keyIcon": {
2015 "$ref": "#/$defs/keyIcon"
2016 },
2017 "keyWidth": {
2018 "$ref": "#/$defs/keyWidth"
2019 },
2020 "outputColor": {
2021 "$ref": "#/$defs/outputColor"
2022 },
2023 "format": {
2024 "$ref": "#/$defs/cameraFormat"
2025 },
2026 "condition": {
2027 "$ref": "#/$defs/conditions"
2028 }
2029 }
2030 },
2031 {
2032 "title": "Chassis",
2033 "type": "object",
2034 "additionalProperties": false,
2035 "properties": {
2036 "type": {
2037 "const": "chassis",
2038 "description": "Print chassis type information (desktop, laptop, etc.)"
2039 },
2040 "key": {
2041 "$ref": "#/$defs/key"
2042 },
2043 "keyColor": {
2044 "$ref": "#/$defs/keyColor"
2045 },
2046 "keyIcon": {
2047 "$ref": "#/$defs/keyIcon"
2048 },
2049 "keyWidth": {
2050 "$ref": "#/$defs/keyWidth"
2051 },
2052 "outputColor": {
2053 "$ref": "#/$defs/outputColor"
2054 },
2055 "format": {
2056 "$ref": "#/$defs/chassisFormat"
2057 },
2058 "condition": {
2059 "$ref": "#/$defs/conditions"
2060 }
2061 }
2062 },
2063 {
2064 "title": "Codec",
2065 "type": "object",
2066 "additionalProperties": false,
2067 "properties": {
2068 "type": {
2069 "const": "codec",
2070 "description": "Print hardware video acceleration codec types (decode / encode)"
2071 },
2072 "splitGPU": {
2073 "description": "Whether to print each GPU separately. If false, merge codecs from all GPUs",
2074 "type": "boolean",
2075 "default": false
2076 },
2077 "useVulkan": {
2078 "description": "Whether to use Vulkan for codec detection instead of other platform-specific APIs",
2079 "type": "boolean",
2080 "default": false
2081 },
2082 "showType": {
2083 "description": "Which types of codecs to detect and show",
2084 "type": "string",
2085 "oneOf": [
2086 {
2087 "const": "both",
2088 "description": "Show both decoders and encoders"
2089 },
2090 {
2091 "const": "decoder",
2092 "description": "Show only decoders"
2093 },
2094 {
2095 "const": "encoder",
2096 "description": "Show only encoders"
2097 }
2098 ],
2099 "default": "both"
2100 },
2101 "key": {
2102 "$ref": "#/$defs/key"
2103 },
2104 "keyColor": {
2105 "$ref": "#/$defs/keyColor"
2106 },
2107 "keyIcon": {
2108 "$ref": "#/$defs/keyIcon"
2109 },
2110 "keyWidth": {
2111 "$ref": "#/$defs/keyWidth"
2112 },
2113 "outputColor": {
2114 "$ref": "#/$defs/outputColor"
2115 },
2116 "format": {
2117 "$ref": "#/$defs/codecFormat"
2118 },
2119 "condition": {
2120 "$ref": "#/$defs/conditions"
2121 }
2122 }
2123 },
2124 {
2125 "title": "CPU",
2126 "type": "object",
2127 "additionalProperties": false,
2128 "properties": {
2129 "type": {
2130 "description": "Print CPU name, frequency, etc.",
2131 "const": "cpu"
2132 },
2133 "temp": {
2134 "$ref": "#/$defs/temperature"
2135 },
2136 "tempSensor": {
2137 "description": "Set the temperature sensor to use for CPU temperature detection\n* Linux: `hwmon` or `thermal` path name (eg. `hwmon0`, `thermal_zone0)`\n* macOS: SMC sensor key (eg. `Tp01`)\n* Windows: thermal zone key (eg. `\\_TZ.CPUZ`)\n* FreeBSD: sysctl key (eg. `dev.cpu.0.temperature`)\n* NetBSD: sysmon sensor key (eg. `coretemp0`)",
2138 "type": "string"
2139 },
2140 "showPeCoreCount": {
2141 "description": "Whether to detect and display CPU frequencies for different core types (for example, P-cores and E-cores), if supported",
2142 "type": "boolean",
2143 "default": true
2144 },
2145 "key": {
2146 "$ref": "#/$defs/key"
2147 },
2148 "keyColor": {
2149 "$ref": "#/$defs/keyColor"
2150 },
2151 "keyIcon": {
2152 "$ref": "#/$defs/keyIcon"
2153 },
2154 "keyWidth": {
2155 "$ref": "#/$defs/keyWidth"
2156 },
2157 "outputColor": {
2158 "$ref": "#/$defs/outputColor"
2159 },
2160 "format": {
2161 "$ref": "#/$defs/cpuFormat"
2162 },
2163 "condition": {
2164 "$ref": "#/$defs/conditions"
2165 }
2166 }
2167 },
2168 {
2169 "title": "CPU Cache",
2170 "type": "object",
2171 "additionalProperties": false,
2172 "properties": {
2173 "type": {
2174 "const": "cpucache",
2175 "description": "Print CPU cache sizes"
2176 },
2177 "compact": {
2178 "type": "boolean",
2179 "description": "Print one line with a total per cache level instead of one line per level",
2180 "default": false
2181 },
2182 "key": {
2183 "$ref": "#/$defs/key"
2184 },
2185 "keyColor": {
2186 "$ref": "#/$defs/keyColor"
2187 },
2188 "keyIcon": {
2189 "$ref": "#/$defs/keyIcon"
2190 },
2191 "keyWidth": {
2192 "$ref": "#/$defs/keyWidth"
2193 },
2194 "outputColor": {
2195 "$ref": "#/$defs/outputColor"
2196 },
2197 "format": {
2198 "$ref": "#/$defs/cpucacheFormat"
2199 },
2200 "condition": {
2201 "$ref": "#/$defs/conditions"
2202 }
2203 }
2204 },
2205 {
2206 "title": "CPU Usage",
2207 "type": "object",
2208 "additionalProperties": false,
2209 "properties": {
2210 "type": {
2211 "const": "cpuusage",
2212 "description": "Print CPU usage. Collecting data takes some time"
2213 },
2214 "percent": {
2215 "$ref": "#/$defs/percent"
2216 },
2217 "separate": {
2218 "type": "boolean",
2219 "description": "Show CPU usage for each logical core instead of an average",
2220 "default": false
2221 },
2222 "waitTime": {
2223 "type": "integer",
2224 "description": "Wait time (in ms). CPU usage = (inUseEnd - inUseStart) / waitTime",
2225 "default": 200,
2226 "minimum": 1
2227 },
2228 "key": {
2229 "$ref": "#/$defs/key"
2230 },
2231 "keyColor": {
2232 "$ref": "#/$defs/keyColor"
2233 },
2234 "keyIcon": {
2235 "$ref": "#/$defs/keyIcon"
2236 },
2237 "keyWidth": {
2238 "$ref": "#/$defs/keyWidth"
2239 },
2240 "outputColor": {
2241 "$ref": "#/$defs/outputColor"
2242 },
2243 "format": {
2244 "$ref": "#/$defs/cpuusageFormat"
2245 },
2246 "condition": {
2247 "$ref": "#/$defs/conditions"
2248 }
2249 }
2250 },
2251 {
2252 "title": "Colors",
2253 "type": "object",
2254 "additionalProperties": false,
2255 "properties": {
2256 "type": {
2257 "description": "Display the terminal's 16-color palette",
2258 "const": "colors"
2259 },
2260 "symbol": {
2261 "description": "Set the symbol to use",
2262 "type": "string",
2263 "oneOf": [
2264 {
2265 "const": "block",
2266 "description": "\u2588\u2588\u2588"
2267 },
2268 {
2269 "const": "background",
2270 "description": "Whitespace with background color"
2271 },
2272 {
2273 "const": "circle",
2274 "description": "\u25cf"
2275 },
2276 {
2277 "const": "diamond",
2278 "description": "\u25c6"
2279 },
2280 {
2281 "const": "triangle",
2282 "description": "\u25b2"
2283 },
2284 {
2285 "const": "square",
2286 "description": "\u25a0"
2287 },
2288 {
2289 "const": "star",
2290 "description": "\u2605"
2291 }
2292 ],
2293 "default": "background"
2294 },
2295 "paddingLeft": {
2296 "description": "Set the number of white spaces to print before the symbol",
2297 "type": "integer",
2298 "minimum": 0,
2299 "maximum": 4294967295,
2300 "default": 0
2301 },
2302 "block": {
2303 "description": "Set behavior of block printing. Only works when symbol is set to `block` or `background`",
2304 "type": "object",
2305 "additionalProperties": false,
2306 "properties": {
2307 "width": {
2308 "description": "Set the block width in spaces",
2309 "type": "integer",
2310 "minimum": 1,
2311 "maximum": 9,
2312 "default": 3
2313 },
2314 "range": {
2315 "description": "Set the range of colors in the blocks to print",
2316 "type": "array",
2317 "items": {
2318 "type": "integer",
2319 "minimum": 0,
2320 "maximum": 15
2321 },
2322 "minItems": 2,
2323 "maxItems": 2
2324 }
2325 }
2326 },
2327 "brightness": {
2328 "description": "Set the brightness of colors. Works together with the block color range to determine which colors are displayed",
2329 "type": "string",
2330 "oneOf": [
2331 {
2332 "const": "default",
2333 "description": "Use the default setting (block/background: 0-15, others: 8-1)"
2334 },
2335 {
2336 "const": "light",
2337 "description": "Use ANSI bright foreground colors (codes 90-97, not color indices 9-15)"
2338 },
2339 {
2340 "const": "normal",
2341 "description": "Use normal ANSI colors (30-37; standard foreground colors, corresponding to color indices 0-7)"
2342 }
2343 ],
2344 "default": "default"
2345 },
2346 "key": {
2347 "$ref": "#/$defs/key"
2348 },
2349 "keyColor": {
2350 "$ref": "#/$defs/keyColor"
2351 },
2352 "keyIcon": {
2353 "$ref": "#/$defs/keyIcon"
2354 },
2355 "keyWidth": {
2356 "$ref": "#/$defs/keyWidth"
2357 },
2358 "condition": {
2359 "$ref": "#/$defs/conditions"
2360 }
2361 }
2362 },
2363 {
2364 "title": "Command",
2365 "type": "object",
2366 "additionalProperties": false,
2367 "properties": {
2368 "type": {
2369 "description": "Run custom shell scripts",
2370 "const": "command"
2371 },
2372 "shell": {
2373 "description": "Shell program used to execute the command text\nDefault: `cmd` on Windows, `/bin/sh` on Unix-like systems",
2374 "type": "string"
2375 },
2376 "param": {
2377 "description": "Parameter used when starting the shell\nIf set to an empty string, it is ignored\nDefault: `/c` on Windows, `-c` on Unix-like systems",
2378 "type": "string"
2379 },
2380 "text": {
2381 "description": "Command text to execute",
2382 "type": "string"
2383 },
2384 "useOutput": {
2385 "description": "Which of the command's output streams to capture\nThe stream that is not captured is discarded",
2386 "type": "string",
2387 "oneOf": [
2388 {
2389 "const": "stdout",
2390 "description": "Capture stdout only and discard stderr"
2391 },
2392 {
2393 "const": "stderr",
2394 "description": "Capture stderr only and discard stdout"
2395 },
2396 {
2397 "const": "both",
2398 "description": "Capture both stdout and stderr"
2399 }
2400 ],
2401 "default": "both"
2402 },
2403 "parallel": {
2404 "description": "Whether to execute the command in parallel with other commands\nThis can improve performance when using multiple commands, but may cause issues with some commands",
2405 "type": "boolean",
2406 "default": true
2407 },
2408 "splitLines": {
2409 "description": "Whether to split command output into multiple lines",
2410 "type": "boolean",
2411 "default": false
2412 },
2413 "key": {
2414 "$ref": "#/$defs/key"
2415 },
2416 "keyColor": {
2417 "$ref": "#/$defs/keyColor"
2418 },
2419 "keyIcon": {
2420 "$ref": "#/$defs/keyIcon"
2421 },
2422 "keyWidth": {
2423 "$ref": "#/$defs/keyWidth"
2424 },
2425 "outputColor": {
2426 "$ref": "#/$defs/outputColor"
2427 },
2428 "format": {
2429 "$ref": "#/$defs/commandFormat"
2430 },
2431 "condition": {
2432 "$ref": "#/$defs/conditions"
2433 }
2434 }
2435 },
2436 {
2437 "title": "Cursor",
2438 "type": "object",
2439 "additionalProperties": false,
2440 "properties": {
2441 "type": {
2442 "const": "cursor",
2443 "description": "Print cursor style name"
2444 },
2445 "key": {
2446 "$ref": "#/$defs/key"
2447 },
2448 "keyColor": {
2449 "$ref": "#/$defs/keyColor"
2450 },
2451 "keyIcon": {
2452 "$ref": "#/$defs/keyIcon"
2453 },
2454 "keyWidth": {
2455 "$ref": "#/$defs/keyWidth"
2456 },
2457 "outputColor": {
2458 "$ref": "#/$defs/outputColor"
2459 },
2460 "format": {
2461 "$ref": "#/$defs/cursorFormat"
2462 },
2463 "condition": {
2464 "$ref": "#/$defs/conditions"
2465 }
2466 }
2467 },
2468 {
2469 "title": "Custom",
2470 "type": "object",
2471 "additionalProperties": false,
2472 "properties": {
2473 "type": {
2474 "description": "Print a custom string, with or without key",
2475 "const": "custom"
2476 },
2477 "key": {
2478 "$ref": "#/$defs/key"
2479 },
2480 "keyColor": {
2481 "$ref": "#/$defs/keyColor"
2482 },
2483 "keyIcon": {
2484 "$ref": "#/$defs/keyIcon"
2485 },
2486 "keyWidth": {
2487 "$ref": "#/$defs/keyWidth"
2488 },
2489 "outputColor": {
2490 "$ref": "#/$defs/outputColor"
2491 },
2492 "format": {
2493 "description": "Text to print",
2494 "type": "string"
2495 },
2496 "condition": {
2497 "$ref": "#/$defs/conditions"
2498 }
2499 }
2500 },
2501 {
2502 "title": "Date Time",
2503 "type": "object",
2504 "additionalProperties": false,
2505 "properties": {
2506 "type": {
2507 "const": "datetime",
2508 "description": "Print the current date and time"
2509 },
2510 "key": {
2511 "$ref": "#/$defs/key"
2512 },
2513 "keyColor": {
2514 "$ref": "#/$defs/keyColor"
2515 },
2516 "keyIcon": {
2517 "$ref": "#/$defs/keyIcon"
2518 },
2519 "keyWidth": {
2520 "$ref": "#/$defs/keyWidth"
2521 },
2522 "outputColor": {
2523 "$ref": "#/$defs/outputColor"
2524 },
2525 "format": {
2526 "$ref": "#/$defs/datetimeFormat"
2527 },
2528 "condition": {
2529 "$ref": "#/$defs/conditions"
2530 }
2531 }
2532 },
2533 {
2534 "title": "Display",
2535 "type": "object",
2536 "additionalProperties": false,
2537 "properties": {
2538 "type": {
2539 "description": "Print display resolutions, refresh rates, etc.",
2540 "const": "display"
2541 },
2542 "compactType": {
2543 "description": "Whether to print all displays on a single line",
2544 "oneOf": [
2545 {
2546 "const": null,
2547 "description": "Disable compact mode"
2548 },
2549 {
2550 "const": "none",
2551 "description": "Disable compact mode (kept for compatibility)"
2552 },
2553 {
2554 "const": "original",
2555 "description": "Print original resolutions"
2556 },
2557 {
2558 "const": "scaled",
2559 "description": "Print scaled resolutions"
2560 },
2561 {
2562 "const": "original-with-refresh-rate",
2563 "description": "Print original resolutions with refresh rates"
2564 },
2565 {
2566 "const": "scaled-with-refresh-rate",
2567 "description": "Print scaled resolutions with refresh rates"
2568 }
2569 ],
2570 "default": null
2571 },
2572 "preciseRefreshRate": {
2573 "description": "Whether to preserve decimal refresh rates instead of rounding them to integers",
2574 "type": "boolean",
2575 "default": false
2576 },
2577 "order": {
2578 "description": "Order to use when printing displays",
2579 "oneOf": [
2580 {
2581 "const": null,
2582 "description": "Use the default order"
2583 },
2584 {
2585 "const": "none",
2586 "description": "Use the detected order (kept for compatibility)"
2587 },
2588 {
2589 "const": "asc",
2590 "description": "Sort by display name in ascending order"
2591 },
2592 {
2593 "const": "desc",
2594 "description": "Sort by display name in descending order"
2595 }
2596 ],
2597 "default": null
2598 },
2599 "key": {
2600 "$ref": "#/$defs/key"
2601 },
2602 "keyColor": {
2603 "$ref": "#/$defs/keyColor"
2604 },
2605 "keyIcon": {
2606 "$ref": "#/$defs/keyIcon"
2607 },
2608 "keyWidth": {
2609 "$ref": "#/$defs/keyWidth"
2610 },
2611 "outputColor": {
2612 "$ref": "#/$defs/outputColor"
2613 },
2614 "format": {
2615 "$ref": "#/$defs/displayFormat"
2616 },
2617 "condition": {
2618 "$ref": "#/$defs/conditions"
2619 }
2620 }
2621 },
2622 {
2623 "title": "Disk",
2624 "type": "object",
2625 "additionalProperties": false,
2626 "properties": {
2627 "type": {
2628 "description": "Print partitions, space usage, file system, etc.",
2629 "const": "disk"
2630 },
2631 "folders": {
2632 "description": "A list of folder paths for the disk output\nDefault: auto detection using mount-points\nThis option overrides other `show*` options",
2633 "oneOf": [
2634 {
2635 "type": "string",
2636 "description": "A colon (semicolon on Windows) separated list of folder paths to get disk usage from",
2637 "default": "/"
2638 },
2639 {
2640 "type": "array",
2641 "description": "An array of folder paths to get disk usage from",
2642 "items": {
2643 "type": "string"
2644 },
2645 "minItems": 1,
2646 "uniqueItems": true
2647 }
2648 ]
2649 },
2650 "hideFolders": {
2651 "description": "A list of folder paths (or glob patterns) to hide from the disk output",
2652 "oneOf": [
2653 {
2654 "type": "string",
2655 "description": "A colon (semicolon on Windows) separated list of folder paths to hide from the disk output"
2656 },
2657 {
2658 "type": "array",
2659 "description": "An array of folder paths to hide from the disk output",
2660 "items": {
2661 "type": "string"
2662 },
2663 "minItems": 1,
2664 "uniqueItems": true
2665 }
2666 ],
2667 "default": "/efi:/boot:/boot/*"
2668 },
2669 "hideFS": {
2670 "description": "A list of file systems to hide from the disk output",
2671 "oneOf": [
2672 {
2673 "type": "string",
2674 "description": "A colon separated list of file systems to hide from the disk output"
2675 },
2676 {
2677 "type": "array",
2678 "description": "An array of file systems to hide from the disk output",
2679 "items": {
2680 "type": "string"
2681 },
2682 "minItems": 1,
2683 "uniqueItems": true
2684 }
2685 ]
2686 },
2687 "showRegular": {
2688 "type": "boolean",
2689 "description": "Whether to show regular volumes",
2690 "default": true
2691 },
2692 "showExternal": {
2693 "type": "boolean",
2694 "description": "Whether to show external volumes",
2695 "default": true
2696 },
2697 "showHidden": {
2698 "type": "boolean",
2699 "description": "Whether to show hidden volumes",
2700 "default": false
2701 },
2702 "showSubvolumes": {
2703 "type": "boolean",
2704 "description": "Whether to show subvolumes",
2705 "default": false
2706 },
2707 "showReadOnly": {
2708 "type": "boolean",
2709 "description": "Whether to show read-only volumes",
2710 "default": false
2711 },
2712 "showUnknown": {
2713 "type": "boolean",
2714 "description": "Whether to show unknown volumes whose sizes cannot be detected",
2715 "default": false
2716 },
2717 "useAvailable": {
2718 "type": "boolean",
2719 "description": "Use f_bavail instead of f_bfree to calculate used bytes\nMay be required for macOS to display correct results\nOn Windows, set to true to make fastfetch honors the quota settings",
2720 "default": false
2721 },
2722 "percent": {
2723 "$ref": "#/$defs/percent"
2724 },
2725 "key": {
2726 "$ref": "#/$defs/key"
2727 },
2728 "keyColor": {
2729 "$ref": "#/$defs/keyColor"
2730 },
2731 "keyIcon": {
2732 "$ref": "#/$defs/keyIcon"
2733 },
2734 "keyWidth": {
2735 "$ref": "#/$defs/keyWidth"
2736 },
2737 "outputColor": {
2738 "$ref": "#/$defs/outputColor"
2739 },
2740 "format": {
2741 "$ref": "#/$defs/diskFormat"
2742 },
2743 "condition": {
2744 "$ref": "#/$defs/conditions"
2745 }
2746 }
2747 },
2748 {
2749 "title": "DiskIO",
2750 "type": "object",
2751 "additionalProperties": false,
2752 "properties": {
2753 "type": {
2754 "description": "Print physical disk I/O throughput",
2755 "const": "diskio"
2756 },
2757 "namePrefix": {
2758 "description": "Show only disks whose names start with this prefix",
2759 "type": "string"
2760 },
2761 "detectTotal": {
2762 "description": "Show total bytes instead of the current rate",
2763 "type": "boolean",
2764 "default": false
2765 },
2766 "waitTime": {
2767 "type": "integer",
2768 "description": "Wait time (in ms) used to measure the I/O rate (calculated in bytes/sec).\nAvoid setting this too low, as the kernel requires time to accurately update counters.\nIgnored if 'detectTotal' is true.",
2769 "default": 250,
2770 "minimum": 1
2771 },
2772 "key": {
2773 "$ref": "#/$defs/key"
2774 },
2775 "keyColor": {
2776 "$ref": "#/$defs/keyColor"
2777 },
2778 "keyIcon": {
2779 "$ref": "#/$defs/keyIcon"
2780 },
2781 "keyWidth": {
2782 "$ref": "#/$defs/keyWidth"
2783 },
2784 "outputColor": {
2785 "$ref": "#/$defs/outputColor"
2786 },
2787 "format": {
2788 "$ref": "#/$defs/diskioFormat"
2789 },
2790 "condition": {
2791 "$ref": "#/$defs/conditions"
2792 }
2793 }
2794 },
2795 {
2796 "title": "Desktop Environment",
2797 "type": "object",
2798 "additionalProperties": false,
2799 "properties": {
2800 "type": {
2801 "const": "de",
2802 "description": "Print desktop environment name"
2803 },
2804 "key": {
2805 "$ref": "#/$defs/key"
2806 },
2807 "keyColor": {
2808 "$ref": "#/$defs/keyColor"
2809 },
2810 "keyIcon": {
2811 "$ref": "#/$defs/keyIcon"
2812 },
2813 "keyWidth": {
2814 "$ref": "#/$defs/keyWidth"
2815 },
2816 "outputColor": {
2817 "$ref": "#/$defs/outputColor"
2818 },
2819 "format": {
2820 "$ref": "#/$defs/deFormat"
2821 },
2822 "condition": {
2823 "$ref": "#/$defs/conditions"
2824 }
2825 }
2826 },
2827 {
2828 "title": "DNS",
2829 "type": "object",
2830 "additionalProperties": false,
2831 "properties": {
2832 "type": {
2833 "const": "dns",
2834 "description": "Print configured DNS servers"
2835 },
2836 "showType": {
2837 "oneOf": [
2838 {
2839 "const": "ipv4",
2840 "description": "Show IPv4 addresses only"
2841 },
2842 {
2843 "const": "ipv6",
2844 "description": "Show IPv6 addresses only"
2845 },
2846 {
2847 "const": "both",
2848 "description": "Show both IPv4 and IPv6 addresses"
2849 }
2850 ],
2851 "default": "both",
2852 "description": "Which DNS server types to show"
2853 },
2854 "key": {
2855 "$ref": "#/$defs/key"
2856 },
2857 "keyColor": {
2858 "$ref": "#/$defs/keyColor"
2859 },
2860 "keyIcon": {
2861 "$ref": "#/$defs/keyIcon"
2862 },
2863 "keyWidth": {
2864 "$ref": "#/$defs/keyWidth"
2865 },
2866 "outputColor": {
2867 "$ref": "#/$defs/outputColor"
2868 },
2869 "format": {
2870 "$ref": "#/$defs/dnsFormat"
2871 },
2872 "condition": {
2873 "$ref": "#/$defs/conditions"
2874 }
2875 }
2876 },
2877 {
2878 "title": "Editor",
2879 "type": "object",
2880 "additionalProperties": false,
2881 "properties": {
2882 "type": {
2883 "const": "editor",
2884 "description": "Print information about the default editor (`$VISUAL` or `$EDITOR`)"
2885 },
2886 "key": {
2887 "$ref": "#/$defs/key"
2888 },
2889 "keyColor": {
2890 "$ref": "#/$defs/keyColor"
2891 },
2892 "keyIcon": {
2893 "$ref": "#/$defs/keyIcon"
2894 },
2895 "keyWidth": {
2896 "$ref": "#/$defs/keyWidth"
2897 },
2898 "outputColor": {
2899 "$ref": "#/$defs/outputColor"
2900 },
2901 "format": {
2902 "$ref": "#/$defs/editorFormat"
2903 },
2904 "condition": {
2905 "$ref": "#/$defs/conditions"
2906 }
2907 }
2908 },
2909 {
2910 "title": "Font",
2911 "type": "object",
2912 "additionalProperties": false,
2913 "properties": {
2914 "type": {
2915 "const": "font",
2916 "description": "Print system font names"
2917 },
2918 "key": {
2919 "$ref": "#/$defs/key"
2920 },
2921 "keyColor": {
2922 "$ref": "#/$defs/keyColor"
2923 },
2924 "keyIcon": {
2925 "$ref": "#/$defs/keyIcon"
2926 },
2927 "keyWidth": {
2928 "$ref": "#/$defs/keyWidth"
2929 },
2930 "outputColor": {
2931 "$ref": "#/$defs/outputColor"
2932 },
2933 "format": {
2934 "$ref": "#/$defs/fontFormat"
2935 },
2936 "condition": {
2937 "$ref": "#/$defs/conditions"
2938 }
2939 }
2940 },
2941 {
2942 "title": "Gamepad",
2943 "type": "object",
2944 "additionalProperties": false,
2945 "properties": {
2946 "type": {
2947 "const": "gamepad",
2948 "description": "List connected gamepads"
2949 },
2950 "ignores": {
2951 "type": "array",
2952 "description": "An array of case-insensitive device name prefixes to ignore",
2953 "items": {
2954 "type": "string"
2955 },
2956 "minItems": 1,
2957 "uniqueItems": true
2958 },
2959 "percent": {
2960 "$ref": "#/$defs/percent"
2961 },
2962 "key": {
2963 "$ref": "#/$defs/key"
2964 },
2965 "keyColor": {
2966 "$ref": "#/$defs/keyColor"
2967 },
2968 "keyIcon": {
2969 "$ref": "#/$defs/keyIcon"
2970 },
2971 "keyWidth": {
2972 "$ref": "#/$defs/keyWidth"
2973 },
2974 "outputColor": {
2975 "$ref": "#/$defs/outputColor"
2976 },
2977 "format": {
2978 "$ref": "#/$defs/gamepadFormat"
2979 },
2980 "condition": {
2981 "$ref": "#/$defs/conditions"
2982 }
2983 }
2984 },
2985 {
2986 "title": "GPU",
2987 "type": "object",
2988 "additionalProperties": false,
2989 "properties": {
2990 "type": {
2991 "description": "Print GPU names, memory sizes, types, etc.",
2992 "const": "gpu"
2993 },
2994 "temp": {
2995 "$ref": "#/$defs/temperature"
2996 },
2997 "driverSpecific": {
2998 "description": "Use driver specific method to detect more detailed GPU information (memory usage, core count, etc)\nRequires the latest GPU drivers to be installed.",
2999 "type": "boolean",
3000 "default": false
3001 },
3002 "detectionMethod": {
3003 "description": "Force a specific GPU detection method",
3004 "type": "string",
3005 "oneOf": [
3006 {
3007 "const": "auto",
3008 "description": "Query platform-specific graphics APIs.\nRequires proper GPU drivers to be installed.\nSupported on Linux, FreeBSD, Windows and macOS"
3009 },
3010 {
3011 "const": "pci",
3012 "description": "Search PCI devices, which does not require GPU drivers to be installed.\nNot supported on Windows and macOS"
3013 },
3014 {
3015 "const": "vulkan",
3016 "description": "Use Vulkan API.\nSlow and requires proper Vulkan drivers to be installed.\nUsed for Android"
3017 },
3018 {
3019 "const": "opencl",
3020 "description": "Use OpenCL API.\nSlow and requires proper OpenCL drivers to be installed"
3021 },
3022 {
3023 "const": "egl-ext",
3024 "description": "Use EGL_EXT_device_enumeration and EGL_EXT_device_query APIs.\nSlow and only detects GPUs that support these extensions"
3025 },
3026 {
3027 "const": "opengl",
3028 "description": "Use OpenGL API.\nSlow and only detects one GPU.\nUsed for OpenBSD"
3029 }
3030 ],
3031 "default": "<varies-by-platform>"
3032 },
3033 "hideType": {
3034 "description": "Hide GPUs of a specific type",
3035 "oneOf": [
3036 {
3037 "const": null,
3038 "description": "Do not hide any GPUs"
3039 },
3040 {
3041 "const": "none",
3042 "description": "Do not hide any GPUs (kept for compatibility)"
3043 },
3044 {
3045 "const": "integrated",
3046 "description": "Hide integrated GPUs"
3047 },
3048 {
3049 "const": "discrete",
3050 "description": "Hide discrete GPUs"
3051 },
3052 {
3053 "const": "unknown",
3054 "description": "Hide unknown (unrecognized) GPUs"
3055 }
3056 ],
3057 "default": null
3058 },
3059 "percent": {
3060 "$ref": "#/$defs/percent"
3061 },
3062 "key": {
3063 "$ref": "#/$defs/key"
3064 },
3065 "keyColor": {
3066 "$ref": "#/$defs/keyColor"
3067 },
3068 "keyIcon": {
3069 "$ref": "#/$defs/keyIcon"
3070 },
3071 "keyWidth": {
3072 "$ref": "#/$defs/keyWidth"
3073 },
3074 "outputColor": {
3075 "$ref": "#/$defs/outputColor"
3076 },
3077 "format": {
3078 "$ref": "#/$defs/gpuFormat"
3079 },
3080 "condition": {
3081 "$ref": "#/$defs/conditions"
3082 }
3083 }
3084 },
3085 {
3086 "title": "Host",
3087 "type": "object",
3088 "additionalProperties": false,
3089 "properties": {
3090 "type": {
3091 "const": "host",
3092 "description": "Print your computer's product name"
3093 },
3094 "key": {
3095 "$ref": "#/$defs/key"
3096 },
3097 "keyColor": {
3098 "$ref": "#/$defs/keyColor"
3099 },
3100 "keyIcon": {
3101 "$ref": "#/$defs/keyIcon"
3102 },
3103 "keyWidth": {
3104 "$ref": "#/$defs/keyWidth"
3105 },
3106 "outputColor": {
3107 "$ref": "#/$defs/outputColor"
3108 },
3109 "format": {
3110 "$ref": "#/$defs/hostFormat"
3111 },
3112 "condition": {
3113 "$ref": "#/$defs/conditions"
3114 }
3115 }
3116 },
3117 {
3118 "title": "Icons",
3119 "type": "object",
3120 "additionalProperties": false,
3121 "properties": {
3122 "type": {
3123 "const": "icons",
3124 "description": "Print icon style name"
3125 },
3126 "key": {
3127 "$ref": "#/$defs/key"
3128 },
3129 "keyColor": {
3130 "$ref": "#/$defs/keyColor"
3131 },
3132 "keyIcon": {
3133 "$ref": "#/$defs/keyIcon"
3134 },
3135 "keyWidth": {
3136 "$ref": "#/$defs/keyWidth"
3137 },
3138 "outputColor": {
3139 "$ref": "#/$defs/outputColor"
3140 },
3141 "format": {
3142 "$ref": "#/$defs/iconsFormat"
3143 },
3144 "condition": {
3145 "$ref": "#/$defs/conditions"
3146 }
3147 }
3148 },
3149 {
3150 "title": "Init System",
3151 "type": "object",
3152 "additionalProperties": false,
3153 "properties": {
3154 "type": {
3155 "const": "initsystem",
3156 "description": "Print init system (pid 1) name and version"
3157 },
3158 "key": {
3159 "$ref": "#/$defs/key"
3160 },
3161 "keyColor": {
3162 "$ref": "#/$defs/keyColor"
3163 },
3164 "keyIcon": {
3165 "$ref": "#/$defs/keyIcon"
3166 },
3167 "keyWidth": {
3168 "$ref": "#/$defs/keyWidth"
3169 },
3170 "outputColor": {
3171 "$ref": "#/$defs/outputColor"
3172 },
3173 "format": {
3174 "$ref": "#/$defs/initsystemFormat"
3175 },
3176 "condition": {
3177 "$ref": "#/$defs/conditions"
3178 }
3179 }
3180 },
3181 {
3182 "title": "Kernel",
3183 "type": "object",
3184 "additionalProperties": false,
3185 "properties": {
3186 "type": {
3187 "const": "kernel",
3188 "description": "Print system kernel version"
3189 },
3190 "key": {
3191 "$ref": "#/$defs/key"
3192 },
3193 "keyColor": {
3194 "$ref": "#/$defs/keyColor"
3195 },
3196 "keyIcon": {
3197 "$ref": "#/$defs/keyIcon"
3198 },
3199 "keyWidth": {
3200 "$ref": "#/$defs/keyWidth"
3201 },
3202 "outputColor": {
3203 "$ref": "#/$defs/outputColor"
3204 },
3205 "format": {
3206 "$ref": "#/$defs/kernelFormat"
3207 },
3208 "condition": {
3209 "$ref": "#/$defs/conditions"
3210 }
3211 }
3212 },
3213 {
3214 "title": "Keyboard",
3215 "type": "object",
3216 "additionalProperties": false,
3217 "properties": {
3218 "type": {
3219 "const": "keyboard",
3220 "description": "List connected keyboards"
3221 },
3222 "ignores": {
3223 "type": "array",
3224 "description": "An array of case-insensitive device name prefixes to ignore",
3225 "items": {
3226 "type": "string"
3227 },
3228 "minItems": 1,
3229 "uniqueItems": true
3230 },
3231 "key": {
3232 "$ref": "#/$defs/key"
3233 },
3234 "keyColor": {
3235 "$ref": "#/$defs/keyColor"
3236 },
3237 "keyIcon": {
3238 "$ref": "#/$defs/keyIcon"
3239 },
3240 "keyWidth": {
3241 "$ref": "#/$defs/keyWidth"
3242 },
3243 "outputColor": {
3244 "$ref": "#/$defs/outputColor"
3245 },
3246 "format": {
3247 "$ref": "#/$defs/keyboardFormat"
3248 },
3249 "condition": {
3250 "$ref": "#/$defs/conditions"
3251 }
3252 }
3253 },
3254 {
3255 "title": "Login Manager",
3256 "type": "object",
3257 "additionalProperties": false,
3258 "properties": {
3259 "type": {
3260 "const": "lm",
3261 "description": "Print login manager (desktop manager) name and version"
3262 },
3263 "key": {
3264 "$ref": "#/$defs/key"
3265 },
3266 "keyColor": {
3267 "$ref": "#/$defs/keyColor"
3268 },
3269 "keyIcon": {
3270 "$ref": "#/$defs/keyIcon"
3271 },
3272 "keyWidth": {
3273 "$ref": "#/$defs/keyWidth"
3274 },
3275 "outputColor": {
3276 "$ref": "#/$defs/outputColor"
3277 },
3278 "format": {
3279 "$ref": "#/$defs/lmFormat"
3280 },
3281 "condition": {
3282 "$ref": "#/$defs/conditions"
3283 }
3284 }
3285 },
3286 {
3287 "title": "Local IP",
3288 "type": "object",
3289 "additionalProperties": false,
3290 "properties": {
3291 "type": {
3292 "description": "List local IP addresses (IPv4 or IPv6), MAC addresses, etc.",
3293 "const": "localip"
3294 },
3295 "showIpv4": {
3296 "description": "Show IPv4 addresses",
3297 "type": "boolean",
3298 "default": true
3299 },
3300 "showIpv6": {
3301 "description": "Show IPv6 addresses",
3302 "oneOf": [
3303 {
3304 "const": true,
3305 "description": "Show the most useful IPv6 addresses"
3306 },
3307 {
3308 "const": false,
3309 "description": "Do not show IPv6 addresses"
3310 },
3311 {
3312 "const": "gua",
3313 "description": "Show only global unicast IPv6 addresses (2000::/3)"
3314 },
3315 {
3316 "const": "ula",
3317 "description": "Show only unique local IPv6 addresses (fc00::/7)"
3318 },
3319 {
3320 "const": "lla",
3321 "description": "Show only link-local IPv6 addresses (fe80::/10)"
3322 },
3323 {
3324 "const": "unknown",
3325 "description": "Show only IPv6 addresses that are not gua, ula or lla"
3326 }
3327 ],
3328 "default": false
3329 },
3330 "showSpeed": {
3331 "description": "Show Ethernet RX speed",
3332 "type": "boolean",
3333 "default": false
3334 },
3335 "showMtu": {
3336 "description": "Show MTU",
3337 "type": "boolean",
3338 "default": false
3339 },
3340 "showMac": {
3341 "description": "Show MAC addresses",
3342 "type": "boolean",
3343 "default": false
3344 },
3345 "showLoop": {
3346 "description": "Show loop back addresses (127.0.0.1)",
3347 "type": "boolean",
3348 "default": false
3349 },
3350 "showPrefixLen": {
3351 "description": "Show network prefix length (/N)",
3352 "type": "boolean",
3353 "default": true
3354 },
3355 "showAllIps": {
3356 "description": "Show all IPs bound to the same interface\nBy default, only the first detected IP is shown",
3357 "type": "boolean",
3358 "default": false
3359 },
3360 "showFlags": {
3361 "description": "Show the interface's flags",
3362 "type": "boolean",
3363 "default": false
3364 },
3365 "compact": {
3366 "description": "Show all IPs in one line",
3367 "type": "boolean",
3368 "default": false
3369 },
3370 "namePrefix": {
3371 "description": "Show IPs with given name prefix only",
3372 "type": "string"
3373 },
3374 "defaultRouteOnly": {
3375 "description": "Show only IPs used for the default route\nDoes not work on Android",
3376 "type": "boolean",
3377 "default": true
3378 },
3379 "key": {
3380 "$ref": "#/$defs/key"
3381 },
3382 "keyColor": {
3383 "$ref": "#/$defs/keyColor"
3384 },
3385 "keyIcon": {
3386 "$ref": "#/$defs/keyIcon"
3387 },
3388 "keyWidth": {
3389 "$ref": "#/$defs/keyWidth"
3390 },
3391 "outputColor": {
3392 "$ref": "#/$defs/outputColor"
3393 },
3394 "format": {
3395 "$ref": "#/$defs/localipFormat"
3396 },
3397 "condition": {
3398 "$ref": "#/$defs/conditions"
3399 }
3400 }
3401 },
3402 {
3403 "title": "Loadavg",
3404 "type": "object",
3405 "additionalProperties": false,
3406 "properties": {
3407 "type": {
3408 "const": "loadavg",
3409 "description": "Print system load averages"
3410 },
3411 "ndigits": {
3412 "type": "integer",
3413 "description": "Set the number of digits to keep after the decimal point",
3414 "minimum": 0,
3415 "maximum": 9,
3416 "default": 2
3417 },
3418 "compact": {
3419 "type": "boolean",
3420 "description": "Show values in one line",
3421 "default": true
3422 },
3423 "percent": {
3424 "$ref": "#/$defs/percent"
3425 },
3426 "key": {
3427 "$ref": "#/$defs/key"
3428 },
3429 "keyColor": {
3430 "$ref": "#/$defs/keyColor"
3431 },
3432 "keyIcon": {
3433 "$ref": "#/$defs/keyIcon"
3434 },
3435 "keyWidth": {
3436 "$ref": "#/$defs/keyWidth"
3437 },
3438 "outputColor": {
3439 "$ref": "#/$defs/outputColor"
3440 },
3441 "format": {
3442 "$ref": "#/$defs/loadavgFormat"
3443 },
3444 "condition": {
3445 "$ref": "#/$defs/conditions"
3446 }
3447 }
3448 },
3449 {
3450 "title": "Locale",
3451 "type": "object",
3452 "additionalProperties": false,
3453 "properties": {
3454 "type": {
3455 "const": "locale",
3456 "description": "Print system locale name"
3457 },
3458 "key": {
3459 "$ref": "#/$defs/key"
3460 },
3461 "keyColor": {
3462 "$ref": "#/$defs/keyColor"
3463 },
3464 "keyIcon": {
3465 "$ref": "#/$defs/keyIcon"
3466 },
3467 "keyWidth": {
3468 "$ref": "#/$defs/keyWidth"
3469 },
3470 "outputColor": {
3471 "$ref": "#/$defs/outputColor"
3472 },
3473 "format": {
3474 "$ref": "#/$defs/localeFormat"
3475 },
3476 "condition": {
3477 "$ref": "#/$defs/conditions"
3478 }
3479 }
3480 },
3481 {
3482 "title": "Logo",
3483 "type": "object",
3484 "additionalProperties": false,
3485 "properties": {
3486 "type": {
3487 "const": "logo",
3488 "description": "Query built-in logo for JSON output"
3489 },
3490 "condition": {
3491 "$ref": "#/$defs/conditions"
3492 }
3493 }
3494 },
3495 {
3496 "title": "Media",
3497 "type": "object",
3498 "additionalProperties": false,
3499 "properties": {
3500 "type": {
3501 "const": "media",
3502 "description": "Print the name of the currently playing song"
3503 },
3504 "percent": {
3505 "$ref": "#/$defs/percent"
3506 },
3507 "key": {
3508 "$ref": "#/$defs/key"
3509 },
3510 "keyColor": {
3511 "$ref": "#/$defs/keyColor"
3512 },
3513 "keyIcon": {
3514 "$ref": "#/$defs/keyIcon"
3515 },
3516 "keyWidth": {
3517 "$ref": "#/$defs/keyWidth"
3518 },
3519 "outputColor": {
3520 "$ref": "#/$defs/outputColor"
3521 },
3522 "format": {
3523 "$ref": "#/$defs/mediaFormat"
3524 },
3525 "condition": {
3526 "$ref": "#/$defs/conditions"
3527 }
3528 }
3529 },
3530 {
3531 "title": "Memory",
3532 "type": "object",
3533 "additionalProperties": false,
3534 "properties": {
3535 "type": {
3536 "const": "memory",
3537 "description": "Print system memory usage information"
3538 },
3539 "percent": {
3540 "$ref": "#/$defs/percent"
3541 },
3542 "key": {
3543 "$ref": "#/$defs/key"
3544 },
3545 "keyColor": {
3546 "$ref": "#/$defs/keyColor"
3547 },
3548 "keyIcon": {
3549 "$ref": "#/$defs/keyIcon"
3550 },
3551 "keyWidth": {
3552 "$ref": "#/$defs/keyWidth"
3553 },
3554 "outputColor": {
3555 "$ref": "#/$defs/outputColor"
3556 },
3557 "format": {
3558 "$ref": "#/$defs/memoryFormat"
3559 },
3560 "condition": {
3561 "$ref": "#/$defs/conditions"
3562 }
3563 }
3564 },
3565 {
3566 "title": "Mouse",
3567 "type": "object",
3568 "additionalProperties": false,
3569 "properties": {
3570 "type": {
3571 "const": "mouse",
3572 "description": "List connected mice"
3573 },
3574 "ignores": {
3575 "type": "array",
3576 "description": "An array of case-insensitive device name prefixes to ignore",
3577 "items": {
3578 "type": "string"
3579 },
3580 "minItems": 1,
3581 "uniqueItems": true
3582 },
3583 "key": {
3584 "$ref": "#/$defs/key"
3585 },
3586 "keyColor": {
3587 "$ref": "#/$defs/keyColor"
3588 },
3589 "keyIcon": {
3590 "$ref": "#/$defs/keyIcon"
3591 },
3592 "keyWidth": {
3593 "$ref": "#/$defs/keyWidth"
3594 },
3595 "outputColor": {
3596 "$ref": "#/$defs/outputColor"
3597 },
3598 "format": {
3599 "$ref": "#/$defs/mouseFormat"
3600 },
3601 "condition": {
3602 "$ref": "#/$defs/conditions"
3603 }
3604 }
3605 },
3606 {
3607 "title": "Monitor",
3608 "type": "object",
3609 "additionalProperties": false,
3610 "properties": {
3611 "type": {
3612 "const": "monitor",
3613 "description": "Same as Display module, but with a different default output format"
3614 },
3615 "key": {
3616 "$ref": "#/$defs/key"
3617 },
3618 "keyColor": {
3619 "$ref": "#/$defs/keyColor"
3620 },
3621 "keyIcon": {
3622 "$ref": "#/$defs/keyIcon"
3623 },
3624 "keyWidth": {
3625 "$ref": "#/$defs/keyWidth"
3626 },
3627 "outputColor": {
3628 "$ref": "#/$defs/outputColor"
3629 },
3630 "format": {
3631 "$ref": "#/$defs/monitorFormat"
3632 },
3633 "condition": {
3634 "$ref": "#/$defs/conditions"
3635 }
3636 }
3637 },
3638 {
3639 "title": "NetIO",
3640 "type": "object",
3641 "additionalProperties": false,
3642 "properties": {
3643 "type": {
3644 "description": "Print network I/O throughput",
3645 "const": "netio"
3646 },
3647 "namePrefix": {
3648 "description": "Show only interfaces whose names start with this prefix",
3649 "type": "string"
3650 },
3651 "defaultRouteOnly": {
3652 "description": "Show only interfaces used for the default route\nDoes not work on Android",
3653 "type": "boolean",
3654 "default": true
3655 },
3656 "detectTotal": {
3657 "description": "Detect total bytes instead of current rate",
3658 "type": "boolean",
3659 "default": false
3660 },
3661 "waitTime": {
3662 "type": "integer",
3663 "description": "Wait time (in ms) used to measure the I/O rate (calculated in bytes/sec).\nAvoid setting this too low, as the kernel requires time to accurately update counters.\nIgnored if 'detectTotal' is true.",
3664 "default": 250,
3665 "minimum": 1
3666 },
3667 "key": {
3668 "$ref": "#/$defs/key"
3669 },
3670 "keyColor": {
3671 "$ref": "#/$defs/keyColor"
3672 },
3673 "keyIcon": {
3674 "$ref": "#/$defs/keyIcon"
3675 },
3676 "keyWidth": {
3677 "$ref": "#/$defs/keyWidth"
3678 },
3679 "outputColor": {
3680 "$ref": "#/$defs/outputColor"
3681 },
3682 "format": {
3683 "$ref": "#/$defs/netioFormat"
3684 },
3685 "condition": {
3686 "$ref": "#/$defs/conditions"
3687 }
3688 }
3689 },
3690 {
3691 "title": "OpenCL",
3692 "type": "object",
3693 "additionalProperties": false,
3694 "properties": {
3695 "type": {
3696 "const": "opencl",
3697 "description": "Print the highest OpenCL version supported by the GPU"
3698 },
3699 "key": {
3700 "$ref": "#/$defs/key"
3701 },
3702 "keyColor": {
3703 "$ref": "#/$defs/keyColor"
3704 },
3705 "keyIcon": {
3706 "$ref": "#/$defs/keyIcon"
3707 },
3708 "keyWidth": {
3709 "$ref": "#/$defs/keyWidth"
3710 },
3711 "outputColor": {
3712 "$ref": "#/$defs/outputColor"
3713 },
3714 "format": {
3715 "$ref": "#/$defs/openclFormat"
3716 },
3717 "condition": {
3718 "$ref": "#/$defs/conditions"
3719 }
3720 }
3721 },
3722 {
3723 "title": "OpenGL",
3724 "type": "object",
3725 "additionalProperties": false,
3726 "properties": {
3727 "type": {
3728 "description": "Print the highest OpenGL version supported by the GPU",
3729 "const": "opengl"
3730 },
3731 "library": {
3732 "description": "Set the OpenGL context creation library to use",
3733 "oneOf": [
3734 {
3735 "const": "auto",
3736 "description": "Prefer EGL on *nix; prefer platform-specific implementation on others"
3737 },
3738 {
3739 "const": "egl",
3740 "description": "Use EGL, which works on TTY"
3741 },
3742 {
3743 "const": "glx",
3744 "description": "Use GLX, requires X session (*nix only)"
3745 }
3746 ],
3747 "default": "auto"
3748 },
3749 "key": {
3750 "$ref": "#/$defs/key"
3751 },
3752 "keyColor": {
3753 "$ref": "#/$defs/keyColor"
3754 },
3755 "keyIcon": {
3756 "$ref": "#/$defs/keyIcon"
3757 },
3758 "keyWidth": {
3759 "$ref": "#/$defs/keyWidth"
3760 },
3761 "outputColor": {
3762 "$ref": "#/$defs/outputColor"
3763 },
3764 "format": {
3765 "$ref": "#/$defs/openglFormat"
3766 },
3767 "condition": {
3768 "$ref": "#/$defs/conditions"
3769 }
3770 }
3771 },
3772 {
3773 "title": "Operating System",
3774 "type": "object",
3775 "additionalProperties": false,
3776 "properties": {
3777 "type": {
3778 "const": "os",
3779 "description": "Print the OS or Linux distribution name and version"
3780 },
3781 "key": {
3782 "$ref": "#/$defs/key"
3783 },
3784 "keyColor": {
3785 "$ref": "#/$defs/keyColor"
3786 },
3787 "keyIcon": {
3788 "$ref": "#/$defs/keyIcon"
3789 },
3790 "keyWidth": {
3791 "$ref": "#/$defs/keyWidth"
3792 },
3793 "outputColor": {
3794 "$ref": "#/$defs/outputColor"
3795 },
3796 "format": {
3797 "$ref": "#/$defs/osFormat"
3798 },
3799 "condition": {
3800 "$ref": "#/$defs/conditions"
3801 }
3802 }
3803 },
3804 {
3805 "title": "Packages",
3806 "type": "object",
3807 "additionalProperties": false,
3808 "properties": {
3809 "type": {
3810 "const": "packages",
3811 "description": "List installed package managers and count of installed packages"
3812 },
3813 "disabled": {
3814 "oneOf": [
3815 {
3816 "description": "Package managers to disable during detection\nWarning: Some detection methods can be very slow.",
3817 "type": "array",
3818 "items": {
3819 "type": "string",
3820 "enum": [
3821 "am",
3822 "apk",
3823 "appimage",
3824 "brew",
3825 "cards",
3826 "choco",
3827 "crux",
3828 "dpkg",
3829 "emerge",
3830 "eopkg",
3831 "flatpak",
3832 "guix",
3833 "hpkg",
3834 "installrelease",
3835 "kiss",
3836 "linglong",
3837 "lpkg",
3838 "lpkgbuild",
3839 "macports",
3840 "moss",
3841 "mport",
3842 "nix",
3843 "opkg",
3844 "pacman",
3845 "pacstall",
3846 "paludis",
3847 "pisi",
3848 "pkg",
3849 "pkgsrc",
3850 "pkgtool",
3851 "porg",
3852 "rpm",
3853 "rum",
3854 "scoop",
3855 "snap",
3856 "soar",
3857 "sorcery",
3858 "winget",
3859 "xbps"
3860 ],
3861 "uniqueItems": true
3862 }
3863 },
3864 {
3865 "description": "Enable all package managers",
3866 "type": "null"
3867 }
3868 ]
3869 },
3870 "combined": {
3871 "description": "Whether to combine related package managers into single counts (e.g., nix-system + nix-user = nix)",
3872 "type": "boolean",
3873 "default": false
3874 },
3875 "key": {
3876 "$ref": "#/$defs/key"
3877 },
3878 "keyColor": {
3879 "$ref": "#/$defs/keyColor"
3880 },
3881 "keyIcon": {
3882 "$ref": "#/$defs/keyIcon"
3883 },
3884 "keyWidth": {
3885 "$ref": "#/$defs/keyWidth"
3886 },
3887 "outputColor": {
3888 "$ref": "#/$defs/outputColor"
3889 },
3890 "format": {
3891 "$ref": "#/$defs/packagesFormat"
3892 },
3893 "condition": {
3894 "$ref": "#/$defs/conditions"
3895 }
3896 }
3897 },
3898 {
3899 "title": "Physical Disk",
3900 "type": "object",
3901 "additionalProperties": false,
3902 "properties": {
3903 "type": {
3904 "description": "Print physical disk information",
3905 "const": "physicaldisk"
3906 },
3907 "namePrefix": {
3908 "description": "Show disks with given name prefix only",
3909 "type": "string"
3910 },
3911 "hideVirtual": {
3912 "description": "Hide virtual disks (e.g. loop, RAM or file baked disks)",
3913 "type": "boolean",
3914 "default": false
3915 },
3916 "hideUnused": {
3917 "description": "Hide disks with `size == 0` (likely unused/unconnected)",
3918 "type": "boolean",
3919 "default": true
3920 },
3921 "temp": {
3922 "$ref": "#/$defs/temperature"
3923 },
3924 "key": {
3925 "$ref": "#/$defs/key"
3926 },
3927 "keyColor": {
3928 "$ref": "#/$defs/keyColor"
3929 },
3930 "keyIcon": {
3931 "$ref": "#/$defs/keyIcon"
3932 },
3933 "keyWidth": {
3934 "$ref": "#/$defs/keyWidth"
3935 },
3936 "outputColor": {
3937 "$ref": "#/$defs/outputColor"
3938 },
3939 "format": {
3940 "$ref": "#/$defs/physicaldiskFormat"
3941 },
3942 "condition": {
3943 "$ref": "#/$defs/conditions"
3944 }
3945 }
3946 },
3947 {
3948 "title": "Physical Memory",
3949 "type": "object",
3950 "additionalProperties": false,
3951 "properties": {
3952 "type": {
3953 "const": "physicalmemory",
3954 "description": "Print system physical memory devices"
3955 },
3956 "showEmptySlots": {
3957 "description": "Whether to show uninstalled memory slots",
3958 "type": "boolean",
3959 "default": false
3960 },
3961 "key": {
3962 "$ref": "#/$defs/key"
3963 },
3964 "keyColor": {
3965 "$ref": "#/$defs/keyColor"
3966 },
3967 "keyIcon": {
3968 "$ref": "#/$defs/keyIcon"
3969 },
3970 "keyWidth": {
3971 "$ref": "#/$defs/keyWidth"
3972 },
3973 "outputColor": {
3974 "$ref": "#/$defs/outputColor"
3975 },
3976 "format": {
3977 "$ref": "#/$defs/physicalmemoryFormat"
3978 },
3979 "condition": {
3980 "$ref": "#/$defs/conditions"
3981 }
3982 }
3983 },
3984 {
3985 "title": "Player",
3986 "type": "object",
3987 "additionalProperties": false,
3988 "properties": {
3989 "type": {
3990 "const": "player",
3991 "description": "Print the music player name that is currently active"
3992 },
3993 "key": {
3994 "$ref": "#/$defs/key"
3995 },
3996 "keyColor": {
3997 "$ref": "#/$defs/keyColor"
3998 },
3999 "keyIcon": {
4000 "$ref": "#/$defs/keyIcon"
4001 },
4002 "keyWidth": {
4003 "$ref": "#/$defs/keyWidth"
4004 },
4005 "outputColor": {
4006 "$ref": "#/$defs/outputColor"
4007 },
4008 "format": {
4009 "$ref": "#/$defs/playerFormat"
4010 },
4011 "condition": {
4012 "$ref": "#/$defs/conditions"
4013 }
4014 }
4015 },
4016 {
4017 "title": "Power Adapter",
4018 "type": "object",
4019 "additionalProperties": false,
4020 "properties": {
4021 "type": {
4022 "const": "poweradapter",
4023 "description": "Print power adapter name and charging watts"
4024 },
4025 "key": {
4026 "$ref": "#/$defs/key"
4027 },
4028 "keyColor": {
4029 "$ref": "#/$defs/keyColor"
4030 },
4031 "keyIcon": {
4032 "$ref": "#/$defs/keyIcon"
4033 },
4034 "keyWidth": {
4035 "$ref": "#/$defs/keyWidth"
4036 },
4037 "outputColor": {
4038 "$ref": "#/$defs/outputColor"
4039 },
4040 "format": {
4041 "$ref": "#/$defs/poweradapterFormat"
4042 },
4043 "condition": {
4044 "$ref": "#/$defs/conditions"
4045 }
4046 }
4047 },
4048 {
4049 "title": "Processes",
4050 "type": "object",
4051 "additionalProperties": false,
4052 "properties": {
4053 "type": {
4054 "const": "processes",
4055 "description": "Print the number of running processes and threads"
4056 },
4057 "countKprocs": {
4058 "description": "Whether to take kernel processes and threads into account",
4059 "type": "boolean",
4060 "default": false
4061 },
4062 "key": {
4063 "$ref": "#/$defs/key"
4064 },
4065 "keyColor": {
4066 "$ref": "#/$defs/keyColor"
4067 },
4068 "keyIcon": {
4069 "$ref": "#/$defs/keyIcon"
4070 },
4071 "keyWidth": {
4072 "$ref": "#/$defs/keyWidth"
4073 },
4074 "outputColor": {
4075 "$ref": "#/$defs/outputColor"
4076 },
4077 "format": {
4078 "$ref": "#/$defs/processesFormat"
4079 },
4080 "condition": {
4081 "$ref": "#/$defs/conditions"
4082 }
4083 }
4084 },
4085 {
4086 "title": "Public IP",
4087 "type": "object",
4088 "additionalProperties": false,
4089 "properties": {
4090 "type": {
4091 "description": "Print your public IP address and related information",
4092 "const": "publicip"
4093 },
4094 "url": {
4095 "description": "URL of the public IP detection server to use. Only HTTP is supported\nIf empty, `http://ipinfo.io/json` is requested (`http://v6.ipinfo.io/json` when `ipv6` is set), with TCP Fast Open enabled. A non-empty URL disables both and makes `ipv6` have no effect",
4096 "type": "string",
4097 "format": "url"
4098 },
4099 "timeout": {
4100 "description": "Time in milliseconds to wait for the public IP server to respond\nSet to 0 to disable the timeout",
4101 "type": "integer",
4102 "minimum": 0,
4103 "default": 0
4104 },
4105 "ipv6": {
4106 "description": "Whether to use IPv6 for the public IP detection server",
4107 "type": "boolean",
4108 "default": false
4109 },
4110 "key": {
4111 "$ref": "#/$defs/key"
4112 },
4113 "keyColor": {
4114 "$ref": "#/$defs/keyColor"
4115 },
4116 "keyIcon": {
4117 "$ref": "#/$defs/keyIcon"
4118 },
4119 "keyWidth": {
4120 "$ref": "#/$defs/keyWidth"
4121 },
4122 "outputColor": {
4123 "$ref": "#/$defs/outputColor"
4124 },
4125 "format": {
4126 "$ref": "#/$defs/publicipFormat"
4127 },
4128 "condition": {
4129 "$ref": "#/$defs/conditions"
4130 }
4131 }
4132 },
4133 {
4134 "title": "Separator",
4135 "type": "object",
4136 "additionalProperties": false,
4137 "properties": {
4138 "type": {
4139 "description": "Print a separator line",
4140 "const": "separator"
4141 },
4142 "string": {
4143 "description": "String to print for the separator line",
4144 "type": "string",
4145 "default": "-"
4146 },
4147 "outputColor": {
4148 "description": "Color of the separator line",
4149 "$ref": "#/$defs/outputColor"
4150 },
4151 "times": {
4152 "description": "Number of times to repeat the separator string, or 0 to auto-detect",
4153 "type": "integer",
4154 "minimum": 0,
4155 "maximum": 4294967295,
4156 "default": 0
4157 },
4158 "condition": {
4159 "$ref": "#/$defs/conditions"
4160 }
4161 }
4162 },
4163 {
4164 "title": "Shell",
4165 "type": "object",
4166 "additionalProperties": false,
4167 "properties": {
4168 "type": {
4169 "const": "shell",
4170 "description": "Print the current shell name and version"
4171 },
4172 "key": {
4173 "$ref": "#/$defs/key"
4174 },
4175 "keyColor": {
4176 "$ref": "#/$defs/keyColor"
4177 },
4178 "keyIcon": {
4179 "$ref": "#/$defs/keyIcon"
4180 },
4181 "keyWidth": {
4182 "$ref": "#/$defs/keyWidth"
4183 },
4184 "outputColor": {
4185 "$ref": "#/$defs/outputColor"
4186 },
4187 "format": {
4188 "$ref": "#/$defs/shellFormat"
4189 },
4190 "condition": {
4191 "$ref": "#/$defs/conditions"
4192 }
4193 }
4194 },
4195 {
4196 "title": "Sound",
4197 "type": "object",
4198 "additionalProperties": false,
4199 "properties": {
4200 "type": {
4201 "description": "Print sound devices, volume levels, etc.",
4202 "const": "sound"
4203 },
4204 "soundType": {
4205 "description": "Which sound devices to print",
4206 "type": "string",
4207 "oneOf": [
4208 {
4209 "const": "main",
4210 "description": "Print only main sound devices"
4211 },
4212 {
4213 "const": "active",
4214 "description": "Print only active sound devices"
4215 },
4216 {
4217 "const": "all",
4218 "description": "Print all sound devices"
4219 }
4220 ],
4221 "default": "main"
4222 },
4223 "percent": {
4224 "$ref": "#/$defs/percent"
4225 },
4226 "key": {
4227 "$ref": "#/$defs/key"
4228 },
4229 "keyColor": {
4230 "$ref": "#/$defs/keyColor"
4231 },
4232 "keyIcon": {
4233 "$ref": "#/$defs/keyIcon"
4234 },
4235 "keyWidth": {
4236 "$ref": "#/$defs/keyWidth"
4237 },
4238 "outputColor": {
4239 "$ref": "#/$defs/outputColor"
4240 },
4241 "format": {
4242 "$ref": "#/$defs/soundFormat"
4243 },
4244 "condition": {
4245 "$ref": "#/$defs/conditions"
4246 }
4247 }
4248 },
4249 {
4250 "title": "Swap",
4251 "type": "object",
4252 "additionalProperties": false,
4253 "properties": {
4254 "type": {
4255 "const": "swap",
4256 "description": "Print swap (paging file) space usage"
4257 },
4258 "separate": {
4259 "type": "boolean",
4260 "description": "Whether to report individual swap devices on separate lines instead of showing a summary",
4261 "default": false
4262 },
4263 "percent": {
4264 "$ref": "#/$defs/percent"
4265 },
4266 "key": {
4267 "$ref": "#/$defs/key"
4268 },
4269 "keyColor": {
4270 "$ref": "#/$defs/keyColor"
4271 },
4272 "keyIcon": {
4273 "$ref": "#/$defs/keyIcon"
4274 },
4275 "keyWidth": {
4276 "$ref": "#/$defs/keyWidth"
4277 },
4278 "outputColor": {
4279 "$ref": "#/$defs/outputColor"
4280 },
4281 "format": {
4282 "$ref": "#/$defs/swapFormat"
4283 },
4284 "condition": {
4285 "$ref": "#/$defs/conditions"
4286 }
4287 }
4288 },
4289 {
4290 "title": "Terminal",
4291 "type": "object",
4292 "additionalProperties": false,
4293 "properties": {
4294 "type": {
4295 "const": "terminal",
4296 "description": "Print the current terminal name and version"
4297 },
4298 "key": {
4299 "$ref": "#/$defs/key"
4300 },
4301 "keyColor": {
4302 "$ref": "#/$defs/keyColor"
4303 },
4304 "keyIcon": {
4305 "$ref": "#/$defs/keyIcon"
4306 },
4307 "keyWidth": {
4308 "$ref": "#/$defs/keyWidth"
4309 },
4310 "outputColor": {
4311 "$ref": "#/$defs/outputColor"
4312 },
4313 "format": {
4314 "$ref": "#/$defs/terminalFormat"
4315 },
4316 "condition": {
4317 "$ref": "#/$defs/conditions"
4318 }
4319 }
4320 },
4321 {
4322 "title": "Terminal Font",
4323 "type": "object",
4324 "additionalProperties": false,
4325 "properties": {
4326 "type": {
4327 "const": "terminalfont",
4328 "description": "Print the font name and size used by the current terminal"
4329 },
4330 "key": {
4331 "$ref": "#/$defs/key"
4332 },
4333 "keyColor": {
4334 "$ref": "#/$defs/keyColor"
4335 },
4336 "keyIcon": {
4337 "$ref": "#/$defs/keyIcon"
4338 },
4339 "keyWidth": {
4340 "$ref": "#/$defs/keyWidth"
4341 },
4342 "outputColor": {
4343 "$ref": "#/$defs/outputColor"
4344 },
4345 "format": {
4346 "$ref": "#/$defs/terminalfontFormat"
4347 },
4348 "condition": {
4349 "$ref": "#/$defs/conditions"
4350 }
4351 }
4352 },
4353 {
4354 "title": "Terminal Size",
4355 "type": "object",
4356 "additionalProperties": false,
4357 "properties": {
4358 "type": {
4359 "const": "terminalsize",
4360 "description": "Print the current terminal size"
4361 },
4362 "key": {
4363 "$ref": "#/$defs/key"
4364 },
4365 "keyColor": {
4366 "$ref": "#/$defs/keyColor"
4367 },
4368 "keyIcon": {
4369 "$ref": "#/$defs/keyIcon"
4370 },
4371 "keyWidth": {
4372 "$ref": "#/$defs/keyWidth"
4373 },
4374 "outputColor": {
4375 "$ref": "#/$defs/outputColor"
4376 },
4377 "format": {
4378 "$ref": "#/$defs/terminalsizeFormat"
4379 },
4380 "condition": {
4381 "$ref": "#/$defs/conditions"
4382 }
4383 }
4384 },
4385 {
4386 "title": "Terminal Theme",
4387 "type": "object",
4388 "additionalProperties": false,
4389 "properties": {
4390 "type": {
4391 "const": "terminaltheme",
4392 "description": "Print the current terminal theme (foreground and background colors)"
4393 },
4394 "key": {
4395 "$ref": "#/$defs/key"
4396 },
4397 "keyColor": {
4398 "$ref": "#/$defs/keyColor"
4399 },
4400 "keyIcon": {
4401 "$ref": "#/$defs/keyIcon"
4402 },
4403 "keyWidth": {
4404 "$ref": "#/$defs/keyWidth"
4405 },
4406 "outputColor": {
4407 "$ref": "#/$defs/outputColor"
4408 },
4409 "format": {
4410 "$ref": "#/$defs/terminalthemeFormat"
4411 },
4412 "condition": {
4413 "$ref": "#/$defs/conditions"
4414 }
4415 }
4416 },
4417 {
4418 "title": "Theme",
4419 "type": "object",
4420 "additionalProperties": false,
4421 "properties": {
4422 "type": {
4423 "const": "theme",
4424 "description": "Print the current desktop environment theme"
4425 },
4426 "key": {
4427 "$ref": "#/$defs/key"
4428 },
4429 "keyColor": {
4430 "$ref": "#/$defs/keyColor"
4431 },
4432 "keyIcon": {
4433 "$ref": "#/$defs/keyIcon"
4434 },
4435 "keyWidth": {
4436 "$ref": "#/$defs/keyWidth"
4437 },
4438 "outputColor": {
4439 "$ref": "#/$defs/outputColor"
4440 },
4441 "format": {
4442 "$ref": "#/$defs/themeFormat"
4443 },
4444 "condition": {
4445 "$ref": "#/$defs/conditions"
4446 }
4447 }
4448 },
4449 {
4450 "title": "Title",
4451 "type": "object",
4452 "additionalProperties": false,
4453 "properties": {
4454 "type": {
4455 "description": "Print the title, including your username and hostname",
4456 "const": "title"
4457 },
4458 "fqdn": {
4459 "type": "boolean",
4460 "description": "Whether to use the fully qualified domain name in the title",
4461 "default": false
4462 },
4463 "color": {
4464 "description": "Colors for the different parts of the title",
4465 "type": "object",
4466 "additionalProperties": false,
4467 "properties": {
4468 "user": {
4469 "description": "Color of the username (left part)",
4470 "$ref": "#/$defs/colors"
4471 },
4472 "at": {
4473 "description": "Color of the @ symbol (middle part)",
4474 "$ref": "#/$defs/colors"
4475 },
4476 "host": {
4477 "description": "Color of the hostname (right part)",
4478 "$ref": "#/$defs/colors"
4479 }
4480 }
4481 },
4482 "key": {
4483 "$ref": "#/$defs/key"
4484 },
4485 "keyColor": {
4486 "$ref": "#/$defs/keyColor"
4487 },
4488 "keyIcon": {
4489 "$ref": "#/$defs/keyIcon"
4490 },
4491 "keyWidth": {
4492 "$ref": "#/$defs/keyWidth"
4493 },
4494 "outputColor": {
4495 "$ref": "#/$defs/outputColor"
4496 },
4497 "format": {
4498 "$ref": "#/$defs/titleFormat"
4499 },
4500 "condition": {
4501 "$ref": "#/$defs/conditions"
4502 }
4503 }
4504 },
4505 {
4506 "title": "Top",
4507 "type": "object",
4508 "additionalProperties": false,
4509 "properties": {
4510 "type": {
4511 "const": "top",
4512 "description": "Print processes with the highest CPU, memory, disk I/O usage, latest start time or thread count"
4513 },
4514 "sort": {
4515 "type": "string",
4516 "description": "Sort processes by CPU, memory, disk IO usage, start time or thread count",
4517 "enum": [
4518 "cpu",
4519 "memory",
4520 "disk-read",
4521 "disk-write",
4522 "start-time",
4523 "threads"
4524 ],
4525 "default": "cpu"
4526 },
4527 "showTypes": {
4528 "description": "Specify which resource usages are detected and displayed.\nIf memory or threads is enabled is enabled alone, only a single process snapshot is taken and `waitTime` sampling wait is skipped",
4529 "default": [
4530 "cpu",
4531 "memory",
4532 "disk"
4533 ],
4534 "oneOf": [
4535 {
4536 "type": "string",
4537 "enum": [
4538 "cpu",
4539 "memory",
4540 "disk",
4541 "threads"
4542 ]
4543 },
4544 {
4545 "type": "array",
4546 "minItems": 1,
4547 "items": {
4548 "type": "string",
4549 "enum": [
4550 "cpu",
4551 "memory",
4552 "disk",
4553 "threads"
4554 ]
4555 }
4556 }
4557 ]
4558 },
4559 "processes": {
4560 "type": "integer",
4561 "description": "Number of top processes to print",
4562 "minimum": 1,
4563 "default": 5
4564 },
4565 "waitTime": {
4566 "type": "integer",
4567 "description": "Wait time between process samples, in milliseconds. Ignored when showTypes contains \"memory\" only",
4568 "minimum": 1,
4569 "default": 250
4570 },
4571 "compact": {
4572 "type": "boolean",
4573 "description": "Print all process on a single line",
4574 "default": false
4575 },
4576 "percent": {
4577 "$ref": "#/$defs/percent"
4578 },
4579 "key": {
4580 "$ref": "#/$defs/key"
4581 },
4582 "keyColor": {
4583 "$ref": "#/$defs/keyColor"
4584 },
4585 "keyIcon": {
4586 "$ref": "#/$defs/keyIcon"
4587 },
4588 "keyWidth": {
4589 "$ref": "#/$defs/keyWidth"
4590 },
4591 "outputColor": {
4592 "$ref": "#/$defs/outputColor"
4593 },
4594 "format": {
4595 "$ref": "#/$defs/topFormat"
4596 },
4597 "condition": {
4598 "$ref": "#/$defs/conditions"
4599 }
4600 }
4601 },
4602 {
4603 "title": "TPM",
4604 "type": "object",
4605 "additionalProperties": false,
4606 "properties": {
4607 "type": {
4608 "const": "tpm",
4609 "description": "Print information about the Trusted Platform Module (TPM) security device"
4610 },
4611 "key": {
4612 "$ref": "#/$defs/key"
4613 },
4614 "keyColor": {
4615 "$ref": "#/$defs/keyColor"
4616 },
4617 "keyIcon": {
4618 "$ref": "#/$defs/keyIcon"
4619 },
4620 "keyWidth": {
4621 "$ref": "#/$defs/keyWidth"
4622 },
4623 "outputColor": {
4624 "$ref": "#/$defs/outputColor"
4625 },
4626 "format": {
4627 "$ref": "#/$defs/tpmFormat"
4628 },
4629 "condition": {
4630 "$ref": "#/$defs/conditions"
4631 }
4632 }
4633 },
4634 {
4635 "title": "Users",
4636 "type": "object",
4637 "additionalProperties": false,
4638 "properties": {
4639 "type": {
4640 "const": "users",
4641 "description": "Print users who are currently logged in"
4642 },
4643 "compact": {
4644 "type": "boolean",
4645 "description": "Show all active users in one line",
4646 "default": false
4647 },
4648 "myselfOnly": {
4649 "type": "boolean",
4650 "description": "Show only the current user",
4651 "default": false
4652 },
4653 "key": {
4654 "$ref": "#/$defs/key"
4655 },
4656 "keyColor": {
4657 "$ref": "#/$defs/keyColor"
4658 },
4659 "keyIcon": {
4660 "$ref": "#/$defs/keyIcon"
4661 },
4662 "keyWidth": {
4663 "$ref": "#/$defs/keyWidth"
4664 },
4665 "outputColor": {
4666 "$ref": "#/$defs/outputColor"
4667 },
4668 "format": {
4669 "$ref": "#/$defs/usersFormat"
4670 },
4671 "condition": {
4672 "$ref": "#/$defs/conditions"
4673 }
4674 }
4675 },
4676 {
4677 "title": "Uptime",
4678 "type": "object",
4679 "additionalProperties": false,
4680 "properties": {
4681 "type": {
4682 "const": "uptime",
4683 "description": "Print how long the system has been running"
4684 },
4685 "key": {
4686 "$ref": "#/$defs/key"
4687 },
4688 "keyColor": {
4689 "$ref": "#/$defs/keyColor"
4690 },
4691 "keyIcon": {
4692 "$ref": "#/$defs/keyIcon"
4693 },
4694 "keyWidth": {
4695 "$ref": "#/$defs/keyWidth"
4696 },
4697 "outputColor": {
4698 "$ref": "#/$defs/outputColor"
4699 },
4700 "format": {
4701 "$ref": "#/$defs/uptimeFormat"
4702 },
4703 "condition": {
4704 "$ref": "#/$defs/conditions"
4705 }
4706 }
4707 },
4708 {
4709 "title": "Version",
4710 "type": "object",
4711 "additionalProperties": false,
4712 "properties": {
4713 "type": {
4714 "const": "version",
4715 "description": "Print the Fastfetch version and build information"
4716 },
4717 "key": {
4718 "$ref": "#/$defs/key"
4719 },
4720 "keyColor": {
4721 "$ref": "#/$defs/keyColor"
4722 },
4723 "keyIcon": {
4724 "$ref": "#/$defs/keyIcon"
4725 },
4726 "keyWidth": {
4727 "$ref": "#/$defs/keyWidth"
4728 },
4729 "outputColor": {
4730 "$ref": "#/$defs/outputColor"
4731 },
4732 "format": {
4733 "$ref": "#/$defs/versionFormat"
4734 },
4735 "condition": {
4736 "$ref": "#/$defs/conditions"
4737 }
4738 }
4739 },
4740 {
4741 "title": "Vulkan",
4742 "type": "object",
4743 "additionalProperties": false,
4744 "properties": {
4745 "type": {
4746 "const": "vulkan",
4747 "description": "Print the highest Vulkan version supported by the GPU"
4748 },
4749 "key": {
4750 "$ref": "#/$defs/key"
4751 },
4752 "keyColor": {
4753 "$ref": "#/$defs/keyColor"
4754 },
4755 "keyIcon": {
4756 "$ref": "#/$defs/keyIcon"
4757 },
4758 "keyWidth": {
4759 "$ref": "#/$defs/keyWidth"
4760 },
4761 "outputColor": {
4762 "$ref": "#/$defs/outputColor"
4763 },
4764 "format": {
4765 "$ref": "#/$defs/vulkanFormat"
4766 },
4767 "condition": {
4768 "$ref": "#/$defs/conditions"
4769 }
4770 }
4771 },
4772 {
4773 "title": "Wallpaper",
4774 "type": "object",
4775 "additionalProperties": false,
4776 "properties": {
4777 "type": {
4778 "const": "wallpaper",
4779 "description": "Print the file path of the current wallpaper"
4780 },
4781 "key": {
4782 "$ref": "#/$defs/key"
4783 },
4784 "keyColor": {
4785 "$ref": "#/$defs/keyColor"
4786 },
4787 "keyIcon": {
4788 "$ref": "#/$defs/keyIcon"
4789 },
4790 "keyWidth": {
4791 "$ref": "#/$defs/keyWidth"
4792 },
4793 "outputColor": {
4794 "$ref": "#/$defs/outputColor"
4795 },
4796 "format": {
4797 "$ref": "#/$defs/wallpaperFormat"
4798 },
4799 "condition": {
4800 "$ref": "#/$defs/conditions"
4801 }
4802 }
4803 },
4804 {
4805 "title": "Weather",
4806 "type": "object",
4807 "additionalProperties": false,
4808 "properties": {
4809 "type": {
4810 "description": "Print weather information",
4811 "const": "weather"
4812 },
4813 "location": {
4814 "description": "Location to display\nMust be URI-encoded (for example, spaces must be encoded as `+`)",
4815 "type": "string"
4816 },
4817 "timeout": {
4818 "description": "Time in milliseconds to wait for the weather server to respond.\n0 to disable timeout",
4819 "type": "integer",
4820 "minimum": 0,
4821 "default": 0
4822 },
4823 "outputFormat": {
4824 "description": "Weather output format to use (must be URI-encoded)",
4825 "type": "string",
4826 "default": "%t+-+%C+(%l)"
4827 },
4828 "key": {
4829 "$ref": "#/$defs/key"
4830 },
4831 "keyColor": {
4832 "$ref": "#/$defs/keyColor"
4833 },
4834 "keyIcon": {
4835 "$ref": "#/$defs/keyIcon"
4836 },
4837 "keyWidth": {
4838 "$ref": "#/$defs/keyWidth"
4839 },
4840 "outputColor": {
4841 "$ref": "#/$defs/outputColor"
4842 },
4843 "format": {
4844 "$ref": "#/$defs/weatherFormat"
4845 },
4846 "condition": {
4847 "$ref": "#/$defs/conditions"
4848 }
4849 }
4850 },
4851 {
4852 "title": "Wi-Fi",
4853 "type": "object",
4854 "additionalProperties": false,
4855 "properties": {
4856 "type": {
4857 "const": "wifi",
4858 "description": "Print connected Wi-Fi info (SSID, connection and security protocol)"
4859 },
4860 "percent": {
4861 "$ref": "#/$defs/percent"
4862 },
4863 "key": {
4864 "$ref": "#/$defs/key"
4865 },
4866 "keyColor": {
4867 "$ref": "#/$defs/keyColor"
4868 },
4869 "keyIcon": {
4870 "$ref": "#/$defs/keyIcon"
4871 },
4872 "keyWidth": {
4873 "$ref": "#/$defs/keyWidth"
4874 },
4875 "outputColor": {
4876 "$ref": "#/$defs/outputColor"
4877 },
4878 "format": {
4879 "$ref": "#/$defs/wifiFormat"
4880 },
4881 "condition": {
4882 "$ref": "#/$defs/conditions"
4883 }
4884 }
4885 },
4886 {
4887 "title": "Window Manager",
4888 "type": "object",
4889 "additionalProperties": false,
4890 "properties": {
4891 "type": {
4892 "const": "wm",
4893 "description": "Print the window manager name and version"
4894 },
4895 "detectPlugin": {
4896 "description": "Whether to detect the window manager plugin on supported platforms",
4897 "type": "boolean",
4898 "default": true
4899 },
4900 "key": {
4901 "$ref": "#/$defs/key"
4902 },
4903 "keyColor": {
4904 "$ref": "#/$defs/keyColor"
4905 },
4906 "keyIcon": {
4907 "$ref": "#/$defs/keyIcon"
4908 },
4909 "keyWidth": {
4910 "$ref": "#/$defs/keyWidth"
4911 },
4912 "outputColor": {
4913 "$ref": "#/$defs/outputColor"
4914 },
4915 "format": {
4916 "$ref": "#/$defs/wmFormat"
4917 },
4918 "condition": {
4919 "$ref": "#/$defs/conditions"
4920 }
4921 }
4922 },
4923 {
4924 "title": "WM Theme",
4925 "type": "object",
4926 "additionalProperties": false,
4927 "properties": {
4928 "type": {
4929 "const": "wmtheme",
4930 "description": "Print the current window manager theme"
4931 },
4932 "key": {
4933 "$ref": "#/$defs/key"
4934 },
4935 "keyColor": {
4936 "$ref": "#/$defs/keyColor"
4937 },
4938 "keyIcon": {
4939 "$ref": "#/$defs/keyIcon"
4940 },
4941 "keyWidth": {
4942 "$ref": "#/$defs/keyWidth"
4943 },
4944 "outputColor": {
4945 "$ref": "#/$defs/outputColor"
4946 },
4947 "format": {
4948 "$ref": "#/$defs/wmthemeFormat"
4949 },
4950 "condition": {
4951 "$ref": "#/$defs/conditions"
4952 }
4953 }
4954 },
4955 {
4956 "title": "Zpool",
4957 "type": "object",
4958 "additionalProperties": false,
4959 "properties": {
4960 "type": {
4961 "const": "zpool",
4962 "description": "Print ZFS storage pools"
4963 },
4964 "percent": {
4965 "$ref": "#/$defs/percent"
4966 },
4967 "key": {
4968 "$ref": "#/$defs/key"
4969 },
4970 "keyColor": {
4971 "$ref": "#/$defs/keyColor"
4972 },
4973 "keyIcon": {
4974 "$ref": "#/$defs/keyIcon"
4975 },
4976 "keyWidth": {
4977 "$ref": "#/$defs/keyWidth"
4978 },
4979 "outputColor": {
4980 "$ref": "#/$defs/outputColor"
4981 },
4982 "format": {
4983 "$ref": "#/$defs/zpoolFormat"
4984 },
4985 "condition": {
4986 "$ref": "#/$defs/conditions"
4987 }
4988 }
4989 }
4990 ]
4991 }
4992 ]
4993 }
4994 }
4995 }
4996}