Schnell alle Infos auf einen Blick: Hardware, Software, garniert mit dem Logo der Distribution. Und dabei auch noch dekorativ aussehen, das war die Aufgabe von Neofetch. Doch im April hat sein Entwickler das Tool in Rente geschickt und das Github-Repository archiviert. Mit fastfetch steht ein vielseitig konfigurierbarer Nachfolger bereit, um Systeminformationen samt Distributionslogo in einem Terminalfenster anzuzeigen.
Wozu braucht man das?
Neofetch ist beliebt, weil man damit schön einem Desktop-Screenshot die zugehörigen Infos mitgeben kann, wie Desktop-Umgebung, Window-Manager, Theme, Icontheme, Schriftart und Hintergrundbild. Das macht es für andere einfacher, solche Sachen nachzubauen. Die meisten Distributionen bringen es das Tool in den Paketquellen mit, doch künftig könnten mangels Updates zunehmend Probleme auftreten. Inzwischen gibt es eine ganze Reihe von Alternativen zu neofetch, eine davon ist fastfetch. Das kleine Kommandozeilen-Tool gibt ausgewählte Systeminformationen in einem Terminalfenster aus und dekoriert die Ausgabe mit dem Logo der Linux-Distribution. Aufrufen kann ich das Tool einfach mit dem Kommando fastfetch
.
Fertige Konfigurationen: Presets
Wie die Ausgabe von fastfetch aussehen kann, das zeigen Presets, die das Programm mitbringt. Sie demonstrieren die verfügbaren Module, zeigen verschiedene Farben, Linien, Punkte, Trenner und so weiter. Um fastfetch mit einem Preset zu starten, gibt man dem Aufruf einen passenden Parameter mit. Und zwar --config
oder kurz -c
.
Alle verfügbaren Presets zeigt der Befehl fastfetch --list-presets
. Unter Nobara und Manjaro bringt fastfetch ein paar Beispielkonfigurationen vergleichbarer Tools mit, zum Beispiel neofetch, archey, paleofetch und screenfetch. Die kann ich mit dem gleichnamigen Parameter aufrufen. Zum Beispiel fastfetch -c archey
.
Besonders groß sind die Unterschiede nicht. Spannender sind die eigenen Presets von fastfetch. Die liegen in einem Unterverzeichnis examples und tragen im Dateinamen die Zahlen 2 bis 24. Aufrufen kann ich sie mit fastfetch -c examples/NUMMER
. Also beispielsweise fastfetch -c examples/12
. Die Presets lassen sich gut als Vorbild für eigene Konfigurationen nutzen.
Eigene fastfetch-Konfiguration
fastfetch speichert seine Konfiguration in einer JSONC-Datei. Die bearbeite ich am besten mit einem Editor, der das Syntaxhighlighting kennt und entsprechend vervollständigt, wie beispielsweise die Open-Source-Version von VSCode. Die steht unter dem Namen Code OSS als Flatpak breit.
Für eine eigene Konfiguration muss ich nicht bei Null anfangen, sondern lasse fastfetch zunächst mit folgendem Kommando ein Grundgerüst bauen:
fastfetch --gen-config
Der Befehl legt im Home-Verzeichnis unter ~/.config/fastfetch die Datei config.jsonc an. Die öffne ich anschließend im Editor und kann dann damit experimentieren.
Module
Wenn ich im Terminalfenster fastfetch
eingebe, liefert der Befehl die Ausgabe der soeben generierten Datei. Jede Zeile entspricht dabei einem Modul. Um herauszufinden, welche Module es gibt, tippe ich
fastfetch -c all
Bei mir listet fastfetch dann sogar das Focusrite Audiointerface auf, Datum und Zeit, jede einzelne Partition, die Anzahl der Pakete, wann ich mich eingeloggt habe und sogar den Wetterbericht.
Um einzelne Zeilen aus der Anzeige zu entfernen, setze ich an den Zeilenanfang zwei Schrägstriche (//) und speichere die Datei. Beim nächsten Aufruf fehlt die Zeile dann. Auskommentieren ist in diesem Fall besser als löschen, so kann ich das Modul bei Bedarf schnell wieder hinzufügen, wenn ich es mir anders überlege.
Feintuning
Wie man Linien, Punkte und Farben definiert, zeigen die Presets. Die liegen im Verzeichnis /usr/share/fastfetch/presets/examples. Wenn Ihr so wie ich Code OSS als Flatpak installiert habt, kann der Editor übrigens vermutlich nicht auf dieses Verzeichnis zugreifen. Dann kopiere ich entweder die Datei im Dateimanager ins Home-Verzeichnis kopieren und öffne sie dort, oder ich passe die Zugriffsrechte des Editors in den Plasma-Systemeinstellungen oder mit Flatseal an.
JSON
Die Module so wie in der Standardkonfiguration einfach untereinander aufzulisten ist die einfachste Konfigurationsmethode. Für eine bessere Aufteilung helfen Leerzeilen, die eine eigene Zeile "break",
ergänzt.
Will ich Details wie die Farbe anpassen, Trenner und Symbole einfügen, muss ich stattdessen JSON-Syntax schreiben. Statt der kurzen Zeile "os"
kann ich zum Beispiel in zwei geschweiften Klammern mehrere Name-Wert-Paare angeben.
{
"type": "os",
"key": "OS",
"keyColor": "red"
},
Dabei definiert „type“ das Modul, „key“ legt die Beschreibung fest und „keyColor“ bestimmt die Farbe. Weitere Beispiele gibt es in den Presets.
Distributions-Logo
fastfetch ergänzt in der Regel automatisch das Logo der Distribution. Das lässt sich aber auch ändern und stattdessen ein anderes oder eigenes Logo verwenden. Auch die Abstände kann ich anpassen oder nur ein Mini-Logo anzeigen. Welche Distributionslogos es gibt, verrät der Befehl
fastfetch --list-logos
Um ein bestimmtes Logo aus der Liste anzeigen – zum Beispiel das von SteamOS – tippe ich fastfetch --logo SteamOS
. Will ich die Miniversion eines Logos zeigen, geht das mit fastfetch --logo-type small
.
Damit das Logo nicht so am Rand klebt, kann ich einen Eintrag in der Konfigurationsdatei für das Logo anlegen und mit "padding:"
Abstände definieren. Zum Beispiel links mit left
und rechts mit right
oder oben mit top
.
Prinzipiell kann fastfetch statt der Distro-Logos auch ein eigenes Bild anzeigen, etwa eine PNG-Datei. Das funktioniert aber nicht in allen Terminalprogrammen. Unter Umständen geht es aber, wenn man fastfetch mit --logo
und dem Pfad zur Datei aufruft. Ein vollständiger Eintrag mit eigenem Bild statt Logo sieht dann in etwa so aus:
"logo": {
"source": "~/.config/fastfetch/pinguin_teal_rund.png",
"type": "kitty",
"width": 25,
"padding": {
"right": 4,
"left": 4,
"top": 1
Icons & Symbole
Die Beispielkonfigurationen zeigen häufig kleine Symbole bei den Beschreibungen oder als Trenner. Um die einzufügen, gibt es mehrere Möglichkeiten. fastfetch kennt bereits zu jedem Modul ein Icon. Um es anzuzeigen, muss ich oben in der Konfiguration einen Abschnitt display
einfügen. Der sieht beispielsweise folgendermaßen aus:
"display": {
"separator": " ➜ ",
"color": {
"separator": "dim_"
},
"key": {
"type": "both",
"paddingLeft": 0
}
Als Separator kann ich ein Zeichen eingeben, das dann direkt vor den Infos steht, im Beispiel ist es ein kleiner Pfeil, den ich einfach per Copy & Paste aus KCharSelect eingefügt habe. Alternativ kann man auch direkt Unicode-Zeichen schreiben.
Als Farbe stehen nur bestimmte Optionen zur Verfügung. Steht nichts zwischen den Anführungszeichen, verrät Code OSS, welche Werte möglich sind. Im Beispiel sorgt dim_
für einen grauen Pfeil. "key"
schaltet die Icons an- oder ab. Der Wert both
zeigt sowohl Icon als auch Beschreibung, string
zeigt nur den Text, icon
nur das Icon und bei none
wird keins von beiden angezeigt.
Die Konfiguration von fastfetch bietet viel Platz für Spielereien. Wer nicht soviel Zeit hat, kann ein Preset nutzen und nur Module auswählen.
Kann ich mir fastfetch auch als motd beim SSH Login anzeigen lassen? Auf der github docs war das jetzt nicht sofort eindeutig.