Files
z-bar-qt/Modules/Lock/IdleMonitors.qml
T
AramJonghu 6f856e2162
Lint & Format (JS/TS) / lint-format (pull_request) Successful in 11s
Python / lint-format (pull_request) Successful in 18s
Python / test (pull_request) Successful in 44s
Lint & Format (Rust) / lint-format (pull_request) Successful in 1m5s
fix typo
2026-06-03 17:47:12 +02:00

50 lines
1.1 KiB
QML

pragma ComponentBehavior: Bound
import Quickshell
import Quickshell.Wayland
import ZShell.Internal
import qs.Config
import qs.Helpers
Scope {
id: root
readonly property bool enabled: !Players.list.some(p => p.isPlaying)
required property Lock lock
function handleIdleAction(action: var): void {
if (!action)
return;
if (action === "lock")
lock.lock.locked = true;
else if (action === "unlock")
lock.lock.locked = false;
else if (action === "dpms on")
Hypr.dispatch('hl.dsp.dpms({ action = "enable" })');
else if (action === "dpms off")
Hypr.dispatch('hl.dsp.dpms({ action = "disable" })');
else if (typeof action === "string")
Hypr.dispatch(action);
else
Quickshell.execDetached(action);
}
LidWatcher {
onAboutToSleep: root.lock.lock.locked = true
}
Variants {
model: Config.general.idle.timeouts
IdleMonitor {
required property var modelData
enabled: root.enabled && modelData.timeout > 0 ? true : false
timeout: modelData.timeout
onIsIdleChanged: root.handleIdleAction(isIdle ? modelData.idleAction : modelData.activeAction)
}
}
}