mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-06-08 04:09:15 -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:
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user