Skip to content

Configuration

Severus Snape edited this page Jul 13, 2026 · 7 revisions

The configuration file uses JSON with comments (JSONC), so every option is documented inline.

OS Path
Linux ~/.config/leenfetch/config.jsonc
Windows C:\Users\<username>\AppData\Roaming\leenfetch\config.jsonc

flags section

Controls display and formatting behavior.

Key Values Default Description
ascii_distro "auto" or distro name "auto" ASCII art selection
ascii_colors "distro" or comma-separated color indices "distro" Color palette
custom_logo_path "" or file path "" Custom ASCII art or image file
logo_scale positive float 1.0 Scale factor for image logos (capped to a terminal-friendly max)
battery_display "off", "bar", "infobar", "barinfo" "off" Battery meter style
color_blocks any string "●" Color preview character
cpu_brand true, false true Show CPU vendor name
cpu_cores true, false true Show core/thread counts
cpu_frequency true, false true Show CPU frequency
cpu_speed true, false true Show current CPU speed
cpu_temp "C", "F", "off" "C" Temperature unit or off
de_version true, false true Show DE version
disk_display comma-separated "info", "percentage", "bar" "info" Disk usage style; order matters
disk_percent true, false true Show disk percentage
disk_show "/" or comma-separated paths "/" Which disks to display
disk_subtitle "name", "dir", "none", "mount" "dir" Disk label style
distro_shorthand (see below) "name" OS detail level
gpu_brand true, false true Show GPU vendor name
gpu_type "all", "dedicated", "integrated" "all" Which GPU to show
kernel_shorthand true, false true Shorten kernel output
memory_percent true, false true Show memory percentage
memory_unit "kib", "mib", "gib" "mib" Memory unit
package_managers "off", "on", "tiny" "tiny" Package counter mode
shell_path true, false false Show full shell path
shell_version true, false true Show shell version
speed_shorthand true, false false Show CPU speed without decimals
uptime_shorthand "full", "tiny", "seconds" "tiny" Uptime format
os_age_shorthand "full", "tiny", "seconds" "tiny" OS age format

distro_shorthand values: name, name_version, name_arch, name_model, name_model_version, name_model_arch, name_model_version_arch.

Example

{
  "flags": {
    "uptime_shorthand": "tiny",
    "cpu_temp": "C",
    "package_managers": "on"
  }
}

modules section

The modules array (also accepted as layout) controls the order and content of the output. Entries can be:

  • A string — a built-in module name or "break" for a blank line
{ "modules": ["break", "title", "distro", "cpu", "memory", "colors"] }
  • An object — custom label or format
{ "modules": [
    "break",
    { "type": "title", "key": "User" },
    { "type": "distro", "key": "OS" },
    { "type": "custom", "format": "== System ==" }
] }

Available module types: title, distro, kernel, os_age, uptime, cpu, memory, gpu, disk, battery, shell, packages, de, wm, theme, song, colors, separator, custom, break.

SSH note: when using --ssh, leenfetch renders with the remote machine's effective config and layout. If the remote config file is missing or invalid, the remote built-in defaults are used.

logo override

Set custom_logo_path to a text logo or an image file:

{
  "flags": {
    "custom_logo_path": "~/.config/leenfetch/branding/logo.txt"
  }
}

Image files render locally when the terminal supports kitty-style inline images. Otherwise leenfetch prints a warning and falls back to the normal ASCII/logo path.

Smaller logo_scale values shrink the inline image and the info column follows the rendered logo width. The image is also capped to a terminal-friendly maximum size.

Piped input overrides this logo override path entirely: pipe input wins over CLI flags, and CLI flags win over the JSONC config.

Over SSH, image logos are not transferred from the remote host; leenfetch falls back to the normal ASCII/logo path locally.

If omitted, the auto-detected distro art is used.

Clone this wiki locally