AvengeMedia / AvengeMedia/DankMaterialShell

Implement Specific IPC Inhibit for Sleep/Suspend (Independent of Screen Lock/DPMS)

Open
#2,167 0 comments 1 reaction 0 assignees View on GitHub
feature request
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.