AvengeMedia / AvengeMedia/DankMaterialShell
Implement Specific IPC Inhibit for Sleep/Suspend (Independent of Screen Lock/DPMS)
- Dominant language
- QML
- Stars
- 8.1k
- Forks
- 515
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 102
Description
### Feature Description
Introduce a more granular IPC inhibit mechanism for the dms command. Currently, the inhibition feature appears to act as a global toggle that affects the entire session (including screen locking and monitor power-off). This request is to add a specific option that inhibits the system from entering sleep/suspend only, without preventing automatic screen locking or display power management (DPMS).
### Use Case
In many scenarios, such as long-running compilations, background renders, or large data synchronizations, it is necessary to ensure the computer remains powered on (preventing suspend to RAM/Disk). However, for security and energy efficiency, the user still wants the screen to lock automatically based on the idle timeout and the monitor to turn off (DPMS). A global inhibit prevents these security and power-saving measures from triggering.
### Compositor(s)
All compositors
### If Other, please specify
_No response_
### Proposed Solution
Introduce a new command structure or a flag-based approach for the IPC call to allow specific inhibition types.
Examples:
dms ipc call inhibit sleep enable / disable
Or using flags:
dms ipc call inhibit enable --type=sleep
dms ipc call inhibit enable --type=idle
When this specific inhibit type is active, DMS should ignore the "suspend" action from the idle-notifier but continue to allow dms-lock and monitor power-off events to proceed as scheduled.
### Alternatives/Existing Solutions
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.