Das Flag --benchmark zeigt Zeitinformationen fur die parallele Probephase und die Gesamtausfuhrungszeit an:
xfetch --benchmarkBeispielausgabe:
Parallel probes: 127ms
Total time: 189ms
Benchmark-Zeitmessung umfasst:
- Parallele Proben: GPU-Erkennung, Paketzahlung und offentlicher IP-Abruf (gleichzeitig ausgefuhrt uber
thread::scope) - Gesamtzeit: Gesamte Ausfuhrung einschlieelich Konfigurationsladen, Modulsammlung, Rendering und Ausgabe
xfetch zwischenspeichert bestimmte Daten, um die Leistung bei wiederholten Ausfuhrungen zu verbessern.
Der Cache wird als JSON-Datei gespeichert unter:
| Plattform | Pfad |
|---|---|
| Linux | ~/.cache/xfetch/cache.json |
| macOS | ~/Library/Caches/xfetch/cache.json |
| Windows | %LOCALAPPDATA%/xfetch/cache.json |
| Daten | TTL | Zweck |
|---|---|---|
| Paketanzahlen | 5 Minuten | Vermeidet mehrfache Ausfuhrung von Paketmanager-Befehlen |
| Offentliche IP | 5 Minuten | Vermeidet wiederholte HTTP-Anfragen |
# Alle zwischengespeicherten Daten loschen
xfetch --clean-cacheSetzen Sie disable_cache: true in Ihrer Konfiguration, um das Caching vollstandig zu deaktivieren:
Dies ist nutzlich fur Umgebungen, in denen sich der Systemzustand haufig andert, oder wenn Sie bei jeder Ausfuhrung die aktuellsten Daten wunschen.
xfetch bietet Optionen zur Steuerung des Netzwerkzugriffs und der Datenerfassung.
Das Modul public_ip fuhrt eine HTTP-Anfrage an einen externen Dienst durch. Um dies aus Datenschutzgrunden zu deaktivieren:
{
"disable_ip_fetching": true
}Wenn aktiviert, gibt das Modul public_ip "Disabled" zuruck, anstatt zu versuchen, die IP-Adresse abzurufen.
Das pluginbasierte Wettermodul fuhrt ebenfalls externe API-Aufrufe durch. Um es zu deaktivieren, entfernen Sie einfach das Plugin aus Ihrer Konfiguration.
| Modul | Netzwerkzugriff | Externer Dienst |
|---|---|---|
public_ip |
Ja | ifconfig.me, api.ipify.org, icanhazip.com |
plugin:weather |
Ja (falls installiert) | wttr.in |
plugin:github-stats |
Ja (falls installiert) | api.github.com |
| Alle anderen Module | Nein | N/A |
xfetch passt sich automatisch an das Betriebssystem an.
| Modul | Linux | macOS | Windows |
|---|---|---|---|
| GPU | lspci -mm |
system_profiler SPDisplaysDataType |
wmic oder PowerShell |
| Akku | /sys/class/power_supply/BAT* |
pmset -g batt |
wmic path Win32_Battery |
| Shell | $SHELL |
$SHELL |
Prozess-Elternkette durchlaufen |
| Datum/Uhrzeit | date-Befehl |
date-Befehl |
PowerShell |
| Pakete | pacman, dpkg, rpm, flatpak, snap, apk, nix-env | brew | scoop, winget |
| Konfigurationspfad | ~/.config/xfetch/ |
~/Library/Application Support/xfetch/ |
%APPDATA%/xfetch/ |
| Cache-Pfad | ~/.cache/xfetch/ |
~/Library/Caches/xfetch/ |
%LOCALAPPDATA%/xfetch/ |
| Binary-Name | xfetch-plugin-<name> |
xfetch-plugin-<name> |
xfetch-plugin-<name>.exe |
xfetch verwendet abgestufte Fallback-Ketten fur plattformspezifische Funktionen:
- GPU-Erkennung: Primarer Befehl > Fallback-Befehl > "Unknown"
- Akku-Erkennung: Primarer Pfad > Fallback-Befehl > "N/A"
- Bildschirmauflosung (Plugin): xrandr > wlr-randr > xdpyinfo (Linux); system_profiler (macOS); PowerShell (Windows)
- Zeitzone (Plugin):
/etc/timezone>/etc/localtime-Symlink >timedatectl
- Farbausgabe: Alle ANSI-fahigen Terminals
- Bildlogos: iTerm2, Kitty oder Sixel-kompatible Terminals
- ASCII-Logos: Alle Terminals
- Animation: Erfordert TTY. Fallback auf statische Anzeige in Pipes oder Nicht-TTY-Kontexten.
Der Daemon-Modus fixiert eine Animation oben im Terminal und loopt sie im Hintergrund, sodass die Shell-Eingabeaufforderung darunter nutzbar bleibt.
xfetch --daemon # Daemon starten
xfetch --daemon-stop # Daemon stoppenDie Animation lauft nur in TTY-Terminals; bei Pipes oder Umleitungen wird das statische Logo angezeigt. Der Daemon-Modus erfordert einen logo_animation-Block mit einem Plugin (z. B. animate-logo). Im Daemon-Modus loopt die Animation unbegrenzt — duration_ms und loop werden ignoriert. Fur eine endliche Animation, die von selbst stoppt, den Daemon-Modus deaktiviert lassen.
Hinweis: Sowohl der animierte Daemon als auch der Live-Statistik-Daemon funktionieren unter Linux, macOS und Windows. Unter Windows rendert der Elternprozess das erste Frame und startet einen Worker, der die Konsole teilt;
--daemon-stop/--daemon-live-stopsignalisieren ihn und er beendet sich selbst, wenn die Shell die Konsole verlässt.
Der Live-Statistik-Daemon (daemon_live) fixiert einen Fetch-Block am oberen Terminalrand und fragt alle daemon_live_refresh Sekunden eine leichte Modul-Teilmenge neu ab. Er ist ein Geschwister des obigen animierten Daemons — der vorhandene animierte Daemon bleibt unverandert. Konfigurationsschlussel: daemon_live, daemon_live_refresh, daemon_live_modules, daemon_live_reload (Hot-Reload der Konfiguration und des aktiven Themes).
xfetch --no-daemon-live # Live-Daemon deaktivieren, auch wenn er in der Konfiguration aktiviert ist
xfetch --daemon-live-stop # laufenden Live-Daemon stoppen
xfetch --daemon-live-reload # Hot-Reload erzwingenUnter dem Windows-Subsystem fur Linux kann die OS-Zeile uber os_wsl_style (nur Linux) mit WSL-Details dekoriert werden:
| Wert | Verhalten |
|---|---|
off |
Schlichter OS-Name, keine Dekoration |
minimal |
Fügt (WSL) an (Standard) |
full |
Fügt die WSL-Version und WSLg (falls vorhanden) an |
xfetch effects installiert, listet und entfernt Intro-Effekte, die die Inhaltszeilen beim Start des Fetch animieren. Der Konfigurationsschlussel effects (ein einzelner Effekt oder eine Liste) bestimmt, welche Effekte in welcher Reihenfolge abgespielt werden:
xfetch effects install <name> # Effekt installieren
xfetch effects list # installierte Effekte auflisten
xfetch effects remove <name> # Effekt entfernen{
"effects": {
"plugin": "decrypt",
"duration_ms": 1500,
"fps": 30
}
}Siehe die Seite Effekte für das vollständige Protokoll, die Konfigurationsfelder und das Schreiben eigener Effekte.
xfetch verwendet mehrere Leistungsoptimierungen:
Die folgenden Proben laufen gleichzeitig mit Rusts thread::scope:
- GPU-Erkennung
- Paketzahlung
- Offentlicher IP-Abruf
Dies reduziert die Gesamtausfuhrungszeit durch parallele Ausfuhrung von E/A-gebundenen Operationen.
Systemressourcen werden nur initialisiert, wenn das entsprechende Modul angefordert wird:
sysinfo::System(CPU, Arbeitsspeicher, Festplatten, Netzwerke) -- wird lazy initialisiertsysinfo::Disks-- wird nur initialisiert, wenn ein Festplattenmodul konfiguriert istsysinfo::Networks-- wird nur initialisiert, wenn ein Netzwerkmodul konfiguriert istsysinfo::Components-- wird nur initialisiert, wenn Temperaturmodule konfiguriert waren
Paketanzahlen und offentliche IP-Abfragen werden mit TTLs zwischengespeichert, um redundante Systemaufrufe und Netzwerkanfragen zu vermeiden.
| Variable | Beschreibung | Verwendet von |
|---|---|---|
USER / LOGNAME |
Aktueller Benutzername | Kernmodule (user) |
SHELL |
Aktueller Shell-Pfad | Kernmodule (shell) |
HOME |
Home-Verzeichnispfad | Kernmodule, Plugin-Erkennung |
TERM_PROGRAM |
Terminalemulator-Name | Kernmodule (terminal) |
TERM |
Terminaltyp | Kernmodule (terminal) |
WT_SESSION |
Windows-Terminal-Sitzung | Kernmodule (terminal) |
XDG_CURRENT_DESKTOP |
Desktop-Umgebung | Kernmodule (wm) |
DESKTOP_SESSION |
Desktop-Sitzungsname | Kernmodule (wm) |
XFETCH_PLUGIN_REPO |
Plugin-Repository-URL | Plugin-Installation |
XFETCH_PLUGIN_DEV_DIR |
Plugin-Entwicklungsverzeichnis | Plugin-Erkennung |
GITHUB_USER |
GitHub-Benutzername | github-stats-Plugin |
GH_TOKEN / GITHUB_TOKEN |
GitHub-Token, um das API-Rate-Limit für Updates zu erhöhen | xfetch update |
CARGO_NET_GIT_FETCH_WITH_CLI |
Git-CLI-Abruf erzwingen | Plugin-Builds |
{ "disable_cache": true }