diff --git a/memory/MEMORY.md b/memory/MEMORY.md index 58e0895..de63d3e 100644 --- a/memory/MEMORY.md +++ b/memory/MEMORY.md @@ -7,3 +7,4 @@ - [Pool-Setup Stand](ai-control-pool-setup.md) — Layout ~/.config/ai-control (pools, projects.json-Registry, icons, settings.json mit claudeCommand); eingebautes Terminal + Tray mit Statuspunkten; Stand 2026-07-05 GitHub-reif (README en, MIT, Screenshots); Deploy braucht lsregister - [Linux-Umzug](linux-umzug.md) — ab 2026-07-05 laufen die Sessions auf der Linux-Box; Start per start-claude.sh (Einzeiler, Pool private); macOS-Code muss noch hinter cfg(target_os) - [Linux-Release-Prep](linux-release-prep.md) — Panel/MCP-Feature auf origin (165501c); Verifikations-Checkliste für Linux + offene Port-Lücke (sips); README außer sync, beim Release überarbeiten +- [Linux-Install-TODOs](linux-install-todos.md) — GNOME-Extension via deb/rpm nach /usr/share ausrollen (postinst nur GNOME, prerm für dconf); AppImage-Start unter GNOME sperren mit Verweis aufs deb diff --git a/memory/linux-install-todos.md b/memory/linux-install-todos.md new file mode 100644 index 0000000..51e29d7 --- /dev/null +++ b/memory/linux-install-todos.md @@ -0,0 +1,18 @@ +--- +name: linux-install-todos +description: Offene Linux-Paket-TODOs — GNOME-Extension via deb/rpm ausrollen + AppImage-Start unter GNOME sperren +metadata: + node_type: memory + type: project + originSessionId: 26f13b98-f5ce-4a4b-a65e-8244436d3ff7 +--- + +Zwei offene Aufgaben für die Linux-Installation (Stand 2026-07-11), aus der Analyse der GNOME-Popup-Extension. + +**1. GNOME-Extension als Paket-Ressource ausliefern.** Die Shell-Extension `ai-control-popup@local` liegt jetzt im Repo unter `gnome-shell-extension/ai-control-popup@local/` (extension.js, metadata.json), noch nicht committet. Sie ist nur unter GNOME nötig — KDE/XFCE zeigen das Tray direkt über SNI/AppIndicator im Panel; GNOME unterstützt SNI nicht nativ, und SNI könnte ohnehin nur ein dbusmenu, nicht das rahmenlose, unter den Button positionierte Popup-Fenster. In deb/rpm über `tauri.conf.json` (`bundle.resources` bzw. deb/rpm-`files`-Mapping) nach `/usr/share/gnome-shell/extensions/ai-control-popup@local/` legen — gehört dann zum Paket und wird beim Remove automatisch entfernt. postinst nur unter GNOME (`XDG_CURRENT_DESKTOP`/`gnome-shell`) aktivieren; die Aktivierung liegt pro Benutzer in dconf und wird nicht automatisch entfernt → prerm-Skript. Offen: der hartkodierte `ICON_PATH` in extension.js (`/home/marcuh/projects/ai-control/src-tauri/icons/trayLinux.png`) muss auf den Paket-Pfad zeigen. + +**2. AppImage-Start unter GNOME sperren.** AppImage ist self-contained/installationsfrei und kann die Extension nicht ausrollen/aktivieren/entfernen — das widerspricht dem AppImage-Prinzip. Daher beim App-Start prüfen: env `APPIMAGE` gesetzt UND `XDG_CURRENT_DESKTOP` enthält „GNOME" → Dialog mit Verweis auf das deb-/rpm-Paket zeigen und beenden. Unter KDE/XFCE braucht die AppImage keine Extension und läuft normal. + +**3. Aktivierung ohne manuellen Launcher-Start (Autostart).** Die systemweit installierte Extension ist nur *verfügbar*, aktiviert wird sie pro Benutzer in dconf; das postinst (root) kann diesen Schalter nicht setzen. Manuell die App aus dem App-Grid starten ist NO GO. Lösung: das Paket legt einen Autostart-Eintrag `/etc/xdg/autostart/ai-control.desktop`, die App (reine Tray-App) startet damit bei jedem Login von selbst. Ablauf: Install → einmal neu anmelden → beim Login kennt die Shell die Extension (lag vor dem Login da, wird beim Shell-Start gescannt), die autostartende App aktiviert sie im User-Kontext per `gnome-extensions enable ai-control-popup@local` → Icon erscheint sofort, ab da bei jedem Login automatisch. Einziger manueller Schritt bleibt das eine Neu-Anmelden nach der Installation — unvermeidbar, weil GNOME eine neu installierte Extension erst beim nächsten Login scannt und Wayland die Shell nicht live neu startet. + +Siehe [[linux-release-prep]], [[linux-umzug]].