- 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>
3.4 KiB
TANINUX — Verteilung als „Distro"
Ziel: ein Calamares-Installer, der eine fertige TANINUX-Umgebung aufsetzt.
Modell: eigenes Binär-Repo [tanin] nur für eigene Pakete, alles Standard
aus den offiziellen Arch-Repos (wie CachyOS/EndeavourOS).
Pakete
| Paket | Repo | Inhalt |
|---|---|---|
taninux |
[tanin] |
App: tsettings + thub + TUI, Helper, polkit, .desktop |
tanin-eww |
[tanin] |
eww Panel/Dock-Config + Scripts (→ /usr/share) |
tanin-setup |
[tanin] |
seedet ~/.config aus /usr/share + Portal/Session-Fix |
tanin-desktop |
[tanin] |
Metapackage: depends = eigene + Arch-Pakete |
tanin-desktop zieht per depends die Arch-Pakete aus den normalen Repos und
die eigenen aus [tanin]. AUR bleibt Opt-in → paru ist optdepends, kein
hartes depends (Metapackage baut also nichts aus dem AUR).
Dotfile-Auslieferung (wichtig)
AUR/Binär-Pakete dürfen nicht nach /home schreiben. Daher:
- Default-Configs ins Paket nach
/usr/share/tanin/(oder/etc/skel/). tanin-setupkopiert sie beim ersten Start nach~/.config(idempotent, überschreibt nichts ohne--force) und richtet das Session-Portal ein (siehe „Dark Mode / Portal" unten).
Phasen
-
Fundament —
packaging/taninux/PKGBUILD(fertig), LICENSE wählen,cd packaging/taninux && makepkg -silokal testen. -
Meta + Config —
tanin-desktop(Skelett da),tanin-eww,tanin-setup. -
Eigenes Repo
[tanin]. Hosts:- Code →
git.openbureau.ch/karim/taninux(PKGBUILD-source, wohermakepkgklont) - Projekt + Repo →
taninux.kgva.ch(PKGBUILD-url/Homepage und pacman-Server)
DB bauen + signieren:
repo-add -s tanin.db.tar.zst *.pkg.tar.zst # -s signiert mit Packager-KeyHosten — zwei Optionen:
- Gitea/Forgejo Arch-Registry (falls git.openbureau.ch das kann): Pakete
pushen,
Server = https://git.openbureau.ch/api/packages/karim/arch/<repo>.taninux.kgva.chals Reverse-Proxy/Vanity davor. - Statisches Verzeichnis hinter
taninux.kgva.ch:*.pkg.tar.zst+tanin.db.
pacman.conf-Snippet für User:[tanin] SigLevel = Optional TrustAll # später: Required + Key importieren Server = https://taninux.kgva.ch/$arch - Code →
-
Calamares / ISO —
archiso-Profil mit[tanin]vorkonfiguriert + Calamarespackages-Modul, dastanin-desktopinstalliert.
Dark Mode / Portal (Session-Fix)
libadwaita-Apps (Nautilus etc.) lesen Hell/Dunkel über
org.freedesktop.portal.Settings. Damit das Portal startet, muss die Session
graphical-session.target aktivieren. tanin-setup legt dafür
~/.config/systemd/user/<wm>-session.target an und ergänzt die Compositor-
Autostarts:
exec-once = dbus-update-activation-environment --systemd --all
exec-once = systemctl --user start <wm>-session.target
Hosts
- Code:
git.openbureau.ch/karim/taninux(+ Repo für die eww-Config, Absprache mit der eww-Instanz). - Projekt/Repo:
taninux.kgva.ch(Homepage +[tanin]-pacman-Server).
Offene Voraussetzungen
- LICENSE-Datei ablegen (Vorschlag GPL-3.0-or-later):
curl -L https://www.gnu.org/licenses/gpl-3.0.txt -o LICENSE. taninux.kgva.chans Repo-Hosting hängen (Gitea-Arch-Registry oder statisch).