Files
kalina-ci/shell
Kalina 78d4ed333c feat(shell): Ptyxis fuer Ubuntu 26 und Wayland einrichten
Ubuntu 26.04 bringt GNOME 50 und damit Ptyxis als Standard-Terminal (Wayland-nativ). install.sh legt die Palette als ~/.local/share/org.gnome.Ptyxis/palettes/KalinaCI.palette ab und haengt sie per gsettings (relocatable Schema org.gnome.Ptyxis.Profile) an jedes Profil; ohne Profil nennt es den Weg von Hand. Neue Vorlage shell/palettes/KalinaCI.palette, README-Abschnitt mit echtem Wayland-Screenshot (74,9 % Tinte, 11,9 % Titelbar, ANSI-Farben innerhalb 2/255).
2026-11-02 19:22:46 +01:00
..

Kalina CI in der Shell

Prompt und Terminal-Palette in derselben Farbwelt wie das VS-Code-Theme (themes/kalina-ci-dark.json). Der Prompt ist ein eigenstaendiges zsh-Modul, kein oh-my-zsh und kein powerlevel10k noetig.

┌─ kalina  ~/kalina-ci · main ✚1 ✎2 · 4.2s
└─ ❯
Farbe Wert Rolle
Tinte #0B0F14 Flaeche
Knochenweiss #F5F5EF Text, Pfad
Markenrot #C1121F nur Grafik (Pfeil, Cursor) — 3,09:1 auf Tinte
Text-Rot #E0454F Fehlercode, Akzent — 4,70:1 auf Tinte
Salbei #7FA88C nur Git „hinzugefuegt"
Steel #3A4250 Linien
Muted #8A94A2 Hostname

zsh ist Pflicht

Der Prompt ist zsh-Syntax in ~/.zshrc. In bash, fish oder sh passiert nichts — auch dann nicht, wenn die Datei korrekt geschrieben wurde. Deshalb:

  1. Fehlt zsh, installiert install.sh ihn selbst — apt-get, dnf, pacman, zypper oder apk, je nach System. Der Versuch steht als erste Zeile im Shell-Teil.
  2. Geht das nicht (kein bekannter Paketmanager, oder sudo verlangt ein Passwort ohne -n), bricht der Shell-Teil vor dem ersten Schreibzugriff ab, nennt den genauen Befehl und endet mit Exit 1. ~/.zshrc bleibt dann unangetastet — ein Eintrag dort waere in bash ohnehin wirkungslos.
  3. Login-Shell: chsh -s <zsh> laeuft am Ende (abschaltbar mit --no-chsh). Wirksam wird es erst in der naechsten Sitzung: exec zsh fuer sofort, sonst neu einloggen.

Wer zsh von Hand nachzieht:

sudo apt-get install -y zsh     # Debian/Ubuntu
sudo dnf install -y zsh         # Fedora
sudo pacman -S --needed zsh     # Arch
sudo zypper install -y zsh      # openSUSE
sudo apk add zsh                # Alpine
bash install.sh                 # danach erneut

Installation auf einer neuen Maschine

# oder direkt, ohne Klon (Repo ist oeffentlich lesbar):
# curl -fsSLo install.sh https://gitea.m-m.bio/mm/kalina-ci/raw/branch/main/shell/install.sh
git clone https://gitea.m-m.bio/mm/kalina-ci.git
cd kalina-ci/shell
./install.sh --dry-run     # zeigen, was passieren wuerde
./install.sh               # ausfuehren

Das Skript ist idempotent, sichert jede Datei nach .vor-kalina-ci-<stempel> und laesst sich in Teilen fahren:

Schalter Wirkung
--dry-run nichts schreiben, nur anzeigen
--shell-only nur zsh + Prompt
--terminal-only nur Terminal-Palette
--no-chsh Login-Shell nicht umstellen (Prompt bleibt, bis du zsh startest)

Erkannt und eingerichtet werden: foot (~/.config/foot/foot.ini, [colors-dark]), qterminal (~/.local/share/qterminal-ci/…/KalinaCI.colorscheme plus ~/.config/qterminal.org/qterminal.ini und ein environment.d-Eintrag, weil qtermwidget6 nur XDG_DATA_DIRS durchsucht), xfce4-terminal (~/.config/xfce4/terminal/terminalrc und xfconf-query, sonst gewinnt das GTK-Theme) sowie xterm (~/.Xresources, aktiv nach xrdb -merge).

Ptyxis — seit Ubuntu 26.04 das Standard-Terminal (GNOME 50, Wayland-nativ) — wird zusaetzlich eingerichtet, wenn es neben einem der anderen liegt: Palette als Datei nach ~/.local/share/org.gnome.Ptyxis/palettes/KalinaCI.palette, dann per gsettings an jedes vorhandene Profil gehaengt:

gsettings set "org.gnome.Ptyxis.Profile:/org/gnome/Ptyxis/Profiles/<uuid>/" palette "KalinaCI"

Die UUIDs stehen in gsettings get org.gnome.Ptyxis profile-uuids. Vor dem ersten Start von Ptyxis gibt es kein Profil — dann legt das Skript nur die Datei ab und nennt den Weg von Hand (Einstellungen → Aussehen → Palette, gegebenenfalls „Alle Paletten anzeigen"). Die Vorlage allein, ohne Skript:

mkdir -p ~/.local/share/org.gnome.Ptyxis/palettes
curl -fsSLo ~/.local/share/org.gnome.Ptyxis/palettes/KalinaCI.palette \
  https://gitea.m-m.bio/mm/kalina-ci/raw/branch/main/shell/palettes/KalinaCI.palette

shell/palettes/KalinaCI.palette ist die Vorlage; der Heredoc-Block in install.sh traegt dieselben Werte und muss beim Aendern mitgezogen werden.

Schalter im Prompt

Variable Wirkung
KALINA_CI_PROMPT=0 Prompt abschalten (Modul wird nicht geladen)
KALINA_CI_NO_NEWLINE=1 keine Leerzeile vor dem Prompt
KALINA_CI_TRUECOLOR=0|1 Farbmodus erzwingen (sonst Automatik)

Fallen, die beim Ausrollen aufgefallen sind

  • Truecolor kommt per SSH nicht an. COLORTERM wird nicht uebertragen, remote greift der 256-Farben-Ersatz (231/145/60/161 statt exakt). Das ist gewollt.
  • Der erste Prompt darf kein ✗1 zeigen. precmd liest $? aus dem Ende der .zshrc; das Modul setzt den ersten echten Prompt deshalb auf 0.
  • p10k wird abgeloest, nicht umgef aerbt. Wer ~/.p10k.zsh behaelt, muss ZSH_THEME="" setzen und die Instant-Prompt-Zeilen samt fi auskommentieren — sonst startet jede Shell mit parse error near 'fi'.
  • Ubuntu 26: Ptyxis statt GNOME Terminal. Die Palette ist eine GKeyFile-Datei im Benutzerverzeichnis, die Auswahl haengt aber am Profil (dconf) — Datei allein aendert nichts.
  • gsettings braucht das relocatable Schema. org.gnome.Ptyxis.Profile ist ohne Pfad nicht adressierbar; der Aufruf muss org.gnome.Ptyxis.Profile:/org/gnome/Ptyxis/Profiles/<uuid>/ heissen, sonst bricht er mit „is relocatable and needs a :path" ab.
  • Login-Shell-Wechsel: nicht-interaktive zsh-Aufrufe (ssh host '…') brechen bei leerem Glob ab, bash nicht. Das Modul setzt deshalb no_nomatch in ~/.zshenv.