| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
…nd notifier is unreachable
The Hyprland branch relies on hyprland_lock_notifier_v1, which the compositor does not advertise to sandboxed clients, so the Flatpak build subscribes to a notifier that never arrives and returns without trying anything else. Fall back to watching for the hyprlock process, which runs for exactly as long as the session is locked, and let the branch fall through to logind instead of dead-ending when no Hyprland specific source is available. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
| Back | FazBrowse Home | New Git URL |
Problem
Lock screen sync never fires in the Flatpak build on Hyprland, the deck stays live and interactive after the screen locks. This affects both plain hyprlock and Omarchy's Quickshell-based lock screen.
Cause
HyprlandLockScreenDetector binds hyprland_lock_notifier_v1. That protocol isn't hyprlock-specific, Hyprland fires it for any ext-session-lock client, but the compositor doesn't advertise it to sandboxed clients. Enumerating wl_registry on the same session gives 71 globals natively and 40 inside the Flatpak, without the notifier among them. setup() subscribed to something that never arrives and returned without trying anything else: no error, no fallback, no lock.
Fix
Wayland now records whether the notifier was actually advertised. On Hyprland we still prefer it when it's there. When it isn't, the Hyprland branch no longer dead-ends, it tries, in order:
Both new detectors follow the existing Hyprland/MangoWM window grabber pattern — flatpak-spawn --host via Xdp, daemon thread gated on gl.threads_running — and dispatch through GLib.idle_add, since lock() reaches into the deck controllers and the other detectors all deliver on the main thread.
Nothing changes for setups that work today; the new paths are only reachable when the notifier is missing.
Testing