#hyprland

Ein Tastendruck, ein fertiger Workspace — tmux, sesh und ein Hyprland-Prompt

tmux gibt mir persistente Sessions, sesh macht sie zu einem deklarativen Session-Manager — und ein Hyprland-Keybind öffnet sie per rofi. Vordefinierte Projekt-Layouts in Nix, ein Window-Pool-Trick, der wiederholte Fensternamen erlaubt, eine Wildcard-Vorlage für jeden Projektordner, und SUPER+s als Tür ins Ganze. Wie aus „erst mal die Panes aufbauen" ein einziger Tastendruck wurde.

Jedes Projekt, das ich anfasse, will dieselbe Bühne: mehrere Shell Fenster, vielleicht ein AI-Agent, daneben Git und Datei-Browser, vielleicht noch eine Live-Preview. Das von Hand aufzubauen — tmux new, splitten, cd, Tools starten — dauert jedes Mal eine Minute, die ich nicht habe. Also habe ich es in fr0st deklariert: tmux für die persistente Bühne, sesh als Session-Manager darüber, und einen Hyprland-Keybind, der das Ganze per rofi aufruft. Ein Tastendruck, ein fertiger Workspace.

Kitty Coziness

Bitmap-Fonts sind gestochen scharf, und keine Vector-Schrift kommt da heran. Kitty ist mein liebster Terminal-Emulator — nur sein Maintainer will Bitmap-Fonts partout nicht unterstützen. Also habe ich einen alten AUR-Patch nach Nix portiert und auf eine aktuelle Kitty-Version gehoben: ein Override, das den Python-Matcher zum Opt-in überredet und die Zell-Metriken aus dem Strike statt aus font-units rechnet. Dazu fontconfig-Pinning, damit Cozette deterministisch auf den 13px-Strike auflöst.

Ich liebe Bitmap-Fonts. Nicht aus Nostalgie, sondern weil sie auf meinem Display schlicht besser aussehen: gestochen scharf, jedes Pixel von Hand gesetzt, kein Antialiasing-Matsch, keine Sub-Pixel-Lotterie. Bei der richtigen Größe ist eine gute Bitmap-Schrift in einem Terminal so ruhig und lesbar, dass keine Vector-Font dagegen anstinken kann — die muss bei kleinen Pixelgrößen immer raten, wo die Kante hin soll, und rät selten so gut wie ein Mensch, der den Glyph Pixel für Pixel hingelegt hat. Meine Lieblingsschrift ist Cozette : eine 13px-Bitmap im Geist von Tamzen und Creep, kompakt, mit großem Unicode-Block.

fr0st — mein NixOS-Flake von der Wurzel bis zum Wallpaper

Sechs Maschinen, zwei Betriebssysteme, ein Repository: fr0st ist mein persönliches flake-parts-Flake, das ThinkPads, einen Desktop, ein MacBook und VMs aus derselben Quelle deklariert. Eine ausführliche Tour durch die Architektur — die lib.system-Fabrik, die rekursive Modul-Discovery mit eigenem Options-Namespace, die Profile-Komposition, das Single-User-Identitätsmodell, Secure Boot via Lanzaboote, verschlüsselte Roots via disko, Remote-Installs mit nixos-anywhere, das SOPS-Schlüsselregister, eigene Pakete und Overlays, und am Ende der Desktop, den das alles ergibt.

Mein Lab ist ein GitOps-Monorepo, aus dem Flux Kubernetes-Cluster reconciled. Aber die Maschinen, von denen aus ich auf dieses Lab schaue — die ThinkPads, der Desktop, das MacBook, ein paar VMs —, haben ihre eigene deklarative Wurzel. Sie heißt fr0st, ist ein flake-parts -Flake, und dieser Beitrag nimmt sie von der Wurzel bis zum Wallpaper auseinander.

Frost auf dem Asphalt, der graue Himmel vor dir

Das Repo ist öffentlich über meinen Radicle -Seed-Node erreichbar:

1# klassisch:
2git clone https://seed.this-is-fine.io/zVi9VheaDwbEgCUQUQ9sLwpHuaMo.git ~/.config/nix
3# oder via Radicle:
4rad clone rad:zVi9VheaDwbEgCUQUQ9sLwpHuaMo

Stöbern lässt es sich im Web unter radicle.network/nodes/seed.this-is-fine.io .