Files
taninux/docs/eww-accent-integration.md
karim 10b88a67bc Initial commit — TANINUX (camel): management app + distro packaging
- 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>
2026-06-18 20:18:30 +02:00

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)

  1. Lies ~/.local/share/taninux/gui.json.
  2. Nimm das Feld accent_hex (fertiger Hex-String, z. B. #8aac8b).
  3. Setz damit deine eww-Akzentvariablen ($accent, $accent-dim, die $accent-08/14/22-Washes) und mach eww reload.
  4. 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 / darkNICHT 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 von accent_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 selbst eww 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 liest gui.json.