Keep your Steam Deck screen awake while media is playing or selected applications are running.
中文说明 | English
ScreenSaver Enhancements is a Decky Loader plugin for Steam Deck. It handles standard D-Bus sleep-inhibition requests from supported media apps and can also monitor applications you choose yourself.
- D-Bus sleep inhibition — supports standard inhibition requests from apps such as VLC, Chrome, mpv, and wiliwili. (v1.0.0)
- Power settings recovery — saves the current SteamOS screen-dim and suspend configuration before taking control, then restores it when inhibition ends or recovery is needed. (v1.0.0)
- Manual application rules — choose running processes that should keep the screen awake, including Flatpak app IDs and full command lines. (v1.0.0)
- DeckyMusic-aware playback detection — detects actual audio playback from the backend only when a DeckyMusic rule is configured. It tolerates one short missed check before restoring normal sleep behavior, preventing false restores during track changes or brief stalls. (v1.1.0, optimized in v2.0.0)
- Event-driven application monitoring — listens for kernel process events when available and uses a 120-second fallback scan when necessary. DeckyMusic's 5-second audio check is independent, so it does not force repeated full process scans. (v1.3.0, optimized in v2.0.0)
- Black display overlay — optionally show a black overlay with adjustable opacity. (v1.3.0)
- Separate battery and AC settings — customize screen-dim and system-suspend timeouts for battery and external power, with two-way synchronization to the system settings. (v2.0.0)
- V2 typed API and state synchronization — uses Decky's modern typed RPC and push events for settings and inhibition state, with full-state reconciliation after a listener reconnect. (v2.0.0)
- Diagnostics and updates — inspect monitor mode, process activity, inhibition source, D-Bus requests, power override state, recent events, and event-channel health; copy the report or update from the plugin panel. (v2.0.0)
- Reliable lifecycle handling — waits for pending inhibition notifications to cancel during unload/restart and packages all required backend modules with the release. (v2.0.0)
- Decky Music MPRIS playback monitoring — recognizes current Decky Music releases through their public MPRIS playback events while retaining the legacy DeckyMusic compatibility path. Playback changes no longer require a repeated full-process scan. (v2.0.1)
- Clearer diagnostics — recent plugin events retain the latest 40 entries, can be cleared from the Diagnostics page, and now identify the application that added or removed a sleep rule or changed sleep-inhibition state. (v2.0.1)
- Process-list refinements — preserves Unicode process names, avoids duplicate localized labels, and improves the refresh feedback and scrolling behavior in the app-rules page. (v2.0.1)
- Safer settings persistence — validates setting values before saving, normalizes persisted values, and preserves malformed settings files for recovery instead of silently discarding them. (v2.0.2)
- Rejects invalid setting values and normalizes valid application rules before persistence.
- Restores invalid persisted public settings to safe defaults during startup.
- Preserves malformed settings files with a
.corruptsuffix for troubleshooting and recovery.
| Monitor and main controls | Mask switches and settings | App rules, diagnostics, and update entry points |
|---|---|---|
![]() |
![]() |
![]() |
| Configured inhibit list | Running-process selection |
|---|---|
![]() |
![]() |
| Runtime diagnostics | Recent diagnostic events |
|---|---|
![]() |
![]() |
Install Decky Loader first. If it is not installed, run the official installer on the Steam Deck:
curl -L https://github.com/SteamDeckHomebrew/decky-installer/releases/latest/download/install_release.sh | sh- Download
ScreenSaverEnhancements.zipfrom the latest release. - Open Decky Settings → Developer → Install Plugin from ZIP.
- Select the downloaded ZIP package and complete the installation.
npm.cmd install
npm.cmd test
python build.pyThe package is created at build/ScreenSaverEnhancements.zip. Install it using the release-package steps above.
The plugin can check for updates from the bottom of its panel. When a newer release is available, open the update section, review the version and release notes, then start the upgrade there.
To upgrade manually, download the latest release package, then select it through Decky Settings → Developer → Install Plugin from ZIP.
- Open Decky Settings → Plugins.
- Find ScreenSaver Enhancements and select Uninstall.
- Confirm the uninstall when prompted.
The plugin uses two complementary sources of inhibition:
- D-Bus mode registers standard sleep-inhibition services. When an application calls
Inhibit, the backend pushes a state update and the frontend applies the configured SteamOS power behavior. - Manual mode watches the configured process rules. It prefers process events and automatically switches to low-frequency scanning when the event source is unavailable.
DeckyMusic is a specialized manual rule: its audio state is checked every five seconds only while the rule is configured. Normal manual application rules remain event-driven, with a 120-second fallback scan, so the two paths do not multiply process-scanning work.
Both sources share the same state synchronization and power-control path. Before overriding power behavior, the plugin records the current settings; once every inhibitor ends, it restores that saved configuration instead of writing fixed defaults.
| Command | Description |
|---|---|
npm.cmd install |
Install frontend dependencies. |
npm.cmd test |
Run TypeScript validation and discovered JavaScript and Python tests. |
npm.cmd run build |
Build the frontend bundle. |
python build.py |
Build the installable plugin directory and ZIP package. |
- xfangfang/DeckyInhibitScreenSaver — the project this plugin extends.
- Decky Loader — Steam Deck plugin loader and platform.
This project is licensed under the BSD 3-Clause License.







