feat: prevent system sleep during playback via XDG portal

Add idle_inhibit module using ashpd's Inhibit portal to prevent
screen blanking and system suspend while audio is playing.

- Acquires Idle+Suspend inhibit when playback starts
- Releases when paused, stopped, or track cleared
- Works on GNOME, KDE, Sway, XFCE
- Works inside Flatpak/Snap (no extra permissions needed)
- Graceful fallback if portal unavailable

Addresses #229

cc
This commit is contained in:
victorrhgap committed 2026-03-31 12:41:21 -06:00
1 parent 2900fb882c
commit 080b916c64
4 files changed
+85 -40

No files matched your search

+1 -1
View File
@@ -145,7 +145,7 @@ futures-util = "0.3"
# Platform-specific dependencies
[target.'cfg(target_os = "linux")'.dependencies]
tauri-plugin-dialog = { version = "2.6.0" }
ashpd = { version = "0.13", default-features = false, features = ["tokio", "notification"] }
ashpd = { version = "0.13", default-features = false, features = ["tokio", "notification", "inhibit"] }
# Direct ALSA access for bit-perfect playback (bypasses CPAL limitations)
alsa = "0.9"