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).
This commit is contained in:
Kalina committed 2026-11-02 19:22:46 +01:00
1 parent d977a9f856
commit 78d4ed333c
7 files changed
+175 -5

No files matched your search

+13
View File
@@ -4,6 +4,19 @@ Format: Datum — was — warum. Die CI beginnt versioniert am 2026-10-23; davor
sie verstreut (Marke in `brand/`, Dokument-CSS im Open-WebUI-Skill) und wurde nicht sie verstreut (Marke in `brand/`, Dokument-CSS im Open-WebUI-Skill) und wurde nicht
versioniert. versioniert.
## 1.3.2 — 2026-11-02
- **Ubuntu 26 und Wayland: Ptyxis wird eingerichtet.** Seit Ubuntu 26.04 ist Ptyxis das
Standard-Terminal (GNOME 50, Wayland-nativ). `install.sh` legt die Palette als
`~/.local/share/org.gnome.Ptyxis/palettes/KalinaCI.palette` ab und haengt sie per
`gsettings` an jedes vorhandene Profil — kein `sudo`, kein Paket. Fehlt das Profil noch,
sagt es das statt still nichts zu tun.
- Neue Vorlage `shell/palettes/KalinaCI.palette` — die Palette einzeln, ohne Skript
installierbar.
- Startseite: Abschnitt „Ubuntu 26 und Wayland" mit echtem Wayland-Screenshot
(`assets/vorschau-ptyxis.png`): 74,9 % `#0B0F14`, 11,9 % Titelbar `#0E131A`, ANSI-Rot und
-Gruen innerhalb 2/255.
## 1.3.1 — 2026-11-02 ## 1.3.1 — 2026-11-02
- **zsh ist Pflicht, und das Skript sagt es jetzt auch.** `shell/install.sh` installiert zsh - **zsh ist Pflicht, und das Skript sagt es jetzt auch.** `shell/install.sh` installiert zsh
+22
View File
@@ -75,6 +75,28 @@ und **xterm**. Schalter:
`--shell-only`, `--terminal-only`, `--no-chsh`. Details und die Fallen beim Ausrollen stehen in `--shell-only`, `--terminal-only`, `--no-chsh`. Details und die Fallen beim Ausrollen stehen in
[`shell/README.md`](shell/README.md). [`shell/README.md`](shell/README.md).
### Ubuntu 26 und Wayland
Ubuntu 26.04 bringt GNOME 50 und damit **Ptyxis** als Standard-Terminal: Wayland-nativ, ohne
X11-Rueckfall. Der Prompt laeuft dort unveraendert (zsh ist in Ubuntu dabei), die Palette kommt
als Datei ins Benutzerverzeichnis — kein `sudo`, kein Paket, kein Kompilieren:
```bash
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
```
Danach in Ptyxis: **Einstellungen → Aussehen → Palette „Kalina CI"** (gegebenenfalls
„Alle Paletten anzeigen"). `install.sh` macht beides — Datei ablegen und die Palette am Profil
eintragen (dconf-Schluessel `org.gnome.Ptyxis.Profile:…/palette`), samt `DejaVu Sans Mono 12`.
Gibt es noch kein Profil, sagt es das und nennt den Weg von Hand.
![Ptyxis unter Wayland mit der CI-Palette](assets/vorschau-ptyxis.png)
Gemessen an einem echten Wayland-Screenshot (Ptyxis 50.1, VTE 0.84): 74,9 % der Flaeche
`#0B0F14`, 11,9 % Titelbar `#0E131A`, ANSI-Rot und -Gruen innerhalb 2/255 der Vorgabe.
## Wie Agenten das nutzen ## Wie Agenten das nutzen
Zwei Wege, gleicher Inhalt: Zwei Wege, gleicher Inhalt:
+7 -3
View File
@@ -2,7 +2,7 @@
name: kalina-ci name: kalina-ci
description: Use when a PDF, page or slide must carry the KALINA corporate identity. One CSS, one CLI, one source. description: Use when a PDF, page or slide must carry the KALINA corporate identity. One CSS, one CLI, one source.
metadata: metadata:
version: "1.3.1" version: "1.3.2"
stand: "2026-11-02" stand: "2026-11-02"
--- ---
@@ -169,8 +169,12 @@ selbst; kann es das nicht (kein Paketmanager, `sudo` ohne Passwort), bricht der
Exit 1 ab und nennt den Befehl, statt einen wirkungslosen `~/.zshrc`-Eintrag zu hinterlassen. Exit 1 ab und nennt den Befehl, statt einen wirkungslosen `~/.zshrc`-Eintrag zu hinterlassen.
Danach `exec zsh` oder neu einloggen, sonst greift die Login-Shell nicht. Danach `exec zsh` oder neu einloggen, sonst greift die Login-Shell nicht.
Das Skript ist idempotent, sichert jede Datei und erkennt foot, qterminal, xfce4-terminal Das Skript ist idempotent, sichert jede Datei und erkennt foot, ptyxis, qterminal,
sowie xterm. Die Paletten sind gemessen, nicht geraten — die drei Fallen (qtermwidget6 xfce4-terminal sowie xterm. **Ubuntu 26** bringt GNOME 50 und damit **Ptyxis** als
Standard-Terminal (Wayland): Palette als
`~/.local/share/org.gnome.Ptyxis/palettes/KalinaCI.palette` ablegen und per
`gsettings set "org.gnome.Ptyxis.Profile:/org/gnome/Ptyxis/Profiles/<uuid>/" palette "KalinaCI"`
am Profil eintragen — die Datei allein genuegt nicht. Die Paletten sind gemessen, nicht geraten — die drei Fallen (qtermwidget6
kennt kein Benutzerverzeichnis, xfconf überstimmt `terminalrc`, foot will `[colors-dark]`) kennt kein Benutzerverzeichnis, xfconf überstimmt `terminalrc`, foot will `[colors-dark]`)
stehen in `shell/README.md`. stehen in `shell/README.md`.
Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

+28
View File
@@ -72,6 +72,29 @@ weil qtermwidget6 nur `XDG_DATA_DIRS` durchsucht), **xfce4-terminal**
(`~/.config/xfce4/terminal/terminalrc` **und** `xfconf-query`, sonst gewinnt (`~/.config/xfce4/terminal/terminalrc` **und** `xfconf-query`, sonst gewinnt
das GTK-Theme) sowie **xterm** (`~/.Xresources`, aktiv nach `xrdb -merge`). 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:
```sh
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:
```sh
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 ## Schalter im Prompt
| Variable | Wirkung | | Variable | Wirkung |
@@ -89,5 +112,10 @@ das GTK-Theme) sowie **xterm** (`~/.Xresources`, aktiv nach `xrdb -merge`).
- **p10k wird abgeloest, nicht umgef aerbt.** Wer `~/.p10k.zsh` behaelt, muss - **p10k wird abgeloest, nicht umgef aerbt.** Wer `~/.p10k.zsh` behaelt, muss
`ZSH_THEME=""` setzen und die Instant-Prompt-Zeilen samt `fi` auskommentieren — `ZSH_THEME=""` setzen und die Instant-Prompt-Zeilen samt `fi` auskommentieren —
sonst startet jede Shell mit `parse error near 'fi'`. 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 - **Login-Shell-Wechsel:** nicht-interaktive zsh-Aufrufe (`ssh host '…'`) brechen bei
leerem Glob ab, bash nicht. Das Modul setzt deshalb `no_nomatch` in `~/.zshenv`. leerem Glob ab, bash nicht. Das Modul setzt deshalb `no_nomatch` in `~/.zshenv`.
+78 -2
View File
@@ -233,12 +233,88 @@ do_terminal() {
chosen=xfce4-terminal; xfce_setup chosen=xfce4-terminal; xfce_setup
fi fi
# Ptyxis ist seit Ubuntu 26.04 das Standard-Terminal (GNOME 50, Wayland). Es wird
# zusaetzlich eingerichtet, weil es neben foot/qterminal liegen kann.
if command -v ptyxis >/dev/null && [ "$chosen" != ptyxis ]; then
chosen="${chosen:-ptyxis}"; ptyxis_setup
fi
# xterm-Ressourcen zusaetzlich, wenn xterm daneben installiert ist. # xterm-Ressourcen zusaetzlich, wenn xterm daneben installiert ist.
if command -v xterm >/dev/null && [ "$chosen" != xterm ]; then if command -v xterm >/dev/null && [ "$chosen" != xterm ]; then
chosen="${chosen:-xterm}"; xterm_setup chosen="${chosen:-xterm}"; xterm_setup
fi fi
[ -n "$chosen" ] || warn "kein bekanntes Terminal gefunden (foot, qterminal, xfce4-terminal, xterm)" [ -n "$chosen" ] || warn "kein bekanntes Terminal gefunden (foot, ptyxis, qterminal, xfce4-terminal, xterm)"
}
ptyxis_setup() {
local dir="$HOME/.local/share/org.gnome.Ptyxis/palettes"
local file="$dir/KalinaCI.palette"
if [ -f "$file" ] && grep -qF "Name=Kalina CI" "$file"; then
ok "ptyxis: Palette liegt schon in ~/.local/share/org.gnome.Ptyxis/palettes"
else
[ -d "$dir" ] || run mkdir -p "$dir"
backup "$file"
if [ "$DRY" = 0 ]; then
cat > "$file" <<'PTYXIS'
# Kalina CI — Palette fuer Ptyxis (Ubuntu 26 Standard-Terminal, Wayland).
# Kein sudo noetig: diese Datei im Benutzerverzeichnis genuegt.
# Quelle im Repo: shell/palettes/KalinaCI.palette — bitte gleich halten.
[Palette]
Name=Kalina CI
Primary=false
Foreground=#F5F5EF
Background=#0B0F14
Cursor=#C1121F
CursorForeground=#0B0F14
TitlebarBackground=#0E131A
TitlebarForeground=#8A94A2
Color0=#1A212A
Color1=#E0454F
Color2=#7FA88C
Color3=#C7A46B
Color4=#7E93AD
Color5=#BE8FA0
Color6=#8FB3B3
Color7=#F5F5EF
Color8=#5C6675
Color9=#FF6B75
Color10=#9CC2A8
Color11=#E0C08A
Color12=#A3B6CB
Color13=#D3A8B8
Color14=#AECBCB
Color15=#FFFFFF
PTYXIS
fi
ok "ptyxis: KalinaCI.palette geschrieben"
fi
# Palette muss noch am Profil haengen; das ist ein dconf-Schluessel, keine Datei.
if ! command -v gsettings >/dev/null; then
warn "ptyxis: gsettings fehlt — Palette von Hand waehlen: Einstellungen -> Aussehen -> Palette"
return 0
fi
local uuids uuid
# gsettings liefert '@as []' als leere Liste — das darf kein Profilpfad werden.
uuids="$(gsettings get org.gnome.Ptyxis profile-uuids 2>/dev/null \
| sed "s/^@as //; s/[][]//g; s/[ ,]//g; s/'//g")"
if [ -z "$uuids" ]; then
warn "ptyxis: noch kein Profil vorhanden — Ptyxis einmal oeffnen, dann dieses Skript erneut starten"
say " Einstellungen -> Aussehen -> Palette 'Kalina CI' (ggf. 'Alle Paletten anzeigen')"
return 0
fi
for uuid in $uuids; do
printf "%s" "$uuid" | grep -qE "^[0-9a-f]{32}$" || { warn "ptyxis: unerwartete Profilkennung '$uuid' — Palette von Hand waehlen"; continue; }
run gsettings set "org.gnome.Ptyxis.Profile:/org/gnome/Ptyxis/Profiles/$uuid/" palette "KalinaCI" \
&& ok "ptyxis: Palette am Profil ${uuid:0:8} gesetzt"
done
run gsettings set org.gnome.Ptyxis use-system-font false
run gsettings set org.gnome.Ptyxis font-name "DejaVu Sans Mono 12"
ok "ptyxis: DejaVu Sans Mono 12 (Systemschrift aus)"
} }
foot_setup() { foot_setup() {
@@ -492,7 +568,7 @@ RC=0
say "" say ""
step "Fertig" step "Fertig"
if [ "$RC" = 0 ] && [ "$ZSH_OK" = 1 ]; then if [ "$RC" = 0 ] && { [ "$DO_SHELL" = 0 ] || [ "$ZSH_OK" = 1 ]; }; then
ok "neu starten: exec zsh — oder einmal neu einloggen (Login-Shell greift erst dann)" ok "neu starten: exec zsh — oder einmal neu einloggen (Login-Shell greift erst dann)"
elif [ "$RC" = 0 ]; then elif [ "$RC" = 0 ]; then
warn "ohne zsh kein Prompt — im echten Lauf bricht der Shell-Teil hier ab" warn "ohne zsh kein Prompt — im echten Lauf bricht der Shell-Teil hier ab"
+27
View File
@@ -0,0 +1,27 @@
[Palette]
Name=Kalina CI
Primary=false
Foreground=#F5F5EF
Background=#0B0F14
Cursor=#C1121F
CursorForeground=#0B0F14
TitlebarBackground=#0E131A
TitlebarForeground=#8A94A2
Color0=#1A212A
Color1=#E0454F
Color2=#7FA88C
Color3=#C7A46B
Color4=#7E93AD
Color5=#BE8FA0
Color6=#8FB3B3
Color7=#F5F5EF
Color8=#5C6675
Color9=#FF6B75
Color10=#9CC2A8
Color11=#E0C08A
Color12=#A3B6CB
Color13=#D3A8B8
Color14=#AECBCB
Color15=#FFFFFF