Browsers only raise org.freedesktop.ScreenSaver.Inhibit during fullscreen playback; a windowed YouTube tab sent no inhibit, so stasis ran the full idle plan to suspend despite active video. Letting browser MPRIS count as a media player closes the gap without the wake-lock hacks. See DECISIONS.md (2026-04-24).
81 lines
1.6 KiB
Plaintext
81 lines
1.6 KiB
Plaintext
# Stasis idle manager configuration for Moonarch
|
|
# Manages screen dimming, DPMS, lock, and suspend timers
|
|
|
|
@author "Moonarch"
|
|
@description "Idle management for Moonarch (Niri + moonlock)"
|
|
|
|
default:
|
|
# Media playback inhibits idle. Browsers expose MPRIS during video playback
|
|
# and only send D-Bus idle-inhibit in fullscreen, so we include remote media
|
|
# to catch windowed browser videos.
|
|
monitor_media true
|
|
ignore_remote_media false
|
|
|
|
# App/process inhibit patterns (apps that don't use D-Bus idle-inhibit)
|
|
inhibit_apps [
|
|
"vlc"
|
|
"mpv"
|
|
"celluloid"
|
|
r"steam_app_.*"
|
|
"gamescope"
|
|
"virt-manager"
|
|
"qemu"
|
|
"obs"
|
|
"kdenlive"
|
|
"handbrake"
|
|
"blender"
|
|
]
|
|
|
|
# Lid actions (laptop only)
|
|
lid_close_action "moonlock"
|
|
lid_open_action ""
|
|
|
|
# AC power plan (relaxed)
|
|
ac:
|
|
brightness:
|
|
timeout 300
|
|
command "brightnessctl set 50%"
|
|
end
|
|
|
|
dpms:
|
|
timeout 120
|
|
command "niri msg action power-off-monitors"
|
|
resume_command "niri msg action power-on-monitors"
|
|
end
|
|
|
|
lock_screen:
|
|
timeout 180
|
|
command "moonlock"
|
|
end
|
|
|
|
suspend:
|
|
timeout 600
|
|
command "systemctl suspend"
|
|
end
|
|
end
|
|
|
|
# Battery plan (aggressive)
|
|
battery:
|
|
brightness:
|
|
timeout 60
|
|
command "brightnessctl set 30%"
|
|
end
|
|
|
|
dpms:
|
|
timeout 30
|
|
command "niri msg action power-off-monitors"
|
|
resume_command "niri msg action power-on-monitors"
|
|
end
|
|
|
|
lock_screen:
|
|
timeout 60
|
|
command "moonlock"
|
|
end
|
|
|
|
suspend:
|
|
timeout 120
|
|
command "systemctl suspend"
|
|
end
|
|
end
|
|
end
|