diff options
| author | sumuel <samuel@yakubos.org> | 2026-08-17 20:44:55 +0000 |
|---|---|---|
| committer | sumuel <samuel@yakubos.org> | 2026-08-17 20:44:55 +0000 |
| commit | 76424950e373d3b04ac3dd13019151bfba3e8423 (patch) | |
| tree | 4c3cfdbda039e592b9186be3e28f8d7cfd439e8a /doc | |
Add the files
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/fastfetch.1.in | 222 | ||||
| -rw-r--r-- | doc/help.json | 956 | ||||
| -rw-r--r-- | doc/json_schema.json | 4709 |
3 files changed, 5887 insertions, 0 deletions
diff --git a/doc/fastfetch.1.in b/doc/fastfetch.1.in new file mode 100644 index 0000000..982278a --- /dev/null +++ b/doc/fastfetch.1.in @@ -0,0 +1,222 @@ +.TH FASTFETCH 1 "@FASTFETCH_BUILD_DATE@" "@CMAKE_PROJECT_NAME@ @CMAKE_PROJECT_VERSION@" + +.SH NAME +fastfetch \- a fast and customizable system information tool similar to neofetch + +.SH SYNOPSIS + +.B fastfetch +.I [options...] + +.SH DESCRIPTION + +Fastfetch is a tool for displaying system information in a visually appealing way. Written primarily in C, it focuses on performance and customizability while providing functionality similar to neofetch. +It supports Linux, Android, *BSD, macOS, Haiku, and Windows 7 or newer. + +.SH "EXIT STATUS" + +Fastfetch returns zero on successful execution. Any errors result in a non-zero exit code. + +.SH OPTIONS + +.SS "Informative Options" +.TP + +.B \-h, \-\-help \fI[command] +Display help information for all available options or for a specific command +.TP + +.B \-v, \-\-version +Display the version of fastfetch +.TP + +.B \-\-version\-raw +Display the raw version string (major.minor.patch) +.TP + +.B \-\-list\-config\-paths +List search paths for configuration files +.TP + +.B \-\-list\-data\-paths +List search paths for presets and logos +.TP + +.B \-\-list\-logos +List available logos that can be loaded with \fI\-\-logo +.TP + +.B \-\-list\-modules +List all available modules +.TP + +.B \-\-list\-presets +List available presets that can be loaded with \fI\-\-config +.TP + +.B \-\-list\-features +List the features that fastfetch was compiled with (mainly for development) +.TP + +.B \-\-print\-logos +Display all available logos +.TP + +.B \-\-print\-structure +Display the default structure +.TP + +.B \-\-format \fI<type> +Set the output format. Available options are: +.RS +.IP \(bu 2 +\fIdefault\fR: Default human-readable format +.IP \(bu 2 +\fIjson\fR: JSON format for machine processing +.RE + +.SS "Config Options" +.TP + +.B \-c, \-\-config \fI<config> +Use the specified config file or preset. Specify \fInone\fR to disable further config loading. See the CONFIGURATION section for details on config files. +.TP + +.B \-\-gen\-config \fI[path] +Generate a config file with options specified on the command line. If \fIpath\fR is not specified, it defaults to \fB~/.config/fastfetch/config.jsonc\fR. If \fIpath\fR is "\-", the configuration will be written to stdout. +.TP + +.B \-\-gen\-config\-force \fI[path] +Same as \fB\-\-gen\-config\fR, but overwrites any existing file at the destination path. +.TP + +.SS "Logo Options" +.TP + +.B \-l, \-\-logo \fI<logo> +Set the logo to display. Can be the name of a built-in logo or a path to an image file. Use \fInone\fR to disable the logo. +.TP + +.B \-\-logo\-type \fI<type> +Set the type of the logo specified with \fI\-\-logo\fR. Available types include \fIauto\fR, \fIbuiltin\fR, \fIfile\fR, \fIsixel\fR, \fIkitty\fR, and others. See \fB\-\-help logo\-type\fR for details. +.TP + +.B \-\-logo\-width \fI<width> +Set the width of the logo in characters (for image logos) +.TP + +.B \-\-logo\-height \fI<height> +Set the height of the logo in characters (for image logos) +.TP + +.B \-\-logo\-color\-[1\-9] \fI<color> +Override specific colors in the logo + +.SS "Display Options" +.TP + +.B \-s, \-\-structure \fI<structure> +Set the structure of the fetch (a colon-separated list of module names) +.TP + +.B \-\-color \fI<color> +Set the color of keys and title. See \fB\-\-help color\fR for available colors. +.TP + +.B \-\-color\-keys \fI<color> +Set the color of keys only +.TP + +.B \-\-color\-title \fI<color> +Set the color of the title only +.TP + +.B \-\-separator \fI<string> +Set the separator between key and value (default: ": ") +.TP + +.B \-\-key\-width \fI<num> +Align the width of keys to \fI<num>\fR characters +.TP + +.B \-\-show\-errors +Display errors when they occur (default: false) +.TP + +.B \-\-pipe +Disable colors (automatically detected based on whether stdout is a terminal) + +To list all available options including module-specific options, use \fB\-\-help\fR. + +.SH CONFIGURATION +.SS "Fetch Structure" +The structure defines which modules to display and in what order. It consists of module names separated by colons (:). +For example: \fBtitle:separator:os:kernel:uptime\fR + +To list all available modules, use \fB\-\-list\-modules\fR + +.SS "Config Files" + +Fastfetch uses JSONC for configuration files. JSONC is JSON with support for comments (// and /* */). Configuration files must have the .jsonc extension. + +You can generate a default config file using \fB\-\-gen\-config\fR. By default, the config file is saved at \fB~/.config/fastfetch/config.jsonc\fR. + +The configuration/preset files are searched in the following locations (in order): + +.RS +.IP 1. 4 +Relative to the current working directory +.IP 2. 4 +Relative to ~/.local/share/fastfetch/presets/ +.IP 3. 4 +Relative to /usr/share/fastfetch/presets/ +.RE + +For detailed information on logo options, module configuration, and formatting, visit: +.RS +\fIhttps://github.com/fastfetch-cli/fastfetch/wiki/Configuration\fR +.RE + +Fastfetch provides several built-in presets. List them with \fB\-\-list\-presets\fR. + +.SS "JSON Schema" +A JSON schema is available for editor intelligence when editing the configuration file. Add the following line at the beginning of your config file: +.PP +\fB"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json"\fR + +.SH EXAMPLES +.TP +Basic usage: +.RS +\fBfastfetch\fR +.RE +.TP +Use a specific logo: +.RS +\fBfastfetch \-\-logo arch\fR +.RE +.TP +Custom structure: +.RS +\fBfastfetch \-\-structure title:os:kernel:uptime:memory\fR +.RE +.TP +Generate a config file: +.RS +\fBfastfetch \-\-gen\-config\fR +.RE +.TP +Use a preset: +.RS +\fBfastfetch \-\-config neofetch\fR +.RE + +.SH "SEE ALSO" +.BR neofetch (1) + +.SH BUGS +Please report bugs to: \fIhttps://github.com/fastfetch\-cli/fastfetch/issues\fR + +.SH AUTHORS +Fastfetch is developed by a team of contributors on GitHub. +Visit \fIhttps://github.com/fastfetch-cli/fastfetch\fR for more information. diff --git a/doc/help.json b/doc/help.json new file mode 100644 index 0000000..da6732f --- /dev/null +++ b/doc/help.json @@ -0,0 +1,956 @@ +{ + "Informative": [ + { + "short": "h", + "long": "help", + "desc": "Show this help message or help for a specific command", + "arg": { + "type": "command", + "optional": true + } + }, + { + "short": "v", + "long": "version", + "desc": "Show the full Fastfetch version" + }, + { + "long": "version-raw", + "desc": "Show the raw version string (major.minor.patch)" + }, + { + "long": "list-config-paths", + "desc": "List search paths for config files" + }, + { + "long": "list-data-paths", + "desc": "List search paths for presets and logos" + }, + { + "long": "list-logos", + "desc": "List available logos" + }, + { + "long": "list-modules", + "desc": "List available modules" + }, + { + "long": "list-presets", + "desc": "List available presets", + "remark": "Presets can be loaded with \"--config <preset-name>\"" + }, + { + "long": "list-features", + "desc": "List the supported features that fastfetch was compiled with", + "remark": "Mainly for development" + }, + { + "long": "print-logos", + "desc": "Show available logos" + }, + { + "long": "print-structure", + "desc": "Show the default structure" + }, + { + "long": "format", + "desc": "Set the output format", + "arg": { + "type": "enum", + "enum": { + "default": "Default format", + "json": "JSON format" + }, + "default": "default" + } + }, + { + "long": "json", + "short": "j", + "arg": { + "type": "bool", + "default": false, + "optional": true + }, + "desc": "Enable or disable JSON output", + "remark": "Shortcut for `--format json`" + }, + { + "long": "dynamic-interval", + "desc": "Keep Fastfetch running and refresh the output every <num> milliseconds", + "remark": "Set to 0 (default) to disable this behavior; does not work with --json", + "arg": { + "type": "num", + "default": 0 + } + } + ], + "Config": [ + { + "short": "c", + "long": "config", + "desc": "Specify the config file or preset to load", + "remark": "The file is searched in the order shown by \"fastfetch --list-config-paths\". Use \"-\" to read config from stdin, or \"none\" to disable further config loading. See also https://github.com/fastfetch-cli/fastfetch/wiki/Configuration for details", + "arg": { + "type": "config" + } + }, + { + "long": "gen-config", + "desc": "Generate a minimal config file at the specified path", + "remark": "Defaults to \"~/.config/fastfetch/config.jsonc\". Prints the generated config if <path> is \"-\"", + "arg": { + "type": "path", + "optional": true + } + }, + { + "long": "gen-config-full", + "desc": "Generate a full config file with all optional settings at the specified path", + "remark": "Defaults to \"~/.config/fastfetch/config.jsonc\". Prints the generated config if <path> is \"-\"", + "arg": { + "type": "path", + "optional": true + } + }, + { + "long": "gen-config-force", + "desc": "Generate a config file at the specified path, overwriting any existing file", + "remark": "Defaults to \"~/.config/fastfetch/config.jsonc\"", + "arg": { + "type": "path", + "optional": true + } + } + ], + "General": [ + { + "long": "thread", + "desc": "Use separate threads for HTTP requests", + "arg": { + "type": "bool", + "optional": true, + "default": true + } + }, + { + "long": "wmi-timeout", + "desc": "Set the timeout (ms) for WMI queries", + "remark": "Windows only", + "arg": { + "type": "num", + "default": 5000 + } + }, + { + "long": "processing-timeout", + "desc": "Set the timeout (ms) when waiting for child processes", + "arg": { + "type": "num", + "default": 5000 + } + }, + { + "long": "ds-force-drm", + "desc": "Specify whether display detection should use DRM only", + "remark": [ + "Use this option if you encounter problems with other detection methods.", + "Linux only" + ], + "arg": { + "type": "enum", + "optional": true, + "default": "false", + "enum": { + "true": "Try `libdrm` first, then `sysfs` if libdrm fails", + "sysfs-only": "Use `/sys/class/drm` only", + "false": "Try `wayland`, then `x11`, then `drm`" + } + } + }, + { + "long": "detect-version", + "desc": "Specify whether to detect and display versions for terminal, shell, editor, and others", + "remark": "Mainly for benchmarking", + "arg": { + "type": "bool", + "optional": true, + "default": true + } + } + ], + "Logo": [ + { + "short": "l", + "long": "logo", + "desc": "Set the logo source. Use \"none\" to disable logo output", + "remark": "Use either a built-in logo name or a path to an image file. See also https://github.com/fastfetch-cli/fastfetch/wiki/Logo-options", + "arg": { + "type": "logo" + } + }, + { + "long": "logo-type", + "desc": "Set the type of logo specified by \"--logo\"", + "remark": "See also https://github.com/fastfetch-cli/fastfetch/wiki/Logo-options", + "arg": { + "type": "enum", + "enum": { + "auto": "If a value is provided, try built-in first, then file. Otherwise auto-detect the logo", + "builtin": "Built-in ASCII art", + "small": "Built-in ASCII art, small version", + "file": "Text file, printed with color code replacement", + "file-raw": "Text file, printed as is", + "data": "Text data, printed with color code replacement", + "data-raw": "Text data, printed as is", + "sixel": "Image file, rendered as sixel", + "kitty": "Image file, rendered using the Kitty graphics protocol", + "kitty-direct": "Image file, tells the terminal emulator to read image data from the specified file", + "kitty-icat": "Image file, displayed using `kitten icat`. Requires the `kitten` binary", + "iterm": "Image file, rendered using the iTerm graphics protocol", + "chafa": "Image file, printed as ASCII art using libchafa", + "raw": "Image file, printed as raw binary string", + "none": "Disable logo printing" + } + } + }, + { + "long": "logo-width", + "desc": "Set the width of the logo (in characters) if it is an image", + "remark": "Required for iTerm image protocol", + "arg": { + "type": "num" + } + }, + { + "long": "logo-height", + "desc": "Set the height of the logo (in characters) if it is an image", + "remark": "Required for iTerm image protocol", + "arg": { + "type": "num" + } + }, + { + "long": "logo-preserve-aspect-ratio", + "desc": "Specify whether the logo should fill the specified width and height as much as possible without stretching", + "remark": "Supported by iTerm image protocol only", + "arg": { + "type": "bool", + "optional": true, + "default": false + } + }, + { + "long": "logo-color-[1-9]", + "desc": "Override a color in the logo", + "remark": "See `-h color` for the list of available colors", + "arg": { + "type": "color" + }, + "pseudo": true + }, + { + "long": "logo-padding", + "desc": "Set the padding on the left and right sides of the logo", + "arg": { + "type": "num" + } + }, + { + "long": "logo-padding-left", + "desc": "Set the padding on the left side of the logo", + "arg": { + "type": "num" + } + }, + { + "long": "logo-padding-right", + "desc": "Set the padding on the right side of the logo", + "arg": { + "type": "num" + } + }, + { + "long": "logo-padding-top", + "desc": "Set the padding at the top of the logo", + "arg": { + "type": "num" + } + }, + { + "long": "logo-print-remaining", + "desc": "Specify whether to print remaining logo lines when the logo is taller than the module list", + "arg": { + "type": "bool", + "optional": true, + "default": true + } + }, + { + "long": "logo-position", + "desc": "Set the display position of the logo", + "arg": { + "type": "enum", + "enum": { + "left": "Left", + "top": "Top", + "right": "Right" + } + } + }, + { + "long": "logo-recache", + "desc": "If true, regenerate the image logo cache", + "arg": { + "type": "bool", + "optional": true, + "default": false + } + }, + { + "long": "file", + "desc": "Short for --logo-type file --logo <path>", + "remark": "See \"--help logo-type\" for more info", + "arg": { + "type": "path" + } + }, + { + "long": "file-raw", + "desc": "Short for --logo-type file-raw --logo <path>", + "remark": "See \"--help logo-type\" for more info", + "arg": { + "type": "path" + } + }, + { + "long": "data", + "desc": "Short for --logo-type data --logo <data>", + "remark": "See \"--help logo-type\" for more info", + "arg": { + "type": "data" + } + }, + { + "long": "data-raw", + "desc": "Short for --logo-type data-raw --logo <data>", + "remark": "See \"--help logo-type\" for more info", + "arg": { + "type": "data" + } + }, + { + "long": "raw", + "desc": "Short for --logo-type raw --logo <path>", + "remark": "See \"--help logo-type\" for more info", + "arg": { + "type": "path" + } + }, + { + "long": "sixel", + "desc": "Short for --logo-type sixel --logo <path>", + "remark": "See \"--help logo-type\" for more info", + "arg": { + "type": "path" + } + }, + { + "long": "kitty", + "desc": "Short for --logo-type kitty --logo <path>", + "remark": "See \"--help logo-type\" for more info", + "arg": { + "type": "path" + } + }, + { + "long": "kitty-direct", + "desc": "Short for --logo-type kitty-direct --logo <path>", + "remark": "See \"--help logo-type\" for more info", + "arg": { + "type": "path" + } + }, + { + "long": "kitty-icat", + "desc": "Short for --logo-type kitty-icat --logo <path>", + "remark": "See \"--help logo-type\" for more info", + "arg": { + "type": "path" + } + }, + { + "long": "iterm", + "desc": "Short for --logo-type iterm --logo <path>", + "remark": "See \"--help logo-type\" for more info", + "arg": { + "type": "path" + } + }, + { + "long": "chafa", + "desc": "Short for --logo-type chafa --logo <path>", + "remark": "See \"--help logo-type\" for more info", + "arg": { + "type": "path" + } + }, + { + "long": "chafa-fg-only", + "desc": "Produce character-cell output using foreground colors only", + "remark": "See the Chafa documentation for details", + "arg": { + "type": "bool", + "optional": true, + "default": false + } + }, + { + "long": "chafa-symbols", + "desc": "Specify character symbols to employ in final output", + "remark": "See the Chafa documentation for details", + "arg": { + "type": "str" + } + }, + { + "long": "chafa-canvas-mode", + "desc": "Determine how colors are used in the output", + "remark": "This value maps to the integer value of enum ChafaCanvasMode. See the Chafa documentation for details", + "arg": { + "type": "enum", + "enum": { + "TRUECOLOR": "Truecolor", + "INDEXED_256": "256 colors", + "INDEXED_240": "256 colors, but avoid using the lower 16 whose values vary between terminal environments", + "INDEXED_16": "16 colors using the aixterm ANSI extension", + "FGBG_BGFG": "Default foreground and background colors, plus inversion", + "FGBG": "Default foreground and background colors. No ANSI codes will be used", + "INDEXED_8": "8 colors, compatible with original ANSI X3.64", + "INDEXED_16_8": "16 FG colors (8 of which enabled with bold/bright) and 8 BG colors" + } + } + }, + { + "long": "chafa-color-space", + "desc": "Set the color space used for quantization", + "remark": "This value maps to the integer value of enum ChafaColorSpace. See the Chafa documentation for details", + "arg": { + "type": "enum", + "enum": { + "RGB": "RGB color space. Fast but imprecise", + "DIN99D": "DIN99d color space. Slower, but good perceptual color precision" + } + } + }, + { + "long": "chafa-dither-mode", + "desc": "Set the output dithering mode (no effect with 24-bit color)", + "remark": "This value maps to the integer value of enum ChafaDitherMode. See the Chafa documentation for details", + "arg": { + "type": "enum", + "enum": { + "NONE": "No dithering", + "ORDERED": "Ordered dithering (Bayer or similar)", + "DIFFUSION": "Error diffusion dithering (Floyd-Steinberg or similar)" + } + } + } + ], + "Display": [ + { + "short": "s", + "long": "structure", + "desc": "Set the structure of the fetch", + "remark": "Must be a colon-separated list of module keys. Use \"fastfetch --list-modules\" to see available options", + "arg": { + "type": "structure", + "default": "\"fastfetch --print-structure\"" + } + }, + { + "long": "structure-disabled", + "desc": "Disable specific modules in the structure", + "remark": "Must be a colon-separated list of keys", + "arg": { + "type": "structure" + } + }, + { + "long": "stat", + "desc": "Show execution time (ms) for individual modules", + "arg": { + "type": "bool", + "optional": true, + "default": false + } + }, + { + "long": "pipe", + "desc": "Disable colors", + "remark": "Auto-detected based on isatty(1) by default", + "arg": { + "type": "bool", + "optional": true, + "default": false + } + }, + { + "long": "color", + "desc": "Set the color of both keys and title", + "remark": [ + "Shortcut for \"--color-keys <color>\" and \"--color-title <color>\"", + "For color syntax, see <https://github.com/fastfetch-cli/fastfetch/wiki/Color-Format-Specification>" + ], + "arg": { + "type": "color" + } + }, + { + "long": "color-keys", + "desc": "Set the color of the keys", + "remark": "Doesn't affect Title, Separator, and Colors modules. See `-h color` for the list of available colors", + "arg": { + "type": "color" + } + }, + { + "long": "color-title", + "desc": "Set the color of the title", + "remark": "See `-h color` for the list of available colors", + "arg": { + "type": "color" + } + }, + { + "long": "color-output", + "desc": "Set the color of module output", + "remark": "See `-h color` for the list of available colors", + "arg": { + "type": "color" + } + }, + { + "long": "color-separator", + "desc": "Set the color of the key-value separator", + "remark": "See `-h color` for the list of available colors", + "arg": { + "type": "color" + } + }, + { + "long": "duration-abbreviation", + "desc": "Specify whether to abbreviate duration values", + "remark": "If true, output is shown as \"1h 2m\" instead of \"1 hour, 2 mins\"", + "arg": { + "type": "bool", + "optional": true, + "default": false + } + }, + { + "long": "duration-space-before-unit", + "desc": "Specify whether to put a space before the unit in duration values", + "arg": { + "type": "enum", + "enum": { + "default": "Use the default behavior of the module", + "always": "Always put a space before the unit", + "never": "Never put a space before the unit" + } + } + }, + { + "long": "key-width", + "desc": "Align the width of keys to <num> characters", + "arg": { + "type": "num" + } + }, + { + "long": "key-padding-left", + "desc": "Set the left padding of keys to <num> characters", + "arg": { + "type": "num" + } + }, + { + "long": "key-type", + "desc": "Specify whether to show an icon before string keys", + "arg": { + "type": "enum", + "enum": { + "none": "Disable keys", + "string": "Show string", + "icon": "Show icon (requires a recent Nerd Font)", + "both": "Show both icon and string (alias of `both-1`)", + "both-0": "Show both icon and string with no spaces between them", + "both-1": "Show both icon and string with a space between them", + "both-2": "Show both icon and string with 2 spaces between them", + "both-3": "Show both icon and string with 3 spaces between them", + "both-4": "Show both icon and string with 4 spaces between them" + }, + "default": "string" + } + }, + { + "long": "bright-color", + "desc": "Specify whether keys, title, and ASCII logo should be printed in bright color", + "arg": { + "type": "bool", + "optional": true, + "default": true + } + }, + { + "long": "separator", + "desc": "Set the separator between key and value", + "arg": { + "type": "str", + "default": ": " + } + }, + { + "long": "show-errors", + "desc": "Print errors when they occur", + "arg": { + "type": "bool", + "optional": true, + "default": false + } + }, + { + "long": "disable-linewrap", + "desc": "Specify whether to disable line wrap during execution", + "arg": { + "type": "bool", + "optional": true, + "default": true + } + }, + { + "long": "hide-cursor", + "desc": "Specify whether to hide the cursor during execution", + "arg": { + "type": "bool", + "optional": true, + "default": false + } + }, + { + "long": "percent-type", + "desc": "Set the percentage output style", + "remark": [ + "1 for percentage number", + "2 for multi-color bar", + "3 for both", + "6 for bar only", + "9 for colored number", + "10 for monochrome bar" + ], + "arg": { + "type": "num", + "default": 9 + } + }, + { + "long": "percent-ndigits", + "desc": "Set the number of decimal places to use when formatting percentages", + "arg": { + "type": "num", + "default": 0 + } + }, + { + "long": "percent-color-green", + "desc": "Set color used for the green state of percentage bars and numbers", + "remark": "See `-h color` for the list of available colors", + "arg": { + "type": "color", + "default": "green" + } + }, + { + "long": "percent-color-yellow", + "desc": "Set color used for the yellow state of percentage bars and numbers", + "remark": "See `-h color` for the list of available colors", + "arg": { + "type": "color", + "default": "light_yellow" + } + }, + { + "long": "percent-color-red", + "desc": "Set color used for the red state of percentage bars and numbers", + "remark": "See `-h color` for the list of available colors", + "arg": { + "type": "color", + "default": "light_red" + } + }, + { + "long": "percent-space-before-unit", + "desc": "Specify whether to put a space before the percentage symbol", + "arg": { + "type": "enum", + "enum": { + "default": "Use the default behavior of the module", + "always": "Always put a space before the unit", + "never": "Never put a space before the unit" + } + } + }, + { + "long": "percent-width", + "desc": "Specify the width of the percentage number, in characters", + "remark": "This option affects only percentage numbers, not bars", + "arg": { + "type": "num", + "default": 0 + } + }, + { + "long": "bar-char-elapsed", + "desc": "Set the character used for the elapsed part of percentage bars", + "arg": { + "type": "str", + "default": "\u25a0" + } + }, + { + "long": "bar-char-total", + "desc": "Set the character used for the total part of percentage bars", + "arg": { + "type": "str", + "default": "-" + } + }, + { + "long": "bar-border-left", + "desc": "Set the string to use at the left border of percentage bars", + "arg": { + "type": "string", + "default": "[ " + } + }, + { + "long": "bar-border-right", + "desc": "Set the string to use at the right border of percentage bars", + "arg": { + "type": "string", + "default": " ]" + } + }, + { + "long": "bar-border-left-elapsed", + "desc": "If both bar-border-left-elapsed and bar-border-right-elapsed are set, the border is used as part of the bar content", + "arg": { + "type": "string", + "default": "" + } + }, + { + "long": "bar-border-right-elapsed", + "desc": "If both bar-border-left-elapsed and bar-border-right-elapsed are set, the border is used as part of the bar content", + "arg": { + "type": "string", + "default": "" + } + }, + { + "long": "bar-color-elapsed", + "desc": "Set the color used for the elapsed part of percentage bars", + "remark": "By default, this is auto-selected by percent-color-{green,yellow,red}", + "arg": { + "type": "color", + "default": "<auto>" + } + }, + { + "long": "bar-color-total", + "desc": "Set the color used for the total part of percentage bars", + "arg": { + "type": "color", + "default": "light_white" + } + }, + { + "long": "bar-color-border", + "desc": "Set the color used for percentage bar borders", + "arg": { + "type": "color", + "default": "light_white" + } + }, + { + "long": "bar-width", + "desc": "Set the width of percentage bars in characters", + "arg": { + "type": "num", + "default": 10 + } + }, + { + "long": "no-buffer", + "desc": "Specify whether stdout buffering should be disabled", + "arg": { + "type": "bool", + "optional": true, + "default": false + } + }, + { + "long": "size-ndigits", + "desc": "Set the number of decimal places to use when formatting sizes", + "arg": { + "type": "num" + } + }, + { + "long": "size-binary-prefix", + "desc": "Set the binary prefix to use when formatting sizes", + "arg": { + "type": "enum", + "enum": { + "IEC": "1024 Bytes = 1 KiB, 1024 KiB = 1 MiB, ...", + "SI": "1000 Bytes = 1 kB, 1000 kB = 1 MB, ...", + "JEDEC": "1024 Bytes = 1 KB, 1024 KB = 1 MB, ..." + }, + "default": "IEC" + } + }, + { + "long": "size-max-prefix", + "desc": "Set the largest binary prefix to use when formatting sizes", + "arg": { + "type": "enum", + "enum": { + "B": "Bytes", + "kB": "KiB", + "MB": "MiB", + "GB": "GiB", + "TB": "TiB", + "PB": "PiB", + "EB": "EiB", + "ZB": "ZiB", + "YB": "YiB" + }, + "default": "YB" + } + }, + { + "long": "size-space-before-unit", + "desc": "Specify whether to put a space before the unit", + "arg": { + "type": "enum", + "enum": { + "default": "Use the default behavior of the module", + "always": "Always put a space before the unit", + "never": "Never put a space before the unit" + } + } + }, + { + "long": "freq-ndigits", + "desc": "Set the number of decimal places to use when printing CPU/GPU frequency in GHz", + "arg": { + "type": "num", + "default": 2 + } + }, + { + "long": "freq-space-before-unit", + "desc": "Specify whether to put a space before the unit", + "arg": { + "type": "enum", + "enum": { + "default": "Use the default behavior of the module", + "always": "Always put a space before the unit", + "never": "Never put a space before the unit" + } + } + }, + { + "long": "fraction-ndigits", + "desc": "Set the number of decimal places to use when printing fractional values", + "remark": "If negative, the number of digits will be automatically determined based on the value", + "arg": { + "type": "num", + "default": -1 + } + }, + { + "long": "fraction-trailing-zeros", + "desc": "Set when to keep trailing zeros", + "arg": { + "type": "enum", + "enum": { + "default": "Use the built-in behavior", + "always": "Always keep trailing zeros", + "never": "Never keep trailing zeros" + } + } + }, + { + "long": "temp-unit", + "desc": "Set the temperature unit", + "arg": { + "type": "enum", + "enum": { + "D": "Default", + "C": "Celsius", + "F": "Fahrenheit", + "K": "Kelvin" + }, + "default": "D" + } + }, + { + "long": "temp-ndigits", + "desc": "Set the number of decimal places to use when printing temperatures", + "arg": { + "type": "num", + "default": 2 + } + }, + { + "long": "temp-color-green", + "desc": "Set color used for the green state of temperature values", + "remark": "See `-h color` for the list of available colors", + "arg": { + "type": "color", + "default": "green" + } + }, + { + "long": "temp-color-yellow", + "desc": "Set color used for the yellow state of temperature values", + "remark": "See `-h color` for the list of available colors", + "arg": { + "type": "color", + "default": "light_yellow" + } + }, + { + "long": "temp-color-red", + "desc": "Set color used for the red state of temperature values", + "remark": "See `-h color` for the list of available colors", + "arg": { + "type": "color", + "default": "light_red" + } + }, + { + "long": "temp-space-before-unit", + "desc": "Specify whether to put a space before the unit", + "arg": { + "type": "enum", + "enum": { + "default": "Use the default behavior of the module", + "always": "Always put a space before the unit", + "never": "Never put a space before the unit" + } + } + } + ] +} diff --git a/doc/json_schema.json b/doc/json_schema.json new file mode 100644 index 0000000..2243fb6 --- /dev/null +++ b/doc/json_schema.json @@ -0,0 +1,4709 @@ +{ + "$schema": "https://json-schema.org/draft-07/schema", + "$defs": { + "colors": { + "oneOf": [ + { + "type": "string", + "$comment": "https://github.com/fastfetch-cli/fastfetch/wiki/Color-Format-Specification", + "examples": [ + "reset_", "bright_", "dim_", "italic_", "underline_", "blink_", "inverse_", "hidden_", "strike_", "light_", + "black", "red", "green", "yellow", "blue", "magenta", "cyan", "white", "default" + ] + }, + { + "type": "null", + "$comment": "Disable default coloring" + } + ] + }, + "key": { + "description": "Module key\nUse a single space (` `) to hide the key", + "type": "string", + "minLength": 1 + }, + "keyColor": { + "description": "Color of the module key. Overrides `display.color.key`", + "$ref": "#/$defs/colors" + }, + "keyWidth": { + "description": "Width of the module key. Overrides `display.keyWidth`", + "type": "integer", + "minimum": 1 + }, + "keyIcon": { + "description": "Icon to display when `display.key.type` is set to `icon`", + "type": "string" + }, + "outputColor": { + "description": "Color of the module output. Overrides `display.color.output`", + "$ref": "#/$defs/colors" + }, + "percentType": { + "description": "Percentage output style", + "oneOf": [ + { + "type": "number", + "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", + "minimum": 0, + "maximum": 255, + "default": 9 + }, + { + "type": "array", + "description": "Array of style flags", + "items": { + "enum": [ + "num", + "bar", + "hide-others", + "num-color", + "bar-monochrome" + ] + }, + "uniqueItems": true, + "default": [ + "num", + "num-color" + ] + } + ] + }, + "percent": { + "description": "Color thresholds for percentage output", + "type": "object", + "additionalProperties": false, + "properties": { + "green": { + "type": "integer", + "minimum": 0, + "maximum": 100, + "description": "Values below this threshold are shown in green" + }, + "yellow": { + "type": "integer", + "minimum": 0, + "maximum": 100, + "description": "Values between the green and yellow thresholds are shown in yellow.\nValues above the yellow threshold are shown in red" + }, + "type": { + "$ref": "#/$defs/percentType" + } + } + }, + "temperature": { + "description": "Whether to detect and display temperature, if supported", + "oneOf": [ + { + "type": "boolean", + "default": false + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "green": { + "type": "integer", + "minimum": 0, + "maximum": 100, + "description": "Values in Celsius below this threshold are shown in green" + }, + "yellow": { + "type": "integer", + "minimum": 0, + "maximum": 100, + "description": "Values in Celsius between the green and yellow thresholds are shown in yellow.\nValues above the yellow threshold are shown in red" + } + } + } + ] + }, + "systems": { + "type": "string", + "enum": [ + "Android", + "Linux", + "DragonFly", + "MidnightBSD", + "FreeBSD", + "macOS", + "Windows", + "SunOS", + "OpenBSD", + "NetBSD", + "Haiku" + ] + }, + "architectures": { + "type": "string", + "enum": [ + "x86_64", + "i386", + "ia64", + "aarch64", + "arm", + "mips", + "powerpc", + "riscv", + "s390x", + "loongarch", + "sparc", + "alpha", + "hppa", + "m68k" + ] + }, + "conditions": { + "description": "Show the module only if these conditions are met", + "type": "object", + "additionalProperties": false, + "properties": { + "system": { + "description": "System to match", + "oneOf": [ + { + "$ref": "#/$defs/systems" + }, + { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/$defs/systems" + }, + "description": "Array of systems to match" + }, + { + "type": "null", + "description": "Set to null to disable this condition" + } + ] + }, + "!system": { + "description": "System not to match", + "oneOf": [ + { + "$ref": "#/$defs/systems" + }, + { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/$defs/systems" + }, + "description": "Array of systems not to match" + }, + { + "type": "null", + "description": "Set to null to disable this condition" + } + ] + }, + "arch": { + "description": "Architecture to match", + "oneOf": [ + { + "$ref": "#/$defs/architectures" + }, + { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/$defs/architectures" + }, + "description": "Array of architectures to match" + }, + { + "type": "null", + "description": "Set to null to disable this condition" + } + ] + }, + "!arch": { + "description": "Architecture not to match", + "oneOf": [ + { + "$ref": "#/$defs/architectures" + }, + { + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/$defs/architectures" + }, + "description": "Array of architectures not to match" + }, + { + "type": "null", + "description": "Set to null to disable this condition" + } + ] + }, + "succeeded": { + "description": "Whether the module succeeded in the last run", + "oneOf": [ + { + "type": "boolean", + "description": "True to show the module only if it succeeded; false to show it only if it failed" + }, + { + "type": "null", + "description": "Set to null to disable this condition" + } + ] + } + } + }, + "spaceBeforeUnit": { + "type": "string", + "description": "Whether to insert a space before the unit", + "oneOf": [ + { + "const": "default", + "description": "Use the default behavior of the module" + }, + { + "const": "always", + "description": "Always add a space before the unit" + }, + { + "const": "never", + "description": "Never add a space before the unit" + } + ] + }, + + + "batteryFormat": { + "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)", + "type": "string" + }, + "biosFormat": { + "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", + "type": "string" + }, + "bluetoothFormat": { + "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. {battery-percentage}: Battery percentage number\n 5. {connected}: Is connected\n 6. {battery-percentage-bar}: Battery percentage bar", + "type": "string" + }, + "bluetoothradioFormat": { + "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", + "type": "string" + }, + "boardFormat": { + "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", + "type": "string" + }, + "bootmgrFormat": { + "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", + "type": "string" + }, + "brightnessFormat": { + "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", + "type": "string" + }, + "btrfsFormat": { + "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", + "type": "string" + }, + "cameraFormat": { + "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)", + "type": "string" + }, + "chassisFormat": { + "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", + "type": "string" + }, + "codecFormat": { + "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", + "type": "string" + }, + "commandFormat": { + "description": "Output format for the `Command` module. See Wiki for formatting syntax\n 1. {result}: Command result", + "type": "string" + }, + "cpuFormat": { + "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", + "type": "string" + }, + "cpucacheFormat": { + "description": "Output format for the `CPUCache` module. See Wiki for formatting syntax\n 1. {result}: Separate result\n 2. {sum}: Sum result", + "type": "string" + }, + "cpuusageFormat": { + "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)", + "type": "string" + }, + "cursorFormat": { + "description": "Output format for the `Cursor` module. See Wiki for formatting syntax\n 1. {theme}: Cursor theme\n 2. {size}: Cursor size", + "type": "string" + }, + "datetimeFormat": { + "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", + "type": "string" + }, + "deFormat": { + "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", + "type": "string" + }, + "displayFormat": { + "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", + "type": "string" + }, + "diskFormat": { + "description": "Output format for the `Disk` module. See Wiki for formatting syntax\n 1. {size-used}: Size used\n 2. {size-total}: Size total\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\n 26. {size-available}: Size available", + "type": "string" + }, + "diskioFormat": { + "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", + "type": "string" + }, + "dnsFormat": { + "description": "Output format for the `DNS` module. See Wiki for formatting syntax\n 1. {result}: DNS result", + "type": "string" + }, + "editorFormat": { + "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", + "type": "string" + }, + "fontFormat": { + "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", + "type": "string" + }, + "gamepadFormat": { + "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", + "type": "string" + }, + "gpuFormat": { + "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)", + "type": "string" + }, + "hostFormat": { + "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", + "type": "string" + }, + "iconsFormat": { + "description": "Output format for the `Icons` module. See Wiki for formatting syntax\n 1. {icons1}: Icons part 1\n 2. {icons2}: Icons part 2", + "type": "string" + }, + "initsystemFormat": { + "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", + "type": "string" + }, + "kernelFormat": { + "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. {display-version}: Display version\n 6. {page-size}: Page size", + "type": "string" + }, + "keyboardFormat": { + "description": "Output format for the `Keyboard` module. See Wiki for formatting syntax\n 1. {name}: Name\n 2. {serial}: Serial number", + "type": "string" + }, + "lmFormat": { + "description": "Output format for the `LM` module. See Wiki for formatting syntax\n 1. {service}: LM service\n 2. {type}: LM type\n 3. {version}: LM version", + "type": "string" + }, + "loadavgFormat": { + "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", + "type": "string" + }, + "localeFormat": { + "description": "Output format for the `Locale` module. See Wiki for formatting syntax\n 1. {result}: Locale code", + "type": "string" + }, + "localipFormat": { + "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", + "type": "string" + }, + "mediaFormat": { + "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", + "type": "string" + }, + "memoryFormat": { + "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)", + "type": "string" + }, + "monitorFormat": { + "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", + "type": "string" + }, + "mouseFormat": { + "description": "Output format for the `Mouse` module. See Wiki for formatting syntax\n 1. {name}: Mouse name\n 2. {serial}: Mouse serial number", + "type": "string" + }, + "netioFormat": { + "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]", + "type": "string" + }, + "openclFormat": { + "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", + "type": "string" + }, + "openglFormat": { + "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", + "type": "string" + }, + "osFormat": { + "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", + "type": "string" + }, + "packagesFormat": { + "description": "Output format for the `Packages` module. See Wiki for formatting syntax\n 1. {all}: Number of all packages\n 2. {am-system}: Number of am-system packages\n 3. {am-user}: Number of am-user (aka appman) packages\n 4. {appimage}: Number of appimage packages\n 5. {apk}: Number of apk packages\n 6. {brew}: Number of brew packages\n 7. {brew-all}: Total number of all brew packages\n 8. {brew-cask}: Number of brew-cask packages\n 9. {cards}: Number of cards packages\n 10. {choco}: Number of choco packages\n 11. {dpkg}: Number of dpkg packages\n 12. {emerge}: Number of emerge packages\n 13. {eopkg}: Number of eopkg packages\n 14. {flatpak-all}: Total number of all flatpak app packages\n 15. {flatpak-system}: Number of flatpak-system app packages\n 16. {flatpak-user}: Number of flatpak-user app packages\n 17. {guix-all}: Total number of all guix packages\n 18. {guix-home}: Number of guix-home packages\n 19. {guix-system}: Number of guix-system packages\n 20. {guix-user}: Number of guix-user packages\n 21. {hpkg-all}: Total number of all hpkg packages\n 22. {hpkg-system}: Number of hpkg-system packages\n 23. {hpkg-user}: Number of hpkg-user packages\n 24. {kiss}: Number of kiss packages\n 25. {linglong}: Number of linglong packages\n 26. {lpkg}: Number of lpkg packages\n 27. {lpkgbuild}: Number of lpkgbuild packages\n 28. {macports}: Number of macports packages\n 29. {mport}: Number of mport packages\n 30. {moss}: Number of moss packages\n 31. {nix-all}: Total number of all nix packages\n 32. {nix-default}: Number of nix-default packages\n 33. {nix-system}: Number of nix-system packages\n 34. {nix-user}: Number of nix-user packages\n 35. {opkg}: Number of opkg packages\n 36. {pacman}: Number of pacman packages\n 37. {pacman-branch}: Pacman branch on manjaro\n 38. {pacstall}: Number of pacstall packages\n 39. {paludis}: Number of paludis packages\n 40. {pisi}: Number of pisi packages\n 41. {pkg}: Number of pkg packages\n 42. {pkgsrc}: Number of pkgsrc packages\n 43. {pkgtool}: Number of pkgtool packages\n 44. {rpm}: Number of rpm packages\n 45. {scoop-global}: Number of scoop-global packages\n 46. {scoop-user}: Number of scoop-user packages\n 47. {snap}: Number of snap packages\n 48. {soar}: Number of soar packages\n 49. {sorcery}: Number of sorcery packages\n 50. {winget}: Number of winget packages\n 51. {xbps}: Number of xbps packages", + "type": "string" + }, + "physicaldiskFormat": { + "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)", + "type": "string" + }, + "physicalmemoryFormat": { + "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", + "type": "string" + }, + "playerFormat": { + "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", + "type": "string" + }, + "poweradapterFormat": { + "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}: Power adapter model\n 5. {description}: Power adapter description\n 6. {serial}: Power adapter serial number", + "type": "string" + }, + "processesFormat": { + "description": "Output format for the `Processes` module. See Wiki for formatting syntax\n 1. {result}: Process count", + "type": "string" + }, + "publicipFormat": { + "description": "Output format for the `PublicIp` module. See Wiki for formatting syntax\n 1. {ip}: Public IP address\n 2. {location}: Location", + "type": "string" + }, + "shellFormat": { + "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", + "type": "string" + }, + "soundFormat": { + "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", + "type": "string" + }, + "swapFormat": { + "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", + "type": "string" + }, + "terminalFormat": { + "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", + "type": "string" + }, + "terminalfontFormat": { + "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", + "type": "string" + }, + "terminalsizeFormat": { + "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)", + "type": "string" + }, + "terminalthemeFormat": { + "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)", + "type": "string" + }, + "titleFormat": { + "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 `~`", + "type": "string" + }, + "themeFormat": { + "description": "Output format for the `Theme` module. See Wiki for formatting syntax\n 1. {theme1}: Theme part 1\n 2. {theme2}: Theme part 2", + "type": "string" + }, + "tpmFormat": { + "description": "Output format for the `TPM` module. See Wiki for formatting syntax\n 1. {version}: TPM device version\n 2. {description}: TPM general description", + "type": "string" + }, + "uptimeFormat": { + "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", + "type": "string" + }, + "usersFormat": { + "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", + "type": "string" + }, + "versionFormat": { + "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", + "type": "string" + }, + "vulkanFormat": { + "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", + "type": "string" + }, + "wallpaperFormat": { + "description": "Output format for the `Wallpaper` module. See Wiki for formatting syntax\n 1. {file-name}: File name\n 2. {full-path}: Full path", + "type": "string" + }, + "weatherFormat": { + "description": "Output format for the `Weather` module. See Wiki for formatting syntax\n 1. {result}: Weather result", + "type": "string" + }, + "wmFormat": { + "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", + "type": "string" + }, + "wifiFormat": { + "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. {band}: Connection channel band in GHz", + "type": "string" + }, + "wmthemeFormat": { + "description": "Output format for the `WMTheme` module. See Wiki for formatting syntax\n 1. {result}: WM theme", + "type": "string" + }, + "zpoolFormat": { + "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", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false, + "title": "JSON config", + "description": "Fastfetch JSON config file. Usually located at `~/.config/fastfetch/config.jsonc`", + "properties": { + "$schema": { + "type": "string", + "description": "JSON Schema URL for validation and IDE support", + "format": "uri", + "default": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json" + }, + "logo": { + "description": "Fastfetch logo configuration\nSee also https://github.com/fastfetch-cli/fastfetch/wiki/Logo-options", + "oneOf": [ + { + "description": "Disable logo", + "type": "null", + "const": null + }, + { + "description": "Path to a logo source file or the name of a built-in ASCII art logo", + "type": "string" + }, + { + "description": "Fastfetch logo configuration", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "description": "Logo type", + "oneOf": [ + { + "const": "auto", + "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." + }, + { + "const": "builtin", + "description": "Built-in ASCII art" + }, + { + "const": "small", + "description": "Built-in ASCII art, small version (not all logos support this option)" + }, + { + "const": "file", + "description": "Text file with color code replacement" + }, + { + "const": "file-raw", + "description": "Text file, printed as is" + }, + { + "const": "data", + "description": "Text data with color code replacement" + }, + { + "const": "data-raw", + "description": "Text data, printed as is" + }, + { + "const": "command-raw", + "description": "Command that generates text data, printed as is" + }, + { + "const": "sixel", + "description": "Image file rendered as sixel" + }, + { + "const": "kitty", + "description": "Image file rendered using the Kitty graphics protocol" + }, + { + "const": "kitty-direct", + "description": "Image file. Instructs the terminal emulator to read image data directly from the specified file" + }, + { + "const": "kitty-icat", + "description": "Image file displayed using `kitten icat`. Requires the `kitten` binary to be installed" + }, + { + "const": "iterm", + "description": "Image file rendered using the iTerm image protocol" + }, + { + "const": "chafa", + "description": "Image file rendered as ASCII art using `libchafa`" + }, + { + "const": "raw", + "description": "Image file rendered as a raw binary string" + }, + { + "const": "none", + "description": "Disable logo printing" + } + ], + "default": "auto" + }, + "source": { + "type": "string", + "description": "Path to the logo source file" + }, + "color": { + "type": "object", + "additionalProperties": false, + "description": "Override colors in the logo", + "properties": { + "1": { + "description": "Color 1", + "$ref": "#/$defs/colors" + }, + "2": { + "description": "Color 2", + "$ref": "#/$defs/colors" + }, + "3": { + "description": "Color 3", + "$ref": "#/$defs/colors" + }, + "4": { + "description": "Color 4", + "$ref": "#/$defs/colors" + }, + "5": { + "description": "Color 5", + "$ref": "#/$defs/colors" + }, + "6": { + "description": "Color 6", + "$ref": "#/$defs/colors" + }, + "7": { + "description": "Color 7", + "$ref": "#/$defs/colors" + }, + "8": { + "description": "Color 8", + "$ref": "#/$defs/colors" + }, + "9": { + "description": "Color 9", + "$ref": "#/$defs/colors" + } + } + }, + "width": { + "oneOf": [ + { + "type": "null", + "description": "Auto-detect the width (default)" + }, + { + "type": "integer", + "description": "Width of the logo in characters. Required by some image protocols", + "minimum": 1 + } + ] + }, + "height": { + "oneOf": [ + { + "type": "null", + "description": "Auto-detect the height (default)" + }, + { + "type": "integer", + "description": "Height of the logo in characters. Required by some image protocols", + "minimum": 1 + } + ] + }, + "padding": { + "type": "object", + "additionalProperties": false, + "description": "Logo padding", + "properties": { + "top": { + "type": "integer", + "description": "Top padding of the logo", + "minimum": 0 + }, + "bottom": { + "type": "integer", + "description": "Bottom padding of the logo; only supported when position is `top`", + "minimum": 0 + }, + "left": { + "type": "integer", + "description": "Left padding of the logo", + "minimum": 0 + }, + "right": { + "type": "integer", + "description": "Right padding of the logo", + "minimum": 0 + } + } + }, + "printRemaining": { + "type": "boolean", + "description": "Whether to print any remaining logo lines when the logo is taller than the module list", + "default": true + }, + "preserveAspectRatio": { + "type": "boolean", + "description": "Whether to preserve the aspect ratio of the logo. Supported by iTerm image protocol only", + "default": false + }, + "recache": { + "type": "boolean", + "description": "If true, regenerate image logo cache", + "default": false + }, + "position": { + "type": "string", + "description": "Position of the logo", + "enum": [ + "left", + "top", + "right" + ], + "default": "left" + }, + "chafa": { + "type": "object", + "additionalProperties": false, + "description": "Chafa configuration. See chafa documentation for details", + "properties": { + "fgOnly": { + "type": "boolean", + "description": "Produce character-cell output using foreground colors only", + "default": false + }, + "symbols": { + "type": "string", + "description": "Specify character symbols to employ in final output" + }, + "canvasMode": { + "type": "string", + "description": "Determine how colors are used in the output. This value maps to enum ChafaCanvasMode.", + "oneOf": [ + { + "const": "TRUECOLOR", + "description": "Use 24-bit true colors" + }, + { + "const": "INDEXED_256", + "description": "Use 256 colors" + }, + { + "const": "INDEXED_240", + "description": "Use 240 colors, but avoid using the lower 16 whose values vary between terminal environments" + }, + { + "const": "INDEXED_16", + "description": "Use 16 colors using the aixterm ANSI extension" + }, + { + "const": "FGBG_BGFG", + "description": "Use default foreground and background colors, plus inversion" + }, + { + "const": "FGBG", + "description": "Use default foreground and background colors. No ANSI codes will be used" + }, + { + "const": "INDEXED_8", + "description": "Use 8 colors, compatible with original ANSI X3.64" + }, + { + "const": "INDEXED_16_8", + "description": "Use 16 FG colors (8 of which enabled with bold/bright) and 8 BG colors" + } + ] + }, + "colorSpace": { + "type": "string", + "description": "Set color space used for quantization. This value maps to enum ChafaColorSpace.", + "oneOf": [ + { + "const": "RGB", + "description": "RGB color space. Fast but imprecise" + }, + { + "const": "DIN99D", + "description": "DIN99d color space. Slower, but good perceptual color precision" + } + ] + }, + "ditherMode": { + "type": "string", + "description": "Set output dither mode (No effect with 24-bit color). This value maps to enum ChafaDitherMode.", + "oneOf": [ + { + "const": "NONE", + "description": "No dithering" + }, + { + "const": "ORDERED", + "description": "Ordered dithering (Bayer or similar)" + }, + { + "const": "DIFFUSION", + "description": "Error diffusion dithering (Floyd-Steinberg or similar)" + } + ] + } + } + } + } + } + ] + }, + "general": { + "description": "General Fastfetch configuration", + "type": "object", + "additionalProperties": false, + "properties": { + "thread": { + "type": "boolean", + "description": "Use separate threads for HTTP requests", + "default": true + }, + "escapeBedrock": { + "type": "boolean", + "description": "On Bedrock Linux, whether to escape the bedrock jail", + "default": true + }, + "playerName": { + "type": "string", + "description": "The name of the player to use for Media and Player modules. Linux only" + }, + "dsForceDrm": { + "description": "Force display detection to use DRM (Linux only)", + "oneOf": [ + { + "type": "boolean", + "const": false, + "description": "Try `wayland`, then `x11`, then `drm`" + }, + { + "type": "string", + "description": "Use `/sys/class/drm` only", + "const": "sysfs-only" + }, + { + "type": "boolean", + "const": true, + "description": "Try `libdrm` first, then `sysfs` if libdrm fails" + } + ], + "default": false + }, + "processingTimeout": { + "type": "integer", + "description": "Set the timeout (ms) when waiting for child processes, `-1` for no timeout", + "default": 5000 + }, + "preRun": { + "type": "string", + "description": "Command to run before printing logos", + "default": "" + }, + "detectVersion": { + "type": "boolean", + "description": "Whether to detect and display component versions. Mainly for benchmarking", + "default": true + } + } + }, + "display": { + "description": "Configure output formatting", + "type": "object", + "additionalProperties": false, + "properties": { + "stat": { + "description": "Show execution time (in ms) for individual modules, optionally above a threshold", + "oneOf": [ + { + "type": "boolean", + "default": false + }, + { + "type": "integer", + "minimum": 1 + } + ] + }, + "pipe": { + "type": "boolean", + "description": "Whether to disable colors (auto-detected based on isatty(1) by default)", + "default": false + }, + "showErrors": { + "type": "boolean", + "description": "Whether to print errors to the console. If false, modules that error are ignored", + "default": false + }, + "disableLinewrap": { + "type": "boolean", + "description": "Whether to disable line wrap during execution", + "default": true + }, + "hideCursor": { + "type": "boolean", + "description": "Whether to hide the cursor during execution", + "default": true + }, + "separator": { + "type": "string", + "description": "Separator between the key and value", + "default": ": " + }, + "color": { + "description": "Color of keys and titles", + "oneOf": [ + { + "description": "Color for both keys and titles", + "$ref": "#/$defs/colors" + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "keys": { + "description": "Color of keys", + "$ref": "#/$defs/colors" + }, + "title": { + "description": "Color of titles", + "$ref": "#/$defs/colors" + }, + "output": { + "description": "Color of module output", + "$ref": "#/$defs/colors" + }, + "separator": { + "description": "Color of the key-value separator", + "$ref": "#/$defs/colors" + } + } + } + ] + }, + "brightColor": { + "description": "Whether to print keys, titles, and the ASCII logo in bright colors", + "type": "boolean", + "default": true + }, + "key": { + "type": "object", + "additionalProperties": false, + "description": "Configure how module keys are displayed", + "properties": { + "width": { + "description": "Key width in characters. Set to 0 to disable alignment", + "type": "integer", + "minimum": 0, + "default": 0 + }, + "type": { + "type": "string", + "description": "Whether to show a built-in icon before string keys", + "oneOf": [ + { + "const": "none", + "description": "Disable keys" + }, + { + "const": "string", + "description": "Show string keys" + }, + { + "const": "icon", + "description": "Show the built-in icon (requires a recent Nerd Font)" + }, + { + "const": "both", + "description": "Show both icon and string keys (alias of `both-1`)" + }, + { + "const": "both-0", + "description": "Show both icon and string with no spaces between them" + }, + { + "const": "both-1", + "description": "Show both icon and string with a space between them" + }, + { + "const": "both-2", + "description": "Show both icon and string with 2 spaces between them" + }, + { + "const": "both-3", + "description": "Show both icon and string with 3 spaces between them" + }, + { + "const": "both-4", + "description": "Show both icon and string with 4 spaces between them" + } + ], + "default": "string" + }, + "paddingLeft": { + "type": "integer", + "description": "Left padding for keys", + "minimum": 0, + "default": 0 + } + } + }, + "size": { + "type": "object", + "additionalProperties": false, + "description": "Configure how sizes are displayed", + "properties": { + "binaryPrefix": { + "type": "string", + "description": "Set the binary prefix to use when formatting sizes", + "oneOf": [ + { + "const": "iec", + "description": "1024 Bytes = 1 KiB, 1024 KiB = 1 MiB, ... (standard)" + }, + { + "const": "si", + "description": "1000 Bytes = 1 kB, 1000 kB = 1 MB, ..." + }, + { + "const": "jedec", + "description": "1024 Bytes = 1 KB, 1024 KB = 1 MB, ..." + } + ], + "default": "iec" + }, + "maxPrefix": { + "type": "string", + "description": "Set the largest binary prefix to use when formatting sizes", + "enum": ["B", "kB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"], + "default": "YB" + }, + "ndigits": { + "type": "integer", + "description": "Number of decimal places to use when formatting sizes", + "minimum": 0, + "maximum": 9, + "default": 2 + }, + "spaceBeforeUnit": { + "$ref": "#/$defs/spaceBeforeUnit" + } + } + }, + "temp": { + "type": "object", + "additionalProperties": false, + "description": "Configure how temperatures are displayed", + "properties": { + "unit": { + "type": "string", + "description": "Set the unit of temperature", + "oneOf": [ + { + "const": "C", + "description": "Celsius" + }, + { + "const": "F", + "description": "Fahrenheit" + }, + { + "const": "K", + "description": "Kelvin" + }, + { + "const": "D", + "description": "Default (alias for Celsius)" + } + ], + "default": "D" + }, + "ndigits": { + "type": "integer", + "description": "Number of decimal places to use when formatting temperatures", + "minimum": 0, + "maximum": 9, + "default": 1 + }, + "color": { + "type": "object", + "additionalProperties": false, + "description": "Colors used for different temperature states", + "properties": { + "green": { + "description": "Color used in green state", + "$ref": "#/$defs/colors", + "default": "green" + }, + "yellow": { + "description": "Color used in yellow state", + "$ref": "#/$defs/colors", + "default": "light_yellow" + }, + "red": { + "description": "Color used in red state", + "$ref": "#/$defs/colors", + "default": "light_red" + } + } + }, + "spaceBeforeUnit": { + "$ref": "#/$defs/spaceBeforeUnit" + } + } + }, + "bar": { + "type": "object", + "additionalProperties": false, + "description": "Bar configuration", + "properties": { + "char": { + "type": "object", + "additionalProperties": false, + "description": "Characters used in the bar", + "properties": { + "elapsed": { + "type": "string", + "description": "Character used for the elapsed portion", + "default": "â– " + }, + "total": { + "type": "string", + "description": "Character used for the remaining portion", + "default": "-" + } + } + }, + "border": { + "oneOf": [ + { + "type": "null", + "description": "Disable bar borders" + }, + { + "type": "object", + "additionalProperties": false, + "description": "Strings used for percentage bar borders", + "properties": { + "left": { + "type": "string", + "description": "String used for the left border", + "default": "[ " + }, + "right": { + "type": "string", + "description": "String used for the right border", + "default": " ]" + }, + "leftElapsed": { + "type": "string", + "description": "If both `leftElapsed` and `rightElapsed` are set, the border is used as part of the bar content", + "default": "" + }, + "rightElapsed": { + "type": "string", + "description": "If both `leftElapsed` and `rightElapsed` are set, the border is used as part of the bar content", + "default": "" + } + } + } + ] + }, + "color": { + "oneOf": [ + { + "type": "null", + "description": "Disable color in percentage bars" + }, + { + "type": "object", + "additionalProperties": false, + "description": "Colors used for percentage bars", + "properties": { + "elapsed": { + "description": "Color used for the elapsed portion of percentage bars\nBy default, it is selected automatically from `percent.color.{green,yellow,red}`", + "$ref": "#/$defs/colors", + "default": "auto" + }, + "total": { + "description": "Color used for the remaining portion of percentage bars", + "$ref": "#/$defs/colors", + "default": "light_white" + }, + "border": { + "description": "Color used for percentage bar borders", + "$ref": "#/$defs/colors", + "default": "light_white" + } + } + } + ] + }, + "width": { + "type": "integer", + "description": "Width of the bar in characters", + "minimum": 1, + "default": 10 + } + } + }, + "percent": { + "type": "object", + "additionalProperties": false, + "description": "Configure how percentages are displayed", + "properties": { + "type": { + "$ref": "#/$defs/percentType" + }, + "ndigits": { + "type": "number", + "description": "Number of decimal places to use when formatting percentages", + "minimum": 0, + "maximum": 9, + "default": 0 + }, + "color": { + "type": "object", + "additionalProperties": false, + "description": "Colors used for different percentage states", + "properties": { + "green": { + "description": "Color used in green state", + "$ref": "#/$defs/colors", + "default": "green" + }, + "yellow": { + "description": "Color used in yellow state", + "$ref": "#/$defs/colors", + "default": "light_yellow" + }, + "red": { + "description": "Color used in red state", + "$ref": "#/$defs/colors", + "default": "light_red" + } + } + }, + "spaceBeforeUnit": { + "$ref": "#/$defs/spaceBeforeUnit" + }, + "width": { + "type": "integer", + "description": "Width of the percentage number in characters", + "minimum": 0, + "default": 0 + } + } + }, + "freq": { + "type": "object", + "additionalProperties": false, + "description": "Configure how frequencies are displayed", + "properties": { + "ndigits": { + "description": "Set the number of decimal places to display when formatting frequency values", + "oneOf": [ + { + "type": "integer", + "minimum": 0, + "maximum": 9, + "description": "An integer displays the frequency in GHz with the specified number of decimal places" + }, + { + "type": "null", + "description": "A null value displays the frequency as an integer in MHz" + } + ], + "default": 2 + }, + "spaceBeforeUnit": { + "$ref": "#/$defs/spaceBeforeUnit" + } + } + }, + "duration": { + "type": "object", + "description": "Configure how durations are displayed", + "properties": { + "abbreviation": { + "type": "boolean", + "description": "Whether to abbreviate durations\nIf true, values are shown as \"1h 2m\" instead of \"1 hour, 2 mins\"", + "default": false + }, + "spaceBeforeUnit": { + "$ref": "#/$defs/spaceBeforeUnit" + } + } + }, + "fraction": { + "type": "object", + "additionalProperties": false, + "description": "Configure how fractional values are displayed", + "properties": { + "ndigits": { + "oneOf": [ + { + "type": "number", + "description": "Number of decimal places to use when formatting fractional values", + "minimum": 0, + "maximum": 9 + }, + { + "type": "null", + "description": "Automatically determine the number of decimal places based on the value" + } + ], + "default": 2 + }, + "trailingZeros": { + "description": "Control when trailing zeros are preserved", + "oneOf": [ + { + "type": "null", + "description": "Same as `default`" + }, + { + "const": "default", + "description": "Use the built-in behavior" + }, + { + "const": "always", + "description": "Always keep trailing zeros" + }, + { + "const": "never", + "description": "Never keep trailing zeros" + } + ], + "default": null + } + } + }, + "common": { + "type": "object", + "additionalProperties": false, + "description": "Override the settings for `duration`, `fraction`, `freq`, `percent`, `size`, and `temp`\nPlace this before those properties to use it as their default configuration", + "properties": { + "ndigits": { + "description": "Default number of decimal places to display", + "type": "integer", + "minimum": 0, + "maximum": 9 + }, + "spaceBeforeUnit": { + "$ref": "#/$defs/spaceBeforeUnit" + } + } + }, + "noBuffer": { + "type": "boolean", + "description": "Whether to disable stdout buffering", + "default": false + }, + "constants": { + "type": "array", + "description": "List of strings available for use in module custom formats", + "items": { + "type": "string" + } + } + } + }, + "modules": { + "description": "Modules to run", + "type": "array", + "items": { + "anyOf": [ + { + "type": "string", + "description": "Run a module with its default configuration", + "enum": [ + "battery", + "bios", + "bluetooth", + "bluetoothradio", + "board", + "bootmgr", + "break", + "brightness", + "btrfs", + "camera", + "chassis", + "cpu", + "cpucache", + "cpuusage", + "codec", + "command", + "colors", + "cursor", + "datetime", + "display", + "disk", + "diskio", + "de", + "dns", + "editor", + "font", + "gamepad", + "gpu", + "host", + "icons", + "initsystem", + "keyboard", + "kernel", + "lm", + "loadavg", + "locale", + "localip", + "media", + "memory", + "monitor", + "mouse", + "netio", + "opencl", + "opengl", + "os", + "packages", + "physicaldisk", + "physicalmemory", + "player", + "poweradapter", + "processes", + "publicip", + "separator", + "shell", + "sound", + "swap", + "terminal", + "terminalfont", + "terminalsize", + "terminaltheme", + "title", + "theme", + "tpm", + "uptime", + "users", + "version", + "vulkan", + "wallpaper", + "weather", + "wm", + "wifi", + "wmtheme", + "zpool" + ] + }, + { + "type": "object", + "description": "Run a module with a custom configuration", + "required": [ + "type" + ], + "properties": { + "type": { + "type": "string" + } + }, + "oneOf": [ + { + "title": "Break", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "break", + "description": "Print an empty line" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Battery", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "battery", + "description": "Print battery information" + }, + "temp": { + "$ref": "#/$defs/temperature" + }, + "percent": { + "$ref": "#/$defs/percent" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/batteryFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "BIOS", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "description": "Print first-stage bootloader information (name, version, release date, etc.)", + "const": "bios" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/biosFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Bluetooth", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "description": "List connected Bluetooth devices", + "const": "bluetooth" + }, + "showDisconnected": { + "description": "Whether to show disconnected Bluetooth devices", + "type": "boolean", + "default": false + }, + "percent": { + "$ref": "#/$defs/percent" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/bluetoothFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Bluetooth Radio", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "description": "List Bluetooth radios (supported versions, vendors, etc.)", + "const": "bluetoothradio" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/bluetoothradioFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Board", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "description": "Print motherboard name and other information", + "const": "board" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/boardFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Boot Manager", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "description": "Print second-stage bootloader information (name, firmware, etc.)", + "const": "bootmgr" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/bootmgrFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Brightness", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "brightness", + "description": "Print the current brightness level of your monitors" + }, + "percent": { + "$ref": "#/$defs/percent" + }, + "ddcciSleep": { + "description": "Sleep time in milliseconds between DDC/CI requests\nSet to null to skip DDC/CI detection\nSee <https://www.ddcutil.com/performance_options/#option-sleep-multiplier> for details", + "oneOf": [ + { + "type": "null", + "description": "Skip DDC/CI detection" + }, + { + "type": "integer", + "minimum": 0, + "maximum": 400 + } + ], + "default": 10 + }, + "compact": { + "description": "Whether to print multiple results on a single line", + "type": "boolean", + "default": false + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/brightnessFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "BTRFS", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "btrfs", + "description": "Print Linux BTRFS volumes" + }, + "percent": { + "$ref": "#/$defs/percent" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/btrfsFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Camera", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "description": "Print available cameras", + "const": "camera" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/cameraFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Chassis", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "chassis", + "description": "Print chassis type information (desktop, laptop, etc.)" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/chassisFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Codec", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "codec", + "description": "Print hardware video acceleration codec types (decode / encode)" + }, + "splitGPU": { + "description": "Whether to print each GPU separately. If false, merge codecs from all GPUs", + "type": "boolean", + "default": false + }, + "useVulkan": { + "description": "Whether to use Vulkan for codec detection instead of other platform-specific APIs", + "type": "boolean", + "default": false + }, + "showType": { + "description": "Which types of codecs to detect and show", + "type": "string", + "oneOf": [ + { + "const": "both", + "description": "Show both decoders and encoders" + }, + { + "const": "decoder", + "description": "Show only decoders" + }, + { + "const": "encoder", + "description": "Show only encoders" + } + ], + "default": "both" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/codecFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "CPU", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "description": "Print CPU name, frequency, etc.", + "const": "cpu" + }, + "temp": { + "$ref": "#/$defs/temperature" + }, + "tempSensor": { + "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`)", + "type": "string" + }, + "showPeCoreCount": { + "description": "Whether to detect and display CPU frequencies for different core types (for example, P-cores and E-cores), if supported", + "type": "boolean", + "default": false + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/cpuFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "CPU Cache", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "cpucache", + "description": "Print CPU cache sizes" + }, + "percent": { + "$ref": "#/$defs/percent" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/cpucacheFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "CPU Usage", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "cpuusage", + "description": "Print CPU usage. Collecting data takes some time" + }, + "percent": { + "$ref": "#/$defs/percent" + }, + "separate": { + "type": "boolean", + "description": "Show CPU usage for each logical core instead of an average", + "default": false + }, + "waitTime": { + "type": "integer", + "description": "Wait time (in ms). CPU usage = (inUseEnd - inUseStart) / waitTime", + "default": 200, + "minimum": 1 + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/cpuusageFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Colors", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "description": "Display the terminal's 16-color palette", + "const": "colors" + }, + "symbol": { + "description": "Set the symbol to use", + "type": "string", + "oneOf": [ + { + "const": "block", + "description": "\u2588\u2588\u2588" + }, + { + "const": "background", + "description": "Whitespace with background color" + }, + { + "const": "circle", + "description": "\u25cf" + }, + { + "const": "diamond", + "description": "\u25c6" + }, + { + "const": "triangle", + "description": "\u25b2" + }, + { + "const": "square", + "description": "\u25a0" + }, + { + "const": "star", + "description": "\u2605" + } + ], + "default": "background" + }, + "paddingLeft": { + "description": "Set the number of white spaces to print before the symbol", + "type": "integer", + "minimum": 0, + "default": 0 + }, + "block": { + "description": "Set behavior of block printing. Only works when symbol is set to `block` or `background`", + "type": "object", + "additionalProperties": false, + "properties": { + "width": { + "description": "Set the block width in spaces", + "type": "integer", + "minimum": 1, + "default": 3 + }, + "range": { + "description": "Set the range of colors in the blocks to print", + "type": "array", + "items": { + "type": "integer", + "minimum": 0, + "maximum": 15 + }, + "minItems": 2, + "maxItems": 2 + } + } + }, + "brightness": { + "description": "Set the brightness of colors. Works together with the block color range to determine which colors are displayed", + "type": "string", + "oneOf": [ + { + "const": "default", + "description": "Use the default setting (block/background: 0-15, others: 8-1)" + }, + { + "const": "light", + "description": "Use ANSI bright foreground colors (codes 90-97, not color indices 9-15)" + }, + { + "const": "normal", + "description": "Use normal ANSI colors (30-37; standard foreground colors, corresponding to color indices 0-7)" + } + ], + "default": "default" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Command", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "description": "Run a custom shell command", + "const": "command" + }, + "shell": { + "description": "Shell program used to execute the command text\nDefault: `cmd` on Windows, `/bin/sh` on Unix-like systems", + "type": "string" + }, + "param": { + "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", + "type": "string" + }, + "text": { + "description": "Command text to execute", + "type": "string" + }, + "useStdErr": { + "description": "Whether to use stderr instead of stdout for command output", + "type": "boolean", + "default": false + }, + "parallel": { + "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", + "type": "boolean", + "default": true + }, + "splitLines": { + "description": "Whether to split command output into multiple lines", + "type": "boolean", + "default": false + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/commandFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Cursor", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "cursor", + "description": "Print cursor style name" + }, + "percent": { + "$ref": "#/$defs/percent" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/cursorFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Custom", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "description": "Print a custom string, with or without key", + "const": "custom" + }, + "key": { + "description": "Leave empty to hide the key", + "type": "string" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "description": "Text to print", + "type": "string" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Date Time", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "datetime", + "description": "Print the current date and time" + }, + "percent": { + "$ref": "#/$defs/percent" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/datetimeFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Display", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "description": "Print display resolutions, refresh rates, etc.", + "const": "display" + }, + "compactType": { + "description": "Whether to print all displays on a single line", + "oneOf": [ + { + "const": null, + "description": "Disable compact mode" + }, + { + "const": "none", + "description": "Disable compact mode (kept for compatibility)" + }, + { + "const": "original", + "description": "Print original resolutions" + }, + { + "const": "scaled", + "description": "Print scaled resolutions" + }, + { + "const": "original-with-refresh-rate", + "description": "Print original resolutions with refresh rates" + }, + { + "const": "scaled-with-refresh-rate", + "description": "Print scaled resolutions with refresh rates" + } + ], + "default": null + }, + "preciseRefreshRate": { + "description": "Whether to preserve decimal refresh rates instead of rounding them to integers", + "type": "boolean", + "default": false + }, + "order": { + "description": "Order to use when printing displays", + "oneOf": [ + { + "const": null, + "description": "Use the default order" + }, + { + "const": "none", + "description": "Use the detected order (kept for compatibility)" + }, + { + "const": "asc", + "description": "Sort by display name in ascending order" + }, + { + "const": "desc", + "description": "Sort by display name in descending order" + } + ], + "default": null + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/displayFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Disk", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "description": "Print partitions, space usage, file system, etc.", + "const": "disk" + }, + "folders": { + "description": "A list of folder paths for the disk output\nDefault: auto detection using mount-points\nThis option overrides other `show*` options", + "oneOf": [ + { + "type": "string", + "description": "A colon (semicolon on Windows) separated list of folder paths to get disk usage from", + "default": "/" + }, + { + "type": "array", + "description": "An array of folder paths to get disk usage from", + "items": { + "type": "string" + }, + "minItems": 1, + "uniqueItems": true + } + ] + }, + "hideFolders": { + "description": "A list of folder paths (or glob patterns) to hide from the disk output", + "oneOf": [ + { + "type": "string", + "description": "A colon (semicolon on Windows) separated list of folder paths to hide from the disk output" + }, + { + "type": "array", + "description": "An array of folder paths to hide from the disk output", + "items": { + "type": "string" + }, + "minItems": 1, + "uniqueItems": true + } + ], + "default": "/efi:/boot:/boot/*" + }, + "hideFS": { + "description": "A list of file systems to hide from the disk output", + "oneOf": [ + { + "type": "string", + "description": "A colon separated list of file systems to hide from the disk output" + }, + { + "type": "array", + "description": "An array of file systems to hide from the disk output", + "items": { + "type": "string" + }, + "minItems": 1, + "uniqueItems": true + } + ] + }, + "showRegular": { + "type": "boolean", + "description": "Whether to show regular volumes", + "default": true + }, + "showExternal": { + "type": "boolean", + "description": "Whether to show external volumes", + "default": true + }, + "showHidden": { + "type": "boolean", + "description": "Whether to show hidden volumes", + "default": false + }, + "showSubvolumes": { + "type": "boolean", + "description": "Whether to show subvolumes", + "default": false + }, + "showReadOnly": { + "type": "boolean", + "description": "Whether to show read-only volumes", + "default": false + }, + "showUnknown": { + "type": "boolean", + "description": "Whether to show unknown volumes whose sizes cannot be detected", + "default": false + }, + "useAvailable": { + "type": "boolean", + "description": "Use f_bavail (lpFreeBytesAvailableToCaller for Windows) instead of f_bfree to calculate used bytes\nMay be required for macOS to display correct results", + "default": false + }, + "percent": { + "$ref": "#/$defs/percent" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/diskFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "DiskIO", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "description": "Print physical disk I/O throughput", + "const": "diskio" + }, + "namePrefix": { + "description": "Show only disks whose names start with this prefix", + "type": "string" + }, + "detectTotal": { + "description": "Show total bytes instead of the current rate", + "type": "boolean", + "default": false + }, + "waitTime": { + "type": "integer", + "description": "Wait time (in ms). Disk I/O = (totalBytesEnd - totalBytesStart) / waitTime", + "default": 200, + "minimum": 1 + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/diskioFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Desktop Environment", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "de", + "description": "Print desktop environment name" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/deFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "DNS", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "dns", + "description": "Print configured DNS servers" + }, + "showType": { + "oneOf": [ + { + "const": "ipv4", + "description": "Show IPv4 addresses only" + }, + { + "const": "ipv6", + "description": "Show IPv6 addresses only" + }, + { + "const": "both", + "description": "Show both IPv4 and IPv6 addresses" + } + ], + "default": "both", + "description": "Which DNS server types to show" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/dnsFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Editor", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "editor", + "description": "Print information about the default editor (`$VISUAL` or `$EDITOR`)" + }, + "percent": { + "$ref": "#/$defs/percent" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/editorFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Font", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "font", + "description": "Print system font names" + }, + "percent": { + "$ref": "#/$defs/percent" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/fontFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Gamepad", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "gamepad", + "description": "List connected gamepads" + }, + "ignores": { + "type": "array", + "description": "An array of case-insensitive device name prefixes to ignore", + "items": { + "type": "string" + }, + "minItems": 1, + "uniqueItems": true + }, + "percent": { + "$ref": "#/$defs/percent" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/gamepadFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "GPU", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "description": "Print GPU names, memory sizes, types, etc.", + "const": "gpu" + }, + "temp": { + "$ref": "#/$defs/temperature" + }, + "driverSpecific": { + "description": "Use driver specific method to detect more detailed GPU information (memory usage, core count, etc)\nRequires the latest GPU drivers to be installed.", + "type": "boolean", + "default": false + }, + "detectionMethod": { + "description": "Force a specific GPU detection method", + "type": "string", + "oneOf": [ + { + "const": "auto", + "description": "Query platform-specific graphics APIs.\nRequires proper GPU drivers to be installed.\nSupported on Linux, FreeBSD, Windows and macOS" + }, + { + "const": "pci", + "description": "Search PCI devices, which does not require GPU drivers to be installed.\nNot supported on Windows and macOS" + }, + { + "const": "vulkan", + "description": "Use Vulkan API.\nSlow and requires proper Vulkan drivers to be installed.\nUsed for Android" + }, + { + "const": "opencl", + "description": "Use OpenCL API.\nSlow and requires proper OpenCL drivers to be installed" + }, + { + "const": "opengl", + "description": "Use OpenGL API.\nSlow and only detects one GPU.\nUsed for OpenBSD" + } + ], + "default": "<varies-by-platform>" + }, + "hideType": { + "description": "Hide GPUs of a specific type", + "oneOf": [ + { + "const": null, + "description": "Do not hide any GPUs" + }, + { + "const": "none", + "description": "Do not hide any GPUs (kept for compatibility)" + }, + { + "const": "integrated", + "description": "Hide integrated GPUs" + }, + { + "const": "discrete", + "description": "Hide discrete GPUs" + }, + { + "const": "unknown", + "description": "Hide unknown (unrecognized) GPUs" + } + ], + "default": null + }, + "percent": { + "$ref": "#/$defs/percent" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/gpuFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Host", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "host", + "description": "Print your computer's product name" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/hostFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Icons", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "icons", + "description": "Print icon style name" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/iconsFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Init System", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "initsystem", + "description": "Print init system (pid 1) name and version" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/initsystemFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Kernel", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "kernel", + "description": "Print system kernel version" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/kernelFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Keyboard", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "keyboard", + "description": "List connected keyboards" + }, + "ignores": { + "type": "array", + "description": "An array of case-insensitive device name prefixes to ignore", + "items": { + "type": "string" + }, + "minItems": 1, + "uniqueItems": true + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/keyboardFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Login Manager", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "lm", + "description": "Print login manager (desktop manager) name and version" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/lmFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Local IP", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "description": "List local IP addresses (IPv4 or IPv6), MAC addresses, etc.", + "const": "localip" + }, + "showIpv4": { + "description": "Show IPv4 addresses", + "type": "boolean", + "default": true + }, + "showIpv6": { + "description": "Show IPv6 addresses", + "oneOf": [ + { + "const": true, + "description": "Show the most useful IPv6 addresses" + }, + { + "const": false, + "description": "Do not show IPv6 addresses" + }, + { + "const": "gua", + "description": "Show only global unicast IPv6 addresses (2000::/3)" + }, + { + "const": "ula", + "description": "Show only unique local IPv6 addresses (fc00::/7)" + }, + { + "const": "lla", + "description": "Show only link-local IPv6 addresses (fe80::/10)" + }, + { + "const": "unknown", + "description": "Show only IPv6 addresses that are not gua, ula or lla" + } + ], + "default": false + }, + "showSpeed": { + "description": "Show Ethernet RX speed", + "type": "boolean", + "default": false + }, + "showMtu": { + "description": "Show MTU", + "type": "boolean", + "default": false + }, + "showMac": { + "description": "Show MAC addresses", + "type": "boolean", + "default": false + }, + "showLoop": { + "description": "Show loop back addresses (127.0.0.1)", + "type": "boolean", + "default": false + }, + "showPrefixLen": { + "description": "Show network prefix length (/N)", + "type": "boolean", + "default": true + }, + "showAllIps": { + "description": "Show all IPs bound to the same interface\nBy default, only the first detected IP is shown", + "type": "boolean", + "default": false + }, + "showFlags": { + "description": "Show the interface's flags", + "type": "boolean", + "default": false + }, + "compact": { + "description": "Show all IPs in one line", + "type": "boolean", + "default": false + }, + "namePrefix": { + "description": "Show IPs with given name prefix only", + "type": "string" + }, + "defaultRouteOnly": { + "description": "Show only IPs used for the default route\nDoes not work on Android", + "type": "boolean", + "default": true + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/localipFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Loadavg", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "loadavg", + "description": "Print system load averages" + }, + "ndigits": { + "type": "integer", + "description": "Set the number of digits to keep after the decimal point", + "minimum": 0, + "maximum": 9, + "default": 2 + }, + "compact": { + "type": "boolean", + "description": "Show values in one line", + "default": true + }, + "percent": { + "$ref": "#/$defs/percent" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/loadavgFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Locale", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "locale", + "description": "Print system locale name" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/localeFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Logo", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "logo", + "description": "Query built-in logo for JSON output" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Media", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "media", + "description": "Print the name of the currently playing song" + }, + "percent": { + "$ref": "#/$defs/percent" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/mediaFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Memory", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "memory", + "description": "Print system memory usage information" + }, + "percent": { + "$ref": "#/$defs/percent" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/memoryFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Mouse", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "mouse", + "description": "List connected mice" + }, + "ignores": { + "type": "array", + "description": "An array of case-insensitive device name prefixes to ignore", + "items": { + "type": "string" + }, + "minItems": 1, + "uniqueItems": true + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/mouseFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Monitor", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "monitor", + "description": "Same as Display module, but with a different default output format" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/monitorFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "NetIO", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "description": "Print network I/O throughput", + "const": "netio" + }, + "namePrefix": { + "description": "Show only interfaces whose names start with this prefix", + "type": "string" + }, + "defaultRouteOnly": { + "description": "Show only interfaces used for the default route\nDoes not work on Android", + "type": "boolean", + "default": true + }, + "detectTotal": { + "description": "Detect total bytes instead of current rate", + "type": "boolean", + "default": false + }, + "waitTime": { + "type": "integer", + "description": "Wait time (in ms). Net I/O = (totalBytesEnd - totalBytesStart) / waitTime", + "default": 200, + "minimum": 1 + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/netioFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "OpenCL", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "opencl", + "description": "Print the highest OpenCL version supported by the GPU" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/openclFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "OpenGL", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "description": "Print the highest OpenGL version supported by the GPU", + "const": "opengl" + }, + "library": { + "description": "Set the OpenGL context creation library to use", + "oneOf": [ + { + "const": "auto", + "description": "Prefer EGL on *nix; prefer platform-specific implementation on others" + }, + { + "const": "egl", + "description": "Use EGL, which works on TTY" + }, + { + "const": "glx", + "description": "Use GLX, requires X session (*nix only)" + } + ], + "default": "auto" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/openglFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Operating System", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "os", + "description": "Print the OS or Linux distribution name and version" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/osFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Packages", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "packages", + "description": "List installed package managers and count of installed packages" + }, + "disabled": { + "oneOf": [ + { + "description": "Package managers to disable during detection\nWarning: Some detection methods can be very slow.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "am", + "apk", + "brew", + "choco", + "dpkg", + "emerge", + "eopkg", + "flatpak", + "guix", + "hpkg", + "linglong", + "lpkg", + "lpkgbuild", + "macports", + "mport", + "nix", + "opkg", + "pacman", + "pacstall", + "paludis", + "pisi", + "pkg", + "pkgtool", + "rpm", + "scoop", + "snap", + "sorcery", + "winget", + "xbps" + ], + "uniqueItems": true + } + }, + { + "description": "Enable all package managers", + "type": "null" + } + ], + "default": ["winget"] + }, + "combined": { + "description": "Whether to combine related package managers into single counts (e.g., nix-system + nix-user = nix)", + "type": "boolean", + "default": false + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/packagesFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Physical Disk", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "description": "Print physical disk information", + "const": "physicaldisk" + }, + "namePrefix": { + "description": "Show disks with given name prefix only", + "type": "string" + }, + "hideVirtual": { + "description": "Hide virtual disks (e.g. loop, RAM or file baked disks)", + "type": "boolean", + "default": false + }, + "hideUnused": { + "description": "Hide disks with `size == 0` (likely unused/unconnected)", + "type": "boolean", + "default": true + }, + "temp": { + "$ref": "#/$defs/temperature" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/physicaldiskFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Physical Memory", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "physicalmemory", + "description": "Print system physical memory devices" + }, + "showEmptySlots": { + "description": "Whether to show uninstalled memory slots", + "type": "boolean", + "default": false + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/physicalmemoryFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Player", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "player", + "description": "Print the music player name that is currently active" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/playerFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Power Adapter", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "poweradapter", + "description": "Print power adapter name and charging watts" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/poweradapterFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Processes", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "processes", + "description": "Print the number of running processes" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/processesFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Public IP", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "description": "Print your public IP address and related information", + "const": "publicip" + }, + "url": { + "description": "URL of the public IP detection server to use. Only HTTP is supported", + "type": "string", + "format": "url", + "default": "http://ipinfo.io/ip" + }, + "timeout": { + "description": "Time in milliseconds to wait for the public IP server to respond\nSet to 0 to disable the timeout", + "type": "integer", + "minimum": 0, + "default": 0 + }, + "ipv6": { + "description": "Whether to use IPv6 for the public IP detection server", + "type": "boolean", + "default": false + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/publicipFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Separator", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "description": "Print a separator line", + "const": "separator" + }, + "string": { + "description": "String to print for the separator line", + "type": "string", + "default": "-" + }, + "outputColor": { + "description": "Color of the separator line", + "$ref": "#/$defs/outputColor" + }, + "times": { + "description": "Number of times to repeat the separator string, or 0 to auto-detect", + "type": "integer", + "minimum": 0, + "default": 0 + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Shell", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "shell", + "description": "Print the current shell name and version" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/shellFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Sound", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "description": "Print sound devices, volume levels, etc.", + "const": "sound" + }, + "soundType": { + "description": "Which sound devices to print", + "type": "string", + "oneOf": [ + { + "const": "main", + "description": "Print only main sound devices" + }, + { + "const": "active", + "description": "Print only active sound devices" + }, + { + "const": "all", + "description": "Print all sound devices" + } + ], + "default": "main" + }, + "percent": { + "$ref": "#/$defs/percent" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/soundFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Swap", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "swap", + "description": "Print swap (paging file) space usage" + }, + "separate": { + "type": "boolean", + "description": "Whether to report individual swap devices on separate lines instead of showing a summary", + "default": false + }, + "percent": { + "$ref": "#/$defs/percent" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/swapFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Terminal", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "terminal", + "description": "Print the current terminal name and version" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/terminalFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Terminal Font", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "terminalfont", + "description": "Print the font name and size used by the current terminal" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/terminalfontFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Terminal Size", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "terminalsize", + "description": "Print the current terminal size" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/terminalsizeFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Terminal Theme", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "terminaltheme", + "description": "Print the current terminal theme (foreground and background colors)" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/terminalthemeFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Theme", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "theme", + "description": "Print the current desktop environment theme" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/themeFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Title", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "description": "Print the title, including your username and hostname", + "const": "title" + }, + "fqdn": { + "type": "boolean", + "description": "Whether to use the fully qualified domain name in the title", + "default": false + }, + "color": { + "description": "Colors for the different parts of the title", + "type": "object", + "additionalProperties": false, + "properties": { + "user": { + "description": "Color of the username (left part)", + "$ref": "#/$defs/colors" + }, + "at": { + "description": "Color of the @ symbol (middle part)", + "$ref": "#/$defs/colors" + }, + "host": { + "description": "Color of the hostname (right part)", + "$ref": "#/$defs/colors" + } + } + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/titleFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "TPM", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "tpm", + "description": "Print information about the Trusted Platform Module (TPM) security device" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/tpmFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Users", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "users", + "description": "Print users who are currently logged in" + }, + "compact": { + "type": "boolean", + "description": "Show all active users in one line", + "default": false + }, + "myselfOnly": { + "type": "boolean", + "description": "Show only the current user", + "default": false + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/usersFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Uptime", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "uptime", + "description": "Print how long the system has been running" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/uptimeFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Version", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "version", + "description": "Print the Fastfetch version and build information" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/versionFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Vulkan", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "vulkan", + "description": "Print the highest Vulkan version supported by the GPU" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/vulkanFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Wallpaper", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "wallpaper", + "description": "Print the file path of the current wallpaper" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/wallpaperFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Weather", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "description": "Print weather information", + "const": "weather" + }, + "location": { + "description": "Location to display\nMust be URI-encoded (for example, spaces must be encoded as `+`)", + "type": "string" + }, + "timeout": { + "description": "Time in milliseconds to wait for the weather server to respond.\n0 to disable timeout", + "type": "integer", + "minimum": 0, + "default": 0 + }, + "outputFormat": { + "description": "Weather output format to use (must be URI-encoded)", + "type": "string", + "default": "%t+-+%C+(%l)" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/weatherFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Wi-Fi", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "wifi", + "description": "Print connected Wi-Fi info (SSID, connection and security protocol)" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/wifiFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Window Manager", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "wm", + "description": "Print the window manager name and version" + }, + "detectPlugin": { + "description": "Whether to detect the window manager plugin on supported platforms", + "type": "boolean", + "default": true + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/wmFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "WM Theme", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "wmtheme", + "description": "Print the current window manager theme" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/wmthemeFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + }, + { + "title": "Zpool", + "type": "object", + "additionalProperties": false, + "properties": { + "type": { + "const": "zpool", + "description": "Print ZFS storage pools" + }, + "percent": { + "$ref": "#/$defs/percent" + }, + "key": { + "$ref": "#/$defs/key" + }, + "keyColor": { + "$ref": "#/$defs/keyColor" + }, + "keyIcon": { + "$ref": "#/$defs/keyIcon" + }, + "keyWidth": { + "$ref": "#/$defs/keyWidth" + }, + "outputColor": { + "$ref": "#/$defs/outputColor" + }, + "format": { + "$ref": "#/$defs/zpoolFormat" + }, + "condition": { + "$ref": "#/$defs/conditions" + } + } + } + ] + } + ] + } + } + } +} |