fix(lockscreen): dynamically unload KWin overview/grid/presentwindows effects via DBus while locked

This commit is contained in:
Sho 2026-08-02 16:26:56 +09:00
parent 3871310e50
commit fccc488349

View File

@ -33,11 +33,24 @@ Item {
usernameProc.running = true usernameProc.running = true
} }
FileWatcher { Timer {
id: lockTriggerWatcher interval: 300
path: "/tmp/quickshell_lock_trigger" running: true
onFileChanged: { repeat: true
root.lock() onTriggered: {
if (!checkLockTriggerProc.running) checkLockTriggerProc.running = true
}
}
Process {
id: checkLockTriggerProc
command: ["bash", "-c", "if [ -f /tmp/quickshell_lock_trigger ]; then rm -f /tmp/quickshell_lock_trigger; echo 'LOCK'; fi"]
stdout: SplitParser {
onRead: data => {
if (data.trim() === "LOCK") {
root.lock()
}
}
} }
} }
@ -58,6 +71,7 @@ Item {
authFailed = false authFailed = false
authErrorMsg = "" authErrorMsg = ""
isLocked = true isLocked = true
disableEffectsProc.running = true
} }
function unlock() { function unlock() {
@ -66,6 +80,17 @@ Item {
authFailed = false authFailed = false
authErrorMsg = "" authErrorMsg = ""
isLocked = false isLocked = false
enableEffectsProc.running = true
}
Process {
id: disableEffectsProc
command: ["bash", "-c", "qdbus6 org.kde.KWin /Effects org.kde.kwin.Effects.unloadEffect overview 2>/dev/null; qdbus6 org.kde.KWin /Effects org.kde.kwin.Effects.unloadEffect grid 2>/dev/null; qdbus6 org.kde.KWin /Effects org.kde.kwin.Effects.unloadEffect presentwindows 2>/dev/null"]
}
Process {
id: enableEffectsProc
command: ["bash", "-c", "qdbus6 org.kde.KWin /Effects org.kde.kwin.Effects.loadEffect overview 2>/dev/null; qdbus6 org.kde.KWin /Effects org.kde.kwin.Effects.loadEffect grid 2>/dev/null; qdbus6 org.kde.KWin /Effects org.kde.kwin.Effects.loadEffect presentwindows 2>/dev/null"]
} }
function appendChar(ch) { function appendChar(ch) {