- app: GTK System Settings (tsettings) + Software Hub (thub) + TUI - distro/: camel.toml manifest + MANIFEST.md (Arch + [tanin] repo model) - packaging/: taninux, tanin-desktop (niri metapackage), tanin-greet, tanin-libadwaita, tanin-setup - docs/, data/, LICENSE (GPL-3.0-or-later) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
4.6 KiB
TANINUX → eww: Akzent-Integration (Handoff)
Für die Instanz, die an ~/eww arbeitet. Diese Datei ist der Vertrag, wie
die eww-Bar ihren Akzent von der TANINUX-Appearance-App bekommt.
TL;DR (Kurzanleitung)
- Lies
~/.local/share/taninux/gui.json. - Nimm das Feld
accent_hex(fertiger Hex-String, z. B.#8aac8b). - Setz damit deine eww-Akzentvariablen (
$accent,$accent-dim, die$accent-08/14/22-Washes) und macheww reload. - Reagiere auf Änderungen: watch die Datei (inotify) — TANINUX schreibt sie bei jedem Akzent-Wechsel neu.
Das war's. Der Rest hier ist Detail/Begründung.
Quelle der Wahrheit
Datei: ~/.local/share/taninux/gui.json
(exakt: $XDG_DATA_HOME/taninux/gui.json, Fallback ~/.local/share/...)
Schema:
{
"version": 1,
"color_scheme": "dark",
"accent": "take",
"accent_hex": "#8aac8b",
"accent_label": "Take · green"
}
| Feld | Bedeutung |
|---|---|
accent_hex |
Das relevante Feld. Fertiger Hex des gewählten Fuji-Akzents. |
accent |
interner Key (ume/shinkai/take/chikyu/beni). |
accent_label |
menschlicher Name, nur fürs Anzeigen. |
color_scheme |
system / light / dark — NICHT für deinen Akzent nötig, siehe unten. |
Die Datei existiert erst, nachdem in TANINUX einmal ein Setting geändert wurde.
Wenn sie fehlt: Default-Akzent ume / #8f8aac annehmen.
Was du in eww damit machst
Deine ~/eww/eww.scss hat oben den Variablenblock. Akzent-relevant sind:
$accent: #a39ec4; // bright
$accent-dim: #8f8aac; // muted ← entspricht direkt accent_hex
$accent-08: rgba(163, 158, 196, 0.08);
$accent-14: rgba(163, 158, 196, 0.14);
$accent-22: rgba(163, 158, 196, 0.22);
$acc-l: $accent-dim;
accent_hex ist der gedämpfte Fuji-Ton (= dein bisheriges $accent-dim).
Mapping-Vorschlag:
$accent-dim=accent_hex(1:1)$accent=accent_hex~18 % Richtung Weiß aufgehellt (bright)$accent-08/14/22=rgba(R, G, B, 0.08/0.14/0.22)aus den RGB vonaccent_hex(oder vom bright — wie es bei dir besser aussieht)
In SCSS kannst du das selbst ableiten, ohne die bright-Werte vorzuberechnen:
$accent-dim: #8aac8b; // = accent_hex aus gui.json
$accent: lighten($accent-dim, 8%);
$accent-08: rgba($accent-dim, 0.08);
$accent-14: rgba($accent-dim, 0.14);
$accent-22: rgba($accent-dim, 0.22);
Du musst also nur eine Zeile ($accent-dim) aus gui.json regenerieren.
Die 5 Fuji-Akzente (falls du sie vorab kennen willst)
| key | label | accent_hex (dim) | bright (Referenz) |
|---|---|---|---|
ume |
Ume · violet | #8f8aac |
#a39ec4 |
shinkai |
Shinkai · blue | #8a98ac |
#9fabbb |
take |
Take · green | #8aac8b |
#9fbba0 |
chikyu |
Chikyū · yellow | #aca98a |
#bbb89f |
beni |
Beni · red | #ac8a8c |
#bb9fa1 |
(Quelle der Hexes: taninux/core/theme.py — identisch zur TUI. ume-bright
entspricht deinem aktuellen $accent.)
Hell/Dunkel — NICHT dein Akzent-Job
Das globale Hell/Dunkel läuft über gsettings org.gnome.desktop.interface color-scheme (steht auf prefer-dark). TANINUX steuert das nicht über
gui.json und fasst es bewusst nicht an. Dein eww-Hell/Dunkel (.light-Klasse +
-l-Variablen) bleibt vollständig deine Sache — TANINUX mischt sich da nicht
ein. color_scheme in der JSON ist nur informativ; ignorier es für den Akzent.
Reload-Trigger — bitte abstimmen
TANINUX schreibt gui.json bei jeder Änderung, ruft aktuell aber kein
eww reload auf. Zwei Optionen, einigt euch auf eine:
- (A) eww-Seite watcht
gui.json(z. B.inotifywait/ ein eww-deflisten/ kleines Script) und macht selbsteww reload. → empfohlen, hält eww autark. - (B) TANINUX triggert nach dem Schreiben
eww reload. Sag Bescheid, dann baue ich das in den Appearance-persist()ein (best-effort, nur wenn eww läuft).
Grenzen (wichtig)
- TANINUX fasst
~/eww/**nicht an. Die scss-Verdrahtung machst du. - TANINUX besitzt zusätzlich
~/.config/gtk-4.0/libadwaita.css(globaler GTK4/libadwaita-Akzent via@define-color) — das ist für GTK-Apps, nicht für eww. Nicht damit verwechseln; eww liestgui.json.