{ "$schema": "http://json-schema.org/schema", "$defs": { "colors": { "type": "string", "enum": [ "reset_", "bright_", "dim_", "black", "red", "green", "yellow", "blue", "magenta", "cyan", "white", "default", "bright_black", "bright_red", "bright_green", "bright_yellow", "bright_blue", "bright_magenta", "bright_cyan", "bright_white" ] }, "key": { "title": "Key of the module", "type": "string" }, "keyColor": { "title": "Color of the module key. Left empty to use `display.color.keys`", "$ref": "#/$defs/colors" }, "keyWidth": { "title": "Width of the module key. Use 0 to use `display.keyWidth`", "type": "integer", "minimum": 0, "default": 0 }, "format": { "title": "Output format of the module", "type": "string" } }, "type": "object", "title": "JSON config", "description": "JSON config file for fastfetch. Usually be `~/.config/fastfetch.jsonc`", "properties": { "$schema": { "type": "string", "title": "JSON schema URL, for JSON validation and IDE intelligence", "format": "uri", "default": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json" }, "logo": { "oneOf": [ { "title": "Disable logo", "type": "null" }, { "title": "Set the source file of the logo", "type": "string" }, { "title": "Fastfetch logo configurations", "type": "object", "properties": { "type": { "title": "Set the type of the logo given", "enum": [ "auto", "builtin", "small", "file", "file-raw", "data", "data-raw", "sixel", "kitty", "kitty-direct", "iterm", "chafa", "raw", "none" ], "default": "auto" }, "source": { "type": "string", "title": "Set the source file of the logo" }, "color": { "type": "object", "title": "Overwrite a color in the logo", "properties": { "1": { "title": "Color 1", "$ref": "#/$defs/colors" }, "2": { "title": "Color 2", "$ref": "#/$defs/colors" }, "3": { "title": "Color 3", "$ref": "#/$defs/colors" }, "4": { "title": "Color 4", "$ref": "#/$defs/colors" }, "5": { "title": "Color 5", "$ref": "#/$defs/colors" }, "6": { "title": "Color 6", "$ref": "#/$defs/colors" }, "7": { "title": "Color 7", "$ref": "#/$defs/colors" }, "8": { "title": "Color 8", "$ref": "#/$defs/colors" }, "9": { "title": "Color 9", "$ref": "#/$defs/colors" } }, "additionalProperties": false }, "width": { "type": "integer", "title": "Set the width of the logo (in characters). Required for iTerm image protocol", "minimum": 1 }, "height": { "type": "integer", "title": "Set the height of the logo (in characters). Required for iTerm image protocol", "minimum": 1 }, "padding": { "type": "object", "title": "Set the padding of the logo", "properties": { "top": { "type": "integer", "title": "Set the top padding of the logo", "minimum": 0 }, "left": { "type": "integer", "title": "Set the left padding of the logo", "minimum": 0 }, "right": { "type": "integer", "title": "Set the right padding of the logo", "minimum": 0 } }, "additionalProperties": false }, "printRemaining": { "type": "boolean", "title": "Whether to print the remaining logo, if it has more lines than modules to display", "default": false }, "preserveAspectRadio": { "type": "boolean", "title": "Whether to preserve the aspect ratio of the logo. Supported by iTerm image protocol", "default": false }, "recache": { "type": "boolean", "title": "If true, regenerate image logo cache", "default": false }, "chafa": { "type": "object", "title": "Chafa configuration. See chafa document for details", "properties": { "fgOnly": { "type": "boolean", "title": "Produce character-cell output using foreground colors only", "default": false }, "symbols": { "type": "string", "title": "Specify character symbols to employ in final output" }, "canvasMode": { "type": "string", "title": "Determine how colors are used in the output. This value maps the value of enum ChafaCanvasMode.", "enum": [ "TRUECOLOR", "INDEXED_256", "INDEXED_240", "INDEXED_16", "FGBG_BGFG", "FGBG", "INDEXED_8", "INDEXED_16_8" ] }, "colorSpace": { "type": "string", "title": "Set color space used for quantization. This value maps the value of enum ChafaColorSpace.", "enum": [ "RGB", "DIN99D" ] }, "ditherMode": { "type": "string", "title": "Set output dither mode (No effect with 24-bit color). This value maps the value of enum ChafaDitherMode.", "enum": [ "NONE", "ORDERED", "DIFFUSION" ] } }, "additionalProperties": false } }, "additionalProperties": false } ] }, "general": { "title": "Fastfetch general configurations", "type": "object", "properties": { "allowSlowOperations": { "type": "boolean", "title": "Allow operations that can be very slow for more detailed output", "default": false }, "multithreading": { "type": "boolean", "title": "Use multiple threads to detect values", "default": true }, "thread": { "type": "boolean", "title": "Alias of multithreading", "default": true }, "stat": { "type": "boolean", "title": "Show time usage (in ms) for individual modules", "default": false }, "escapeBedrock": { "type": "boolean", "title": "On Bedrock Linux, whether to escape the bedrock jail", "default": true }, "pipe": { "type": "boolean", "title": "Whether to enable pipe mode (disable logo and all escape sequences)", "default": false }, "playerName": { "type": "string", "title": "The name of the player to use for module Media and Player. Linux only" }, "osFile": { "type": "string", "title": "Set the path to the file containing OS information. Linux only" }, "dsForceDrm": { "type": "boolean", "title": "Force display detection to use `/sys/class/drm`. Linux only", "default": false }, "wmiTimeout": { "type": "integer", "title": "Set the timeout (ms) for WMI queries, `-1` for no timeout. Windows only", "default": 5000 } }, "additionalProperties": false }, "display": { "title": "Configure how things to be displayed", "type": "object", "properties": { "showErrors": { "type": "boolean", "title": "Print occurring errors to the console. False to ignore errored modules", "default": false }, "disableLinewrap": { "type": "boolean", "title": "Whether to disable line wrap during the run", "default": true }, "hideCursor": { "type": "boolean", "title": "Whether to hide the cursor during the run", "default": true }, "separator": { "type": "string", "title": "Set the separator between key and value", "default": ": " }, "color": { "title": "Set the color of the keys and title", "oneOf": [ { "title": "Set the both color of the keys and title", "$ref": "#/$defs/colors" }, { "type": "object", "properties": { "keys": { "title": "Set the color of the keys", "$ref": "#/$defs/colors" }, "title": { "title": "Set the color of the title", "$ref": "#/$defs/colors" } }, "additionalProperties": false } ] }, "brightColor": { "title": "Set if the keys, title and ASCII logo should be printed in bright color", "type": "boolean", "default": true }, "keyWidth": { "title": "Align the width of keys to number of characters, 0 to disable", "type": "integer", "minimum": 0, "default": 0 }, "binaryPrefix": { "type": "string", "title": "Set the binary prefix to used when printing bytes", "enum": [ "iec", "si", "jedec" ] }, "sizeNdigits": { "type": "integer", "title": "Set the number of digits to keep after the decimal point when formatting sizes", "minimum": 0, "maximum": 9, "default": 2 }, "sizeMaxPrefix": { "type": "string", "title": "Set the largest binary prefix to use when formatting sizes", "enum": ["B", "kB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"], "default": "YB" }, "temperatureUnit": { "type": "string", "title": "Set the unit of the temperature", "enum": ["CELSIUS", "C", "FAHRENHEIT", "F", "KELVIN", "K"], "default": "C" }, "bar": { "type": "object", "title": "Set the bar configuration", "properties": { "charElapsed": { "type": "string", "title": "Set the character to use in elapsed part", "default": "■" }, "charTotal": { "type": "string", "title": "Set the character to use in total part", "default": "-" }, "border": { "type": "boolean", "title": "Whether to show a border around the bar", "default": true }, "width": { "type": "integer", "title": "Set the width of the bar, in number of characters", "minimum": 1, "default": 10 } } }, "percentType": { "type": "number", "title": "Set the percentage output type. 1 for percentage number, 2 for bar, 3 for both, 6 for bar only, 9 for colored number", "minimum": 0, "maximum": 255, "default": 1 }, "percentNdigits": { "type": "number", "title": "Set the number of digits to keep after the decimal point when formatting percentage numbers", "minimum": 0, "maximum": 9, "default": 0 }, "noBuffer": { "type": "boolean", "title": "Whether to disable the stdout application buffer", "default": false } }, "additionalProperties": false }, "library": { "title": "Set the path of a library to load", "type": "object", "properties": { "pci": { "type": "string", "title": "GPU output (Linux and FreeBSD)" }, "vulkan": { "type": "string", "title": "Vulkan module & fallback for GPU output" }, "freetype": { "type": "string", "title": "Used for Termux font detection (Android)" }, "wayland": { "type": "string", "title": "Better display performance and output in wayland sessions.\nSupports different refresh rates per monitor.\n(Linux)" }, "xcbRandr": { "type": "string", "title": "" }, "xcb": { "type": "string", "title": "X11 sessions for better display detection and faster WM detection.\nThe *randr ones provide multi monitor support The libxcb* ones usually have better performance.\n (Linux, FreeBSD)" }, "xrandr": { "type": "string", "title": "X11 sessions for better display detection and faster WM detection.\nThe *randr ones provide multi monitor support The libxcb* ones usually have better performance.\n (Linux, FreeBSD)" }, "x11": { "type": "string", "title": "X11 sessions for better display detection and faster WM detection.\nThe *randr ones provide multi monitor support The libxcb* ones usually have better performance.\n (Linux, FreeBSD)" }, "gio": { "type": "string", "title": "Needed for values that are only stored GSettings (Linux, FreeBSD)" }, "dconf": { "type": "string", "title": "Needed for values that are only stored in DConf + Fallback for GSettings (Linux, FreeBSD)" }, "dbus": { "type": "string", "title": "Bluetooth, Player & Media detection (Linux, FreeBSD)" }, "xfconf": { "type": "string", "title": "Needed for XFWM theme and XFCE Terminal font (Linux, FreeBSD)" }, "sqlite3": { "type": "string", "title": "Needed for pkg & rpm package count (Linux, FreeBSD)" }, "rpm": { "type": "string", "title": "Slower fallback for rpm package count. Needed on openSUSE & old CentOS / Redhat. (Linux)" }, "imagemagick": { "type": "string", "title": "Images in terminal using sixel or kitty graphics protocol (Linux, FreeBSD, macOS)" }, "z": { "title": "Libz. Faster image output when using kitty graphics protocol (Linux, FreeBSD, macOS)", "type": "string" }, "chafa": { "type": "string", "title": "Image output as ascii art (Linux, FreeBSD, macOS)" }, "egl": { "type": "string", "title": "Needed by the OpenGL module for gl context creation (Linux, FreeBSD)" }, "glx": { "type": "string", "title": "Needed by the OpenGL module for gl context creation (Linux, FreeBSD)" }, "osmesa": { "type": "string", "title": "Needed by the OpenGL module for gl context creation (Linux, FreeBSD)" }, "opencl": { "type": "string", "title": "OpenCL module (Linux, FreeBSD, Windows)" }, "pulse": { "title": "Pulseaudio. Used for Sound detection (Linux, FreeBSD)", "type": "string" }, "nm": { "title": "NetworkManager. Used for Wifi detection (Linux)", "type": "string" }, "ddcutil": { "title": "Used for brightness detection of external displays (Linux)", "type": "string" } }, "additionalProperties": false }, "modules": { "title": "Fastfetch modules to run", "type": "array", "items": { "anyOf": [ { "type": "string", "title": "Run module with default configurations", "enum": [ "battery", "bios", "bluetooth", "board", "break", "brightness", "chassis", "cpu", "cpuusage", "command", "colors", "cursor", "datetime", "display", "disk", "de", "font", "gamepad", "gpu", "host", "icons", "kernel", "lm", "locale", "localip", "media", "memory", "monitor", "opencl", "opengl", "os", "packages", "player", "poweradapter", "processes", "publicip", "separator", "shell", "sound", "swap", "terminal", "terminalfont", "terminalsize", "title", "theme", "uptime", "users", "version", "vulkan", "wallpaper", "weather", "wm", "wifi", "wmtheme" ] }, { "type": "object", "title": "Run module with custom configurations", "required": [ "type" ], "properties": { "type": { "title": "Module type", "type": "string" } }, "oneOf": [ { "title": "Break", "description": "Print a empty line", "properties": { "type": { "const": "break" } }, "additionalProperties": false }, { "title": "No additional properties", "properties": { "type": { "enum": [ "bios", "board", "brightness", "chassis", "cpuusage", "cursor", "datetime", "de", "font", "gamepad", "host", "icons", "kernel", "lm", "locale", "media", "memory", "monitor", "opencl", "os", "packages", "player", "poweradapter", "processes", "shell", "swap", "terminal", "terminalfont", "terminalsize", "theme", "uptime", "users", "version", "vulkan", "wallpaper", "wm", "wifi", "wmtheme" ] }, "key": { "$ref": "#/$defs/key" }, "keyColor": { "$ref": "#/$defs/keyColor" }, "keyWidth": { "$ref": "#/$defs/keyWidth" }, "format": { "$ref": "#/$defs/format" } }, "additionalProperties": false }, { "title": "Battery", "properties": { "type": { "const": "battery" }, "dir": { "title": "The directory where the battery folders are. Standard: `/sys/class/power_supply/`. Linux only", "type": "string" }, "temp": { "title": "Detect and display Battery temperature if supported", "type": "boolean", "default": false }, "key": { "$ref": "#/$defs/key" }, "keyColor": { "$ref": "#/$defs/keyColor" }, "keyWidth": { "$ref": "#/$defs/keyWidth" }, "format": { "$ref": "#/$defs/format" } }, "additionalProperties": false }, { "title": "Bluetooth", "properties": { "type": { "const": "bluetooth" }, "showDisconnected": { "title": "Set if disconnected bluetooth devices should be printed", "type": "boolean", "default": false }, "key": { "$ref": "#/$defs/key" }, "keyColor": { "$ref": "#/$defs/keyColor" }, "keyWidth": { "$ref": "#/$defs/keyWidth" }, "format": { "$ref": "#/$defs/format" } }, "additionalProperties": false }, { "title": "CPU", "properties": { "type": { "const": "cpu" }, "temp": { "title": "Detect and display CPU temperature if supported", "type": "boolean", "default": false }, "key": { "$ref": "#/$defs/key" }, "keyColor": { "$ref": "#/$defs/keyColor" }, "keyWidth": { "$ref": "#/$defs/keyWidth" }, "format": { "$ref": "#/$defs/format" } }, "additionalProperties": false }, { "title": "Colors", "properties": { "type": { "const": "colors" }, "symbol": { "title": "Set the symbol to use", "type": "string", "enum": [ "block", "circle", "diamond", "triangle", "square", "star" ], "default": "block" }, "paddingLeft": { "title": "Set the number of white spaces to print before the symbol", "type": "integer", "minimum": 0, "default": 0 } } }, { "title": "Command", "properties": { "type": { "const": "command" }, "shell": { "title": "Set the shell program to execute the command text\nDefault: cmd for Windows, /bin/sh for *nix", "type": "string" }, "text": { "title": "Set the command text to be executed", "type": "string" }, "key": { "$ref": "#/$defs/key" }, "keyColor": { "$ref": "#/$defs/keyColor" }, "keyWidth": { "$ref": "#/$defs/keyWidth" }, "format": { "$ref": "#/$defs/format" } }, "additionalProperties": false }, { "title": "Custom", "description": "Print a custom string, with or without key", "properties": { "type": { "const": "custom" }, "key": { "title": "Leave empty not to print the key", "type": "string" }, "keyColor": { "$ref": "#/$defs/keyColor" }, "keyWidth": { "$ref": "#/$defs/keyWidth" }, "format": { "title": "Text to print", "type": "string" } }, "required": [ "format" ], "additionalProperties": false }, { "title": "Display", "properties": { "type": { "const": "display" }, "compactType": { "enum": [ "none", "original", "scaled" ], "title": "Set if all displays should be printed in one line", "default": "none" }, "preciseRefreshRate": { "title": "Set if decimal refresh rates should not be rounded into integers when printing", "type": "boolean", "default": true }, "key": { "$ref": "#/$defs/key" }, "keyColor": { "$ref": "#/$defs/keyColor" }, "keyWidth": { "$ref": "#/$defs/keyWidth" }, "format": { "$ref": "#/$defs/format" } }, "additionalProperties": false }, { "title": "Disk", "properties": { "type": { "const": "disk" }, "folders": { "type": "string", "title": "A colon (semicolon on Windows) separated list of folder paths for the disk output\nDefault: \"/:/home\" (\"C:\\\\;D:\\\\ ...\" on Windows)" }, "showExternal": { "type": "boolean", "title": "Set if external volume should be printed", "default": true }, "showHidden": { "type": "boolean", "title": "Set if hidden volumes should be printed", "default": false }, "showSubvolumes": { "type": "boolean", "title": "Set if subvolumes should be printed", "default": false }, "showReadOnly": { "type": "boolean", "title": "Set if read only volumes should be printed", "default": false }, "showUnknown": { "type": "boolean", "title": "Set if unknown (unable to detect sizes) volumes should be printed", "default": false }, "useAvailable": { "type": "boolean", "title": "Use f_bavail (lpFreeBytesAvailableToCaller for Windows) instead of f_bfree to calculate used bytes", "default": false }, "key": { "$ref": "#/$defs/key" }, "keyColor": { "$ref": "#/$defs/keyColor" }, "keyWidth": { "$ref": "#/$defs/keyWidth" }, "format": { "$ref": "#/$defs/format" } }, "additionalProperties": false }, { "title": "GPU", "properties": { "type": { "const": "gpu" }, "temp": { "title": "Detect and display GPU temperature if supported", "type": "boolean", "default": false }, "forceVulkan": { "title": "Force using vulkan to detect GPUs, which support video memory usage detection with `--allow-slow-operations`", "type": "boolean", "default": false }, "hideType": { "title": "Specify the type of GPUs should not be printed", "enum": [ "integrated", "discrete", "none" ], "default": "none" }, "key": { "$ref": "#/$defs/key" }, "keyColor": { "$ref": "#/$defs/keyColor" }, "keyWidth": { "$ref": "#/$defs/keyWidth" }, "format": { "$ref": "#/$defs/format" } }, "additionalProperties": false }, { "title": "Local IP", "properties": { "type": { "const": "localip" }, "showIpv4": { "title": "Show IPv4 addresses", "type": "boolean", "default": true }, "showIpv6": { "title": "Show IPv6 addresses", "type": "boolean", "default": false }, "showMac": { "title": "Show MAC addresses", "type": "boolean", "default": false }, "showLoop": { "title": "Show loop back addresses (127.0.0.1)", "type": "boolean", "default": false }, "compact": { "title": "Show all IPs in one line", "type": "boolean", "default": false }, "namePrefix": { "title": "Show IPs with given name prefix only", "type": "string" }, "defaultRouteOnly": { "title": "Show ips that are used for default routing only", "type": "boolean", "default": false }, "key": { "$ref": "#/$defs/key" }, "keyColor": { "$ref": "#/$defs/keyColor" }, "keyWidth": { "$ref": "#/$defs/keyWidth" }, "format": { "$ref": "#/$defs/format" } }, "additionalProperties": false }, { "title": "OpenGL", "properties": { "type": { "const": "opengl" }, "library": { "title": "Set the OpenGL context creation library to use. Linux only", "enum": [ "auto", "egl", "glx", "osmesa" ], "default": "auto" }, "key": { "$ref": "#/$defs/key" }, "keyColor": { "$ref": "#/$defs/keyColor" }, "keyWidth": { "$ref": "#/$defs/keyWidth" }, "format": { "$ref": "#/$defs/format" } }, "additionalProperties": false }, { "title": "Public IP", "properties": { "type": { "const": "publicip" }, "url": { "title": "The URL of public IP detection server to be used. Only HTTP protocol is supported", "type": "string", "format": "url", "default": "http://ipinfo.io/ip" }, "timeout": { "title": "Time in milliseconds to wait for the public ip server to respond", "type": "integer", "minimum": 0, "default": "disabled (0)" }, "key": { "$ref": "#/$defs/key" }, "keyColor": { "$ref": "#/$defs/keyColor" }, "keyWidth": { "$ref": "#/$defs/keyWidth" }, "format": { "$ref": "#/$defs/format" } }, "additionalProperties": false }, { "title": "Separator", "properties": { "type": { "const": "separator" }, "string": { "title": "Set the string to be printed", "type": "string", "default": "-" } }, "additionalProperties": false }, { "title": "Sound", "properties": { "type": { "const": "sound" }, "soundType": { "title": "Set what type of sound devices should be printed", "type": "string", "enum": [ "main", "active", "all" ], "default": "main" }, "key": { "$ref": "#/$defs/key" }, "keyColor": { "$ref": "#/$defs/keyColor" }, "keyWidth": { "$ref": "#/$defs/keyWidth" }, "format": { "$ref": "#/$defs/format" } }, "additionalProperties": false }, { "title": "Title", "properties": { "type": { "const": "title" }, "fqdn": { "type": "boolean", "title": "Set if the title should use fully qualified domain name", "default": false }, "color": { "title": "Set colors of the different part of title", "properties": { "user": { "title": "Set color of the user name (left part)", "$ref": "#/$defs/colors" }, "at": { "title": "Set color of the @ symbol (middle part)", "$ref": "#/$defs/colors" }, "host": { "title": "Set color of the host name (right part)", "$ref": "#/$defs/colors" } }, "additionalProperties": false }, "key": { "$ref": "#/$defs/key" }, "keyColor": { "$ref": "#/$defs/keyColor" }, "keyWidth": { "$ref": "#/$defs/keyWidth" }, "format": { "$ref": "#/$defs/format" } }, "additionalProperties": false }, { "title": "Weather", "properties": { "type": { "const": "weather" }, "location": { "title": "The location to display", "type": "string" }, "timeout": { "title": "Time in milliseconds to wait for the weather server to respond", "type": "integer", "minimum": 0, "default": "disabled (0)" }, "outputFormat": { "title": "The output weather format to be used (must be URI encoded)", "type": "string", "default": "%t+-+%C+(%l)" }, "key": { "$ref": "#/$defs/key" }, "keyColor": { "$ref": "#/$defs/keyColor" }, "keyWidth": { "$ref": "#/$defs/keyWidth" }, "format": { "$ref": "#/$defs/format" } }, "additionalProperties": false } ] } ] } } }, "additionalProperties": false }