Linux: nativer SNI-Tray für Nicht-GNOME-Desktops, pfadtragende fs-Fehler, Panic-Tracer

- Tray verzweigt: GNOME -> Extension/D-Bus, KDE/Cinnamon/LXQt -> natives
  SNI-Tray-Icon mit Menue (libappindicator liefert keine Klick-Events)
- fs-Aufrufe nennen bei Fehlern den Pfad statt bloss 'os error 2';
  is_dir-Guard in list_pools_in und Usage-Auswertung
- Panic-Hook schreibt kopierbaren Backtrace (profile.release debug = 1)
- AppImage unter GNOME gesperrt (rfd-Dialog), Verweis auf deb/rpm
- deb/rpm liefern die GNOME-Extension mit; Appindicator als Depends
- Bundle-Targets um deb/rpm/appimage erweitert
This commit is contained in:
marcus hinz
2026-07-12 18:06:35 +02:00
parent b1a2291aef
commit cf844c45da
5 changed files with 214 additions and 55 deletions
@@ -18,7 +18,6 @@ const DBUS_NAME = 'com.aicontrol.Popup';
const DBUS_PATH = '/com/aicontrol/Popup';
const DBUS_IFACE = 'com.aicontrol.Popup1';
const WIN_TITLE = 'ai-control-popup';
const ICON_PATH = '/home/marcuh/projects/ai-control/src-tauri/icons/trayLinux.png';
export default class AiControlPopupExtension extends Extension {
enable() {
@@ -59,7 +58,8 @@ export default class AiControlPopupExtension extends Extension {
// dontCreateMenu=true: wir wollen kein Shell-Menü, nur den Klick relayen.
this._button = new PanelMenu.Button(0.0, 'ai-control', true);
const icon = new St.Icon({
gicon: Gio.icon_new_for_string(ICON_PATH),
// Icon liegt neben der Extension (vom Paket mitgeliefert).
gicon: Gio.icon_new_for_string(`${this.path}/trayLinux.png`),
icon_size: 36,
});
this._button.add_child(icon);