Files
taninux/HANDOVER.md
T
karim c5b0848a50 tanin-icons: accent-reactive folder icon theme (replaces Papirus)
New package packaging/tanin-icons/ generating 5 thin themes Tanin-<accent>
that inherit Adwaita and recolour only the folder/place ramp to the muted
Fuji accent (HSL shift keeping per-stop lightness; 16px rasterised so the
size-exact inherited blue PNG can't win).

- style.py: _set_gsettings now also sets icon-theme=Tanin-<accent_key> so
  folders recolour live with the accent.
- desktop.py: hide Tanin-* from the manual icon picker (accent-driven, a
  manual pick would be overridden on the next accent change).
- panel.py: pin-add icon hint Papirus -> Adwaita.
- build/finish-tanin-repo.sh: tanin-icons in OWN_SIMPLE; AUR rebuilds add
  librewolf-bin, arch-update, timeshift-autosnap, xdg-terminal-exec, paru.
- camel.toml: icon_theme=Tanin-<accent>, icons=[adwaita], tanin-icons own
  package + the new rebuilt_aur entries.

Deliberately excludes unrelated in-flight work (calendar/gtklock/
online-accounts/overview-backdrop) still uncommitted in the tree.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 20:41:44 +02:00

6.3 KiB

TANINUX — Handover (Session 2026-06-22)

Context for a fresh instance. Repo: ~/projects/taninux (distro codename camel, niri-only GTK4/libadwaita + eww desktop). User: Karim (German; iterates visually; hates UI jank; blanket perms in ~/projects). UI strings are English.

This session did two things: (A) added packages to the [tanin] binary repo, (B) built a custom accent-reactive icon theme to replace Papirus.


A. New packages in the [tanin] repo

The [tanin] repo is a thin overlay on Arch (own packages + AUR rebuilds), hosted on the Gitea Arch registry. Build/publish scripts in packaging/: build-tanin-repo.sh (no-sudo), finish-tanin-repo.sh (sudo: taninux + AUR rebuilds), publish-tanin-repo.sh (upload to Gitea).

Added to the AUR-rebuild list (build-tanin-repo.sh + finish-tanin-repo.sh):

  • librewolf-bin — default browser. Also a hard dep of tanin-desktop. ⚠ Security: rebuild + republish on every LibreWolf release, else pacman -Syu ships a stale (vulnerable) browser.
  • arch-update, timeshift (+ timeshift-autosnap), xdg-terminal-exec — all hard deps of tanin-desktop now.
  • paru — built into the repo but stays optdepend (not forced).

Deliberately rejected: papirus-folders (removed). The other 20 AUR pkgs on Karim's machine are personal apps/games/emulators/hardware → not base-OS. swayfx+scenefx0.4 are pulled by greetd-regreet (a leftover alt-greeter; TANINUX uses tanin-greet) — candidate for removal, not done.


B. Icon theme: Papirus → tanin-icons (the main work)

Karim's decision: Papirus is "too flat"; Adwaita fits the design, folders should follow the Fuji accent. The 5 Fuji accents are deliberately muted (ume #8f8aac, shinkai #8a98ac, take #8aac8b, chikyu #aca98a, beni #ac8a8c) — so papirus-folders (saturated presets) and native GNOME accent-folders (preset accents only) both can't match. Hence a custom package.

New package packaging/tanin-icons/:

  • recolor.py — generator. Builds 5 thin themes Tanin-<accent> that Inherits=Adwaita, recolouring only the folder/place icons. Algorithm: HSL shift of the Adwaita blue ramp → keep each stop's lightness, swap hue+saturation to the accent (preserves folder depth). White emblems untouched (saturation gate). 16px PNGs are rasterised via rsvg-convert because Adwaita's only fixed-size raster is 16x16 — without an override the inherited blue PNG wins at 16px.
  • PKGBUILD (depends adwaita-icon-theme; makedepends librsvg python) + tanin-icons.install (gtk-update-icon-cache hook). Builds clean, ~52 KB.
  • recolor.py was fixed to only rmtree its own Tanin-<key> subdirs, NOT the whole OUT dir (it earlier wiped a shared dir when OUT_DIR pointed at ~/.local/share/icons — no data lost that time, but the bug is gone now).
  • ⚠ Rebuild this package after any adwaita-icon-theme bump (reads /usr/share/icons/Adwaita at build time).

Integration (source only, NOT yet in the installed taninux): src/taninux/gui/style.py_set_gsettings() now also sets icon-theme=Tanin-<accent_key>, so folders recolour live when the accent changes. Also fixed src/taninux/gui/pages/panel.py hint "Papirus" → "Adwaita".

Wiring:

  • build-tanin-repo.sh: tanin-icons added to OWN_SIMPLE.
  • tanin-desktop/PKGBUILD: depends +tanin-icons, removed papirus-icon-theme (Adwaita is the base now), pkgrel 3→5.
  • Distro manifests synced: distro/camel.toml (icon_theme, icons=[adwaita...], new [[packages.own]] tanin-icons), distro/MANIFEST.md (icon row + pkg table).

CURRENT STATE — read carefully

Thing State
tanin-icons package built (*.pkg.tar.zst) in packaging/tanin-icons/
Verified GTK resolves folder @48px (svg) + @16px (png) to Tanin-<accent>
Active in Karim's running session but via a user-dir copy at ~/.local/share/icons/Tanin-* + gsettings icon-theme=Tanin-beni (current accent). NOT the pacman package.
tanin-icons installed via pacman (sudo needs a password; no TTY here)
[tanin] repo rebuilt + published with the new pkgs
taninux/tanin-desktop rebuilt with the style.py change accent→icon auto-switch is NOT live yet; changing the accent in Settings won't move the icon-theme until taninux is reinstalled. Workaround now: gsettings set org.gnome.desktop.interface icon-theme Tanin-<accent>.
ISO rebuilt

So: wired in source + manifests, but no artifacts rebuilt → a fresh ISO/install does NOT have it yet.

To fully ship (needs Karim for sudo)

  1. ./packaging/finish-tanin-repo.sh — builds tanin-icons + the new taninux/ tanin-desktop + AUR rebuilds.
  2. ./packaging/publish-tanin-repo.sh — upload to Gitea (TANIN_PKG_TOKEN).
  3. Rebuild the ISO (pulls the updated [tanin]).
  4. Optional cleanup: once installed system-wide, delete the user-dir copies ~/.local/share/icons/Tanin-* (identical, harmlessly shadowed).

OPEN / OFFERED, not done

  • camel.toml rebuilt_aur list is stale — still only eww/tiramisu/waypaper/ calamares/paru; missing librewolf-bin, arch-update, timeshift-autosnap, xdg-terminal-exec. Offered to sync; awaiting Karim.
  • Manual icon-theme picker (src/taninux/gui/desktop.py) still lists the 5 Tanin-* themes and a manual pick gets overridden on the next accent change. Could filter them out — not done.
  • Accent-icon scope: only folders/places are recoloured. Karim was asked whether to extend to emblem-*/coloured mimetypes — undecided.
  • papirus-folders still installed on Karim's machine (paru -Rns papirus-folders).

Gotchas to respect

  • NEVER run lock/session/suspend commands to "test" (locked Karim out once).
  • GTK3 can't be exact-Fuji recoloured (parse-time @define-color); only GTK4/ libadwaita is exact. See memory taninux-gtk-theming.
  • Lots of unrelated uncommitted changes exist in the tree (tanin-calendar, online_accounts, gtklock, iso/*) — NOT from this session; don't bundle them.

Files touched this session

packaging/tanin-icons/{PKGBUILD,recolor.py,tanin-icons.install} (new), packaging/{build,finish}-tanin-repo.sh, packaging/tanin-desktop/PKGBUILD, src/taninux/gui/style.py, src/taninux/gui/pages/panel.py, distro/{camel.toml,MANIFEST.md}.