Cinnamon-Extension automatisch aktivieren; README: Desktop-Integration explizit

- Neu cinnamon.rs: erweitert org.cinnamon enabled-extensions idempotent um
  ai-control-popup@local; Aufruf im SNI-Zweig von init_tray (is_cinnamon).
- README: GNOME-/Cinnamon-Extension und KWin-Script mit Pfad und Aufgabe
  benannt, Auto-Aktivierung dokumentiert (inkl. GNOME-Randfall nach
  Erstinstallation); Cinnamon-X11-Aussage korrigiert (Initial-Fokus).
This commit is contained in:
marcus hinz
2026-07-22 11:17:23 +02:00
parent f13186e667
commit 257b2ca2ef
3 changed files with 53 additions and 2 deletions
+12
View File
@@ -2,6 +2,7 @@
//! Der Klick-Weg unterscheidet sich je Desktop (GNOME-Extension vs.
//! StatusNotifierItem), das Ergebnis ist überall dasselbe Popup-Fenster.
mod cinnamon;
mod desktop;
mod gnome;
mod kwin;
@@ -67,6 +68,13 @@ fn is_kde() -> bool {
.unwrap_or(false)
}
/// Cinnamon meldet sich je nach Session als „X-Cinnamon" oder „Cinnamon".
fn is_cinnamon() -> bool {
std::env::var("XDG_CURRENT_DESKTOP")
.map(|d| d.to_uppercase().contains("CINNAMON"))
.unwrap_or(false)
}
// ---------- Secrets ----------
/// apiKeyHelper-Kommando eines apikey-Pools: liest den Key aus dem Keyring
@@ -108,6 +116,10 @@ pub(crate) fn init_tray(app: &tauri::AppHandle, cb: TrayCallbacks) -> Result<(),
// KDE-Wayland: das Popup-Positionieren übernimmt das KWin-Script.
if is_kde() {
kwin::enable_script();
} else if is_cinnamon() {
// Wayland-Platzierung + X11-Fokus kommen aus der Cinnamon-Extension;
// sie liegt systemweit aus dem Paket, aktiviert wird pro Benutzer.
cinnamon::enable_extension();
}
}
Ok(())