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

123 lines
4.6 KiB
Markdown

# 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:**
```json
{
"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:
```scss
$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:
```scss
$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`.