40 lines
848 B
QML
40 lines
848 B
QML
pragma ComponentBehavior: Bound
|
|
|
|
import Quickshell
|
|
import Quickshell.Wayland
|
|
import qs.Config
|
|
import qs.Helpers
|
|
|
|
Scope {
|
|
id: root
|
|
|
|
required property Lock lock
|
|
readonly property bool enabled: !Players.list.some( p => p.isPlaying )
|
|
|
|
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 ( typeof action === "string" )
|
|
Hypr.dispatch( action );
|
|
else
|
|
Quickshell.execDetached( action );
|
|
}
|
|
|
|
Variants {
|
|
model: Config.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 )
|
|
}
|
|
}
|
|
}
|