diff --git a/CLAUDE.md b/CLAUDE.md index 769246a..2322d08 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -71,6 +71,14 @@ Systemweite generic-family Defaults via `defaults/etc/fonts/conf.d/65-moonarch-f - Aliases brauchen `binding="strong"` — ein weak `` (fontconfig-Default) rankt hinter dem effektiven generischen Fallback und greift nicht. - Greift nur für Apps die generische Familien nutzen (z.B. Firefox-Web-Fallback). moonarch-Apps (Waybar, foot, GTK, walker, swaync) setzen den Font explizit. +## Browser Idle-Inhibit (xdg-desktop-portal) + +Damit Fenster-Browservideo (Firefox/Waterfox) den Screen wachhält, via `defaults/etc/xdg-desktop-portal/niri-portals.conf` (owned by moonarch-git, höhere Priorität als niris `/usr/share/xdg-desktop-portal/niri-portals.conf`): +- `xdg-desktop-portal-gtk` meldet das `Inhibit`-Interface als success, obwohl es unter Niri niemand implementiert → Firefox glaubt, der Idle-Inhibit lief über den Portal, und nutzt den nativen Wayland-`idle-inhibit` nicht. Ergebnis: kein Inhibitor, Screen schläft. +- Fix: `org.freedesktop.impl.portal.Inhibit=none` → Firefox fällt auf `zwp_idle_inhibit` zurück, den Niri honoriert. Die übrigen `[preferred]`-Zeilen sind 1:1 von niris Default übernommen (portals.conf wird nicht gemerged — die höchstpriore Datei gilt komplett). +- stasis ist hier unbeteiligt: `monitor_media` (pactl) erfasst Browser-Audio per Design nicht (nur Non-Browser-Player); Browser laufen über den Inhibit-Pfad. +- **Aktivierung:** xdg-desktop-portal + Browser neu starten — Firefox fragt den Portal-Support beim Start ab. + ## Konventionen - Paketlisten sind einfache Textdateien, ein Paket pro Zeile, Kommentare mit `#` diff --git a/defaults/etc/xdg-desktop-portal/niri-portals.conf b/defaults/etc/xdg-desktop-portal/niri-portals.conf new file mode 100644 index 0000000..8b79b41 --- /dev/null +++ b/defaults/etc/xdg-desktop-portal/niri-portals.conf @@ -0,0 +1,10 @@ +[preferred] +default=gnome;gtk; +org.freedesktop.impl.portal.Access=gtk; +org.freedesktop.impl.portal.Notification=gtk; +org.freedesktop.impl.portal.Secret=gnome-keyring; +# xdg-desktop-portal-gtk reports the Inhibit interface as success even though +# nothing implements it under Niri, which makes Firefox/Waterfox skip the +# native Wayland idle-inhibit. With no backend the browser falls back to +# zwp_idle_inhibit, which Niri honors, so windowed video keeps the screen awake. +org.freedesktop.impl.portal.Inhibit=none;