Konfiguration

xfetch verwendet eine JSONC (JSON mit Kommentaren) Konfigurationsdatei. Der Standardspeicherort ist ~/.config/xfetch/config.jsonc. Sie konnen eine Standardkonfiguration mit xfetch --gen-config generieren oder einen benutzerdefinierten Pfad mit xfetch --config <pfad> verwenden.

Konfigurationsdatei-Format

JSONC erweitert standard JSON um C-Style (//) und C++-Style (/* */) Kommentare sowie nachgestellte Kommas in Objekten und Arrays.

Vollstandige Konfigurationsreferenz

{
    "layout": "section",
    "modules": [
        {
            "type": "group",
            "title": "Hardware",
            "modules": [
                "hostname",
                "cpu",
                "gpu",
                "memory",
                "swap",
                "disk",
                "battery"
            ]
        },
        {
            "type": "group",
            "title": "Software",
            "modules": [
                "os",
                "kernel",
                "packages",
                "shell",
                "wm",
                "terminal",
                "local_ip"
            ]
        },
        "palette"
    ],
    "show_colors": true,
    "icons": {
        "hostname": "\uf109",
        "cpu": "\uf2db",
        "gpu": "\uf0b9"
    },
    "colors": {
        "hostname": "Green",
        "cpu": "Green",
        "os": "Yellow"
    },
    "palette_style": "squares",
    "logo_path": null,
    "ascii": null,
    "header_icons": null,
    "footer_text": null,
    "disable_ip_fetching": false,
    "disable_cache": false,
    "logo_animation": null,
    "info_plugins": []
}

Feldreferenz

Felder der obersten Ebene

FeldTypStandardBeschreibung
layoutstring oder nullnull (classic)Layout-Stil-Name
modulesarray(siehe unten)Geordnete Liste von Modulen oder Modulgruppen
show_colorsbooleantrueANSI-Farbausgabe aktivieren
iconsobject(eingebaute Standards)Modulspezifische Icon-Zuordnungen
colorsobject(eingebaute Standards)Modulspezifische Farbzuordnungen
palette_stylestring"squares"Paletten-Anzeigestil
logo_pathstring oder nullnullPfad zu einer benutzerdefinierten Logodatei
asciistring oder nullnullPfad zu einer ASCII-Kunst-Datei (Alternative zu logo_path)
logo_widthnumber oder nullauto (28% der Terminalbreite, begrenzt 12-42)Breitenbeschränkung fur Bildlogos (in Terminal-Spalten, automatisch berechnet wenn nicht gesetzt)
logo_heightnumber oder nullnullHohenbeschränkung fur Bildlogos (in Terminal-Zeilen)
logo_gapnumber oder null12Abstand zwischen dem Logo/Bild und dem Infotext (in Spalten)
logo_kittyboolean oder nulltrue (in Kitty)Kitty natives Bildprotokoll verwenden (true) oder Half-Block-Rendering (false). Half-Block hat geringere Auflosung, vermeidet aber Layout-Probleme
logo_colorstring oder nullnullFarbe fur das ASCII-Logo: Name ("Cyan"), 256-Farben-Index ("196") oder Hex-RGB ("#FF0000")
logo_paddingnumber oder null0Fuhrende Leerzeichen vor dem Logo
logo_typestring oder null"auto""auto" (nach Endung), "ascii" (Text erzwingen), "image" (Bild erzwingen)
show_keysbooleanfalseRendert Schlussel: Wert in den Icon-Layouts
key_widthnumber oder nullautoFullt den Schlussel auf diese Spaltenbreite, um Werte auszurichten
labelsobject oder null{}Benennt den Schlussel einer Zeile pro Modul um; ein leerer String blendet den Schlussel aus
formatsobject oder null{}Wertvorlagen mit {feld}-Platzhaltern pro Modul
header_iconsarray oder nullnullIcons fur den oberen Rand (Pac-Man-Layout)
footer_textstring oder nullnullText fur den unteren Rand (Pac-Man-Layout)
disable_ip_fetchingbooleanfalseAbrufen der offentlichen IP aus Datenschutzgrunden deaktivieren
disable_cachebooleanfalseDaten-Caching deaktivieren
os_wsl_stylestring"minimal"WSL-OS-Darstellung (nur Linux): off (einfacher Name), minimal (fugt (WSL) hinzu), full (fugt WSL-Version und WSLg hinzu)
logo_animationobject oder nullnullLogo-Animationskonfiguration
info_pluginsarray[]Liste der auszufuhrenden Info-Plugins
config_providersarray[]Liste der Konfigurations-Provider-Erweiterungen, die nach der Themenzusammenfuhrung ausgefuhrt werden
themestring oder nullnullTheme-Name zum Anwenden (nur visuelle Felder)
daemonbooleanfalseIm animierten Daemon-Modus ausfuhren (fixiert den Fetch am oberen Terminalrand)
daemon_min_rowsnumber6Mindestterminalzeilen fur den animierten Daemon
daemon_livebooleanfalseLive-Statistikblock am oberen Terminalrand fixieren und Module periodisch neu abfragen
daemon_live_refreshnumber oder null(plattformabhangig)Aktualisierungsintervall des Live-Daemons in Sekunden
daemon_live_modulesarray oder null(plattformabhangig)Vom Live-Daemon angezeigte Module
daemon_live_reloadbooleanfalseHot-Reload der Konfiguration im Live-Daemon-Modus
custom_xobject oder nullnullRahmenvorlagen fur das custom-x-Layout
effectsobject, array oder nullnullIntro-Effekte, die auf die Inhaltszeilen angewendet werden

Standardmodule

Wenn keine Module angegeben sind, verwendet xfetch:

["os", "kernel", "uptime", "packages", "wm", "shell", "disk", "cpu", "gpu", "memory", "battery"]

Modulgruppen

Module konnen fur die Layouts section, tree und side-block in benannte Gruppen organisiert werden:

{
    "type": "group",
    "title": "Hardware",
    "modules": ["cpu", "gpu", "memory"]
}

Gruppen konnen verschachtelt werden:

{
    "type": "group",
    "title": "System",
    "modules": [
        {
            "type": "group",
            "title": "Hardware",
            "modules": ["cpu", "gpu"]
        },
        {
            "type": "group",
            "title": "Software",
            "modules": ["os", "kernel"]
        }
    ]
}

Icons

Icons bilden Modulnamen auf Anzeigezeichenketten ab. Nerd Font Glyphen werden haufig verwendet, aber jede Unicode- oder Textzeichenkette funktioniert.

{
    "icons": {
        "os": "\uf17c",
        "kernel": "\uf17c",
        "hostname": "\uf109",
        "cpu": "\uf2db",
        "gpu": "\uf0b9",
        "memory": "\ue266",
        "swap": "\uf0c5",
        "disk": "\uf0a0",
        "battery": "\uf240",
        "uptime": "\uf253",
        "packages": "\uf187",
        "shell": "\uf0e7",
        "terminal": "\uf0e7",
        "wm": "\uf08e",
        "user": "\uf007",
        "datetime": "\uf017",
        "local_ip": "\uf0ac",
        "palette": "\uf0eb",
        "plugin:<name>": "\uf271"
    }
}

Modulschussel mit dem Prefix plugin: (z. B. plugin:docker) werden fur pluginbereitgestellte Informationen verwendet.

Farben

Farben bilden Modulnamen auf ANSI-Farbnamen ab:

{
    "colors": {
        "os": "Cyan",
        "kernel": "White",
        "wm": "Blue",
        "shell": "Green",
        "cpu": "Green",
        "gpu": "Green",
        "memory": "Green",
        "disk": "Green",
        "battery": "Green",
        "packages": "Yellow",
        "hostname": "Green",
        "uptime": "Yellow",
        "terminal": "Green",
        "user": "Magenta"
    }
}

Verfugbare Farbnamen:

NameANSI-Code
Black30
Red31
Green32
Yellow33
Blue34
Magenta35
Cyan36
White37
Grey oder Gray90

Farbnamen sind unabhängig von der Groß-/Kleinschreibung. Auch 256-Farben-Indizes ("196") und Hex-RGB ("#FF0000") werden akzeptiert.

Palettenstile

Das Modul palette zeigt ein Farbmuster an. Verfugbare Stile:

StilBeschreibung
"squares"Hintergrundfarbblocke (Standard)
"circles"Vordergrundfarbkreise
"triangles"Vordergrundfarbdreiecke
"lines"Dicke horizontale Farbbalken

Animationskonfiguration

Das Feld logo_animation aktiviert ASCII-Logo-Animation uber ein Plugin:

{
    "logo_animation": {
        "plugin": "animate-logo",
        "fps": 12,
        "duration_ms": 1200,
        "loop": false,
        "style": "sweep",
        "frames_path": "~/.config/xfetch/logos/frames.txt"
    }
}
FeldTypBeschreibung
pluginstringPlugin-Name (z. B. "animate-logo")
fpsnumberBilder pro Sekunde (1-60)
duration_msnumberGesamte Animationsdauer in Millisekunden (wird im Daemon-Modus ignoriert)
loopbooleanOb die Animation wiederholt werden soll (wird im Daemon-Modus ignoriert)
stylestringAnimationsstil: "sweep", "wave", "rainbow", "sparkle", "breathing", "frame", "none"
frames_pathstringPfad zu vorgebauten Frame-Sets (fur Stil "frame"). Mehrere Frame-Sets getrennt durch \n===\n
timeout_secsnumberOptionale Zeituberschreitung fur das Animations-Plugin in Sekunden

Plugin-Integration

Info-Plugins werden im Array info_plugins konfiguriert:

{
    "info_plugins": [
        {
            "plugin": "github-stats",
            "args": {
                "username": "myuser",
                "max_lines": 3
            }
        },
        {
            "plugin": "docker"
        }
    ]
}
FeldTypBeschreibung
pluginstringPlugin-Name (installiert als xfetch-plugin-<name>)
argsobject oder nullBeliebige JSON-Argumente, die an das Plugin ubergeben werden
timeout_secsnumber oder nullOptionale Zeituberschreitung pro Plugin in Sekunden

Plugin-Daten werden uber Modulschussel mit dem Prefix plugin: abgerufen:

{
    "modules": ["os", "kernel", "plugin:github-stats", "plugin:docker"]
}

Konfigurationsanbieter

Das Feld config_providers ermoglicht Erweiterungen auf Konfigurationsebene, die Konfiguration vor dem Rendering zu andern. Erweiterungen werden nach der Themenzusammenfuhrung in Deklarationsreihenfolge ausgefuhrt:

{
    "config_providers": [
        {
            "extension": "config-roulette",
            "args": {
                "routes": "~/.config/xfetch/routes.json",
                "strategy": "random"
            }
        },
        {
            "extension": "layout-override",
            "args": {
                "layout": "tree"
            }
        }
    ]
}
FeldTypBeschreibung
extensionstringErweiterungsname (Binardatei: xfetch-extension-<name>)
argsobject oder nullBeliebige JSON-Argumente, die an die Erweiterung ubergeben werden
timeout_secsnumber oder nullOptionale Zeituberschreitung pro Erweiterung in Sekunden

Erweiterungen kommunizieren uber stdin/stdout JSON, empfangen die vollstandig aufgeloste Konfiguration und geben eine modifizierte Version zuruck. Siehe Erweiterungen fur Details.

Konfigurationsdatei-Speicherorte nach Plattform

PlattformStandard-Konfigurationspfad
Linux~/.config/xfetch/config.jsonc
macOS~/Library/Application Support/xfetch/config.jsonc
Windows%APPDATA%\xfetch\config.jsonc