1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-06-07 19:59:14 -04:00

fix(lock): wake monitors on input when powered off by lock (#2572)

The "power off monitors on lock" path relies on wake handlers
(MouseArea/Keys) at Lock.qml's root Scope, which sit outside the
WlSessionLock surface and never receive input while locked. The feature
only appeared to work on compositors that auto-restore output power on
input; compositors that fully tear down the output (e.g. MangoWC
disable_monitor) leave the screen off until blind-unlock.

Add a seat-level IdleMonitor (wlr idle-notify, surface-independent) in
IdleService that restores monitor power on any keyboard/pointer
activity. Gated on isShellLocked + monitorsOff + the setting, so it is
inert unless that path actually powered the monitors off.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nachum Barcohen
2026-06-04 17:05:59 +03:00
committed by GitHub
parent 59431869dc
commit 45eb101f40
+14
View File
@@ -138,6 +138,20 @@ Singleton {
}
}
// Wakes monitors powered off by the "power off monitors on lock" path.
// Lock.qml's own wake handlers sit outside the session-lock surface and
// never receive input, so wake on input via seat-level idle-notify instead.
IdleMonitor {
id: lockWakeMonitor
timeout: 1
respectInhibitors: false
enabled: root.enabled && root.isShellLocked && root.monitorsOff && SettingsData.lockScreenPowerOffMonitorsOnLock
onIsIdleChanged: {
if (!isIdle && root.monitorsOff)
root.requestMonitorOn();
}
}
Connections {
target: root
function onRequestMonitorOff() {