Gruvnode & ThinkPad

Gruvnode: Mein einfacher XMonad-Desktop vom T480 zum X1 Carbon

Deine Konfiguration, kein Gruvnode-Konto

Der Desktop wird lokal eingerichtet. Pacman, Git und AUR laden Software aus dem Netz; Chrome und weitere Anwendungen haben eigene Datenschutzeinstellungen.

In diesem Artikel
  1. Zwei Laptop-Generationen, zwei Profile
  2. Wie entsteht daraus ein vollständiger Desktop?
  3. Was macht der X1-Installer genau?
  4. Installation in nachvollziehbaren Schritten
  5. Die ersten Minuten auf dem Desktop
  6. XMonad und Xmobar miteinander verstehen
  7. Audio, WLAN und Akku gezielt prüfen
  8. Updates und der Rückweg zu eigenen Dateien
  9. Datenschutz und geprüfte Quellen

Gruvnode ist mein persönlicher Laptop-Desktop: überschaubar, mit der Tastatur bedienbar und nach einer Neuinstallation wieder einrichtbar. Der Aufbau begann auf meinem früheren ThinkPad T480. Heute liegt das aktive Profil für meinen ThinkPad X1 Carbon im selben Repository.

Mein „easy-going installer“ nimmt wiederkehrende Einrichtungsschritte ab. Gleichzeitig bleiben die Konfigurationen offen lesbar. Dieser Artikel erklärt den aktuellen Arch-Aufbau, den Ablauf des Installers und die Verbindung zwischen XMonad und Xmobar. Für die Haskell-Grundlagen beginnt der XMonad-Einstieg mit einer kleineren Datei.

Zwei Laptop-Generationen, zwei Profile

ProfilSystemRolle im Repository
thinkpad-t480/Debian 13, X11 und XMonadHistorischer Aufbau des früheren Laptops
thinkpad-x1-carbon/Arch Linux, X11 und XMonadAktuelles Profil für meinen X1 Carbon mit 16 GB RAM

Der T480-Stand bleibt als nachvollziehbare Vorgeschichte erhalten. Seine Intel-Xorg- und Energieeinstellungen werden nicht automatisch auf den X1 übertragen. Das neue Profil nutzt die übliche Xorg-Modesetting-/libinput-Grundlage und enthält weder die alte TLP-Konfiguration noch die T480-Powertweaks.

Wiederverwendbare Desktop-Entscheidungen dürfen mit dem Laptop umziehen. Hardwareanpassungen müssen dagegen am aktuellen Gerät begründet sein. Mehr zu meinem Laptop-Alltag steht im Workstation-Bereich des Museums.

Wie entsteht daraus ein vollständiger Desktop?

  • XMonad ordnet Fenster und verwaltet die Tastenkürzel.
  • Xmobar zeigt Uhr, Akku und Lautstärke; die Verbindung zu XMonad ist vorbereitet.
  • Rofi und Kitty öffnen Programme und ein Terminal.
  • Picom und feh übernehmen Compositing und das Hintergrundbild.
  • PipeWire und WirePlumber liefern Audio und dessen Verwaltung.
  • NetworkManager mit iwd kümmert sich um die Netzwerk- beziehungsweise WLAN-Anbindung.
  • BlueZ, Blueman, Thunar und Mousepad ergänzen Bluetooth und alltägliche Dateiarbeit.

Dazu kommen Firmwarepakete, Diagnosewerkzeuge, OBS und weitere Helfer. Fastfetch wird installiert, aber nicht automatisch in deine Shell-Startdatei geschrieben. Die Gruvnode-Konfiguration bleibt damit von deiner persönlichen Shellgestaltung getrennt.

Was macht der X1-Installer genau?

thinkpad-x1-carbon/install.sh prüft zunächst, ob es auf Arch läuft und als normaler Benutzer gestartet wurde. sudo wird gezielt für Systemschritte verwendet. Der Ablauf ist im Quellcode klar aufgeteilt:

  1. Arch vollständig aktualisieren und die offizielle Paketliste installieren.
  2. yay bei Bedarf aus dem AUR bauen und Google Chrome über yay installieren.
  3. NetworkManager für iwd konfigurieren, Netzwerk und Bluetooth aktivieren und die Audio-Benutzerdienste starten.
  4. Die verwalteten Benutzerdateien und Helferskripte an ihre Zielorte kopieren.
  5. Das gemeinsame Wallpaper verlinken und xmonad --recompile ausführen.

Gruvnode installiert nicht Arch selbst. Es setzt auf einem bereits installierten System mit normalem Benutzer und sudo auf. Chrome gehört derzeit zum X1-Profil. Offizielle Pakete kommen über pacman; der AUR-Aufbau ist ein eigener Schritt. Lies die Paketliste und AUR-Builddateien, bevor du diesen Aufbau übernimmst.

Der Installer verwendet automatische Bestätigungen für Paketaktionen und startet NetworkManager neu. Führe den ersten Lauf daher lokal am Laptop aus und plane die Netzunterbrechung ein. Ein kleines Desktop-Setup bedeutet nicht, dass der Installer ausschließlich eine einzelne Haskell-Datei verändert.

Installation in nachvollziehbaren Schritten

Starte mit einer funktionierenden Arch-Installation. Prüfe vor einem vollständigen Update die Arch-Neuigkeiten auf nötige manuelle Eingriffe. Falls Git fehlt, kannst du es mit einem vollständigen Update installieren:

sudo pacman -Syu --needed git

Hole anschließend das Repository:

git clone https://github.com/dennishilk/gruvnode.git

Wechsle ausdrücklich in das aktuelle Profil:

cd gruvnode/thinkpad-x1-carbon

Lies die README und install.sh. Die mitgelieferte Validierung prüft unter anderem Dateien, Shell-Syntax und erwartete Konfigurationseinträge:

bash tests/validate.sh

Optionale Shellcheck- und Haskell-Prüfungen werden nur ausgeführt, wenn deren Werkzeuge vorhanden sind. Ein bestandener Check ist deshalb kein Hardwaretest. Mache den Installer ausführbar:

chmod +x install.sh

Starte ihn als normaler Benutzer, ohne ein vorangestelltes sudo:

./install.sh

Lies die abschließende Ausgabe und gegebenenfalls den Sicherungspfad. Nach der ersten Firmware-/Audio-/WLAN-Einrichtung empfiehlt das Profil einen Neustart. Melde dich danach an einer TTY an und starte die X11-Sitzung:

startx

~/.xinitrc setzt die Desktop-Umgebung und startet XMonad. Der Installer richtet keinen vollständigen grafischen Login-Manager ein.

Die ersten Minuten auf dem Desktop

TastenAktion im X1-Profil
Super + EnterKitty
Super + DRofi
Super + B / O / TChrome / OBS / Thunar
Super + J / KFensterfokus wechseln
Super + H / LHauptbereich verkleinern oder vergrößern
Super + LeertasteTall und Full durchschalten
Super + Shift + RXMonad kompilieren und neu starten
PrintScreenshot unter ~/Pictures/Screenshots/

Mousepad wird über Rofi gestartet und hat bewusst keine eigene Taste. Normale Fenster kacheln, erkannte Dialoge werden zentriert und schwebend behandelt. Die Lautstärketasten verwenden PipeWire über wpctl, die Helligkeitstasten brightnessctl.

XMonad und Xmobar miteinander verstehen

In xmonad.hs verbindet statusBarProp die Statusausgabe mit der X11-Property _XMONAD_LOG. withSB kümmert sich um die dazugehörige Leiste im XMonad-Lebenszyklus. Das Xmobar-Plugin Run XMonadLog kann diese Informationen lesen.

Die aktuelle Xmobar-Vorlage zeigt tatsächlich Uhr, Akku und Lautstärke:

, template = "}{ %date%  %battery%  %volume% "

Obwohl das XMonadLog-Plugin eingerichtet ist, fehlt hier dessen sichtbarer Platzhalter. Wenn du Workspaces und den vorbereiteten Fenstertitel zusätzlich sehen möchtest, sichere zuerst die Datei:

cp -a --backup=numbered ~/.config/xmobar/xmobarrc ~/.config/xmobar/xmobarrc.before-tutorial

Ersetze nur die vorhandene Template-Zeile durch dieses Beispiel:

, template = "%XMonadLog% }{ %date%  %battery%  %volume% "

Lade XMonad neu, damit die verwaltete Leiste erneut startet:

xmonad --restart

Prüfe die linke Anzeige beim Wechsel zwischen Workspaces. Zum Rückweg stelle die ursprüngliche Template-Zeile wieder her und starte erneut. Das installierte Netzwerk-Helferskript wird ebenfalls nicht automatisch in der aktuellen Vorlage angezeigt.

Audio, WLAN und Akku gezielt prüfen

Zeigt die Leiste vol n/a, konnte der Helfer keine nutzbare Standardausgabe abfragen. Beginne mit:

wpctl status

Für Netzwerkgeräte und ihren Status nutze:

nmcli device

NetworkManager verwaltet WLAN mit dem iwd-Backend. Das Profil sieht keine separat aktivierte iwd-Verwaltung vor. Der Akkuhelfer sucht das erste vorhandene BAT*-Gerät, statt BAT0 vorauszusetzen; ein alleinstehendes AC kann hier auch bedeuten, dass er kein Akkugerät gefunden hat.

Für externe Displays prüfst du zunächst xrandr. Die konkreten Namen eines Docks oder Monitors werden nicht vorab behauptet. Auch Webcam- und Audiogeräte müssen am wirklichen Laptop geprüft werden.

Updates und der Rückweg zu eigenen Dateien

Verwaltete vorhandene Benutzerdateien werden vor dem Ersetzen unter ${XDG_STATE_HOME:-~/.local/state}/gruvnode/backups/ in einem datierten Laufordner gesichert. Der Installer zeigt den konkreten Pfad an. Das betrifft seine ausgewählten Dateien und ist keine komplette Systemsicherung oder automatische Deinstallation.

Stelle bei Bedarf einzelne Dateien aus dem gemeldeten Backup wieder her. Kompiliere eine wiederhergestellte XMonad-Datei und starte erst bei Erfolg neu. Paketupdates, AUR-Installationen, Dienste und NetworkManager-Systemeinstellungen haben einen eigenen Rückweg und werden durch das Zurückkopieren einer Desktop-Datei nicht entfernt.

Zum Aktualisieren des Profils wechselst du wieder in seinen Ordner und holst Änderungen:

git pull --ff-only

Prüfe den Diff und die Änderungen vor einem erneuten ./install.sh. Eigene lokale Anpassungen sollten bewusst gesichert werden. Der Backup-Artikel erklärt, welche Pfade und Abhängigkeiten zusätzlich dazugehören.

Datenschutz und geprüfte Quellen

Gruvnode benötigt kein eigenes Konto und lädt deine Konfigurationssicherung nicht automatisch hoch. Softwaredownloads kontaktieren GitHub, Paketquellen und das AUR. Chrome, OBS und andere Programme behalten ihre eigenen Netzwerk- und Datenschutzfunktionen. Leisten und Screenshots können Fenstertitel oder Dateipfade zeigen.

Grundlage sind das aktuelle X1-Profil und der historische T480-Installer, geprüft am 7. Oktober 2026.