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:
@@ -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 {
|
Connections {
|
||||||
target: root
|
target: root
|
||||||
function onRequestMonitorOff() {
|
function onRequestMonitorOff() {
|
||||||
|
|||||||
Reference in New Issue
Block a user