aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/modules/sound/TransportButton.qml
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-18 12:26:48 +0200
committerDanilo M. <danix@danix.xyz>2026-09-18 12:26:48 +0200
commit25e33522a74d9ffb71e399d9060d9fdef42e792d (patch)
treecc950e645f1f2e83cb7e0f04d66f3317283f32d8 /desktop/modules/sound/TransportButton.qml
parente81c248c6243719f62b426dd68b0a74dc5b912d8 (diff)
downloadquickshell-25e33522a74d9ffb71e399d9060d9fdef42e792d.tar.gz
quickshell-25e33522a74d9ffb71e399d9060d9fdef42e792d.zip
feat(status): add a screen lock mode
dnd and presentation were the only modes, and presentation was the sole holder of the Wayland idle inhibitor. That inhibitor is the only thing that stops hypridle's loginctl lock-session at the 600s timeout, so screen locking is on by default and there was no way to turn it off on its own. nolock is stored as "auto-lock disabled" so the file keeps the registry's "missing means off" rule, and the row inverts it so the switch reads as the default: lock on. Presentation now drives nolock the same way it drives dnd, holding the prior value in memory and restoring it on exit, so it needs no second inhibitor and the inhibitor has a single holder. The page sets the disable permanently or for a number of minutes. The deadline and its timer live in the singleton rather than the row because the drawer page is destroyed on close while the effect has to outlive it. The timer is shell-lifetime, the same class of limit as dndBeforePresentation: a restart during a timed disable leaves the lock off until it is toggled, which is safe because the user opted into the disable. The mode governs idle-triggered locking only. The SUPER+l bind and the lock on suspend are separate paths and stay live.
Diffstat (limited to 'desktop/modules/sound/TransportButton.qml')
0 files changed, 0 insertions, 0 deletions