OLED Sleeper tackles a common frustration for Windows users with multiple displays: the inability to control power or brightness on each monitor independently. Windows 10 and 11 only allow system-wide display sleep, so if you want to dim or blackout just one screen, you’re out of luck. This app solves that by combining native Windows APIs for detecting input and monitor enumeration with direct hardware control via DDC/CI commands — a rare feature in desktop utilities.
what oled sleeper does: per-monitor power management with native windows and hardware integration
OLED Sleeper is a zero-dependency desktop application written in C# using WPF (Windows Presentation Foundation) for its UI. It runs on Windows 10 and 11, providing per-monitor power management capabilities that Windows itself lacks. The app enumerates all connected displays using Win32 APIs and monitors input activity per display to determine which monitors should be dimmed or blacked out.
The core innovation lies in its use of DDC/CI (Display Data Channel Command Interface) VCP (Virtual Control Panel) codes. These are hardware-level commands sent over the display’s I2C bus that allow software to adjust physical monitor settings such as brightness. While most Windows apps simulate dimming by overlaying a translucent black window, OLED Sleeper communicates directly with the monitor’s firmware. This means the dimming is handled by the hardware itself, potentially reducing power consumption and avoiding software artifacts.
The app supports three idle detection modes:
- Mouse position tracking per monitor,
- Focused application detection,
- System-wide input detection.
This flexibility allows it to adapt to different workflows and user preferences. For example, you can configure it to dim a monitor if the mouse hasn’t moved over it for a set time, or to dim all monitors except the one with the focused window.
The blackout mode likely uses a full-screen opaque overlay to simulate powering off, while the dim mode uses DDC/CI commands to adjust brightness at the hardware level. This dual approach covers monitors that do not support DDC/CI as well as those that do.
how oled sleeper stands out: direct ddc/ci integration and per-monitor input tracking
What distinguishes OLED Sleeper technically is its use of native Win32 APIs combined with DDC/CI for hardware-level control. Most Windows utilities rely on software tricks like dark overlays to simulate dimming. While effective, those overlays consume GPU resources and do not reduce the monitor’s actual backlight power, leaving OLED burn-in risk and energy use unmitigated.
By contrast, OLED Sleeper sends VCP brightness codes directly to monitors that support DDC/CI. This requires handling the Display Data Channel over I2C, a low-level communication protocol rarely exposed in high-level Windows APIs. Implementing this in C# with WPF involves native interop and careful error handling because not all monitors support these commands reliably.
The codebase reflects these challenges. It uses P/Invoke to call native Win32 functions for monitor enumeration and input detection. The input detection per monitor is subtle — it hooks into mouse position or system-wide input events and maps those to physical monitors, which can be tricky given Windows’ virtual desktop and multi-monitor coordinate spaces.
The tradeoff here is clear: the app is Windows-only and depends on hardware support for DDC/CI brightness control. Some monitors may not respond to VCP commands correctly or at all, falling back to the overlay blackout mode. This limitation is documented clearly in the README.
In terms of code quality, the repo keeps dependencies minimal, avoiding external libraries, which improves reliability and reduces footprint. The WPF UI provides a native-feeling interface with configuration for idle timers, monitor selection, and mode choice.
quick start: install and configure oled sleeper
## Requirements
* **Operating System:** Windows 10 or 11
* **DDC/CI Support (for Dimming Mode):** Dimming requires a monitor that supports DDC/CI brightness control via VCP codes. Most modern monitors support this, but it is not guaranteed on all displays.
---
## How to Use
1. Download the latest installer from the Releases page.
2. Run the installer and follow the on-screen prompts. During installation, you will be prompted to configure automatic startup and create shortcuts.
3. Open OLED Sleeper from your Start Menu or desktop shortcut.
4. Use the interface to select your target monitors, choose your preferred idle detection mode, and set your idle timers.
5. Apply your settings. The application will minimize to the system tray and run in the background.
The setup is straightforward. After installing, you configure which monitors to manage and select the idle detection mode that fits your workflow. The app runs quietly in the background, applying dimming or blackout based on the configured timers and detected input.
verdict: a practical tool for per-monitor display power management on windows
OLED Sleeper fills a gap in Windows multi-monitor management by offering per-monitor power control using native APIs and hardware-level commands. It’s particularly useful for users with OLED or other displays sensitive to burn-in or who want finer control over energy use and screen state.
Limitations are mostly around hardware compatibility — not all monitors support DDC/CI dimming, and the app is Windows-only. The use of native interop and low-level protocols means the codebase is more complex than typical C# WPF apps, but the zero-dependency approach keeps it accessible.
If you manage multiple monitors and want to avoid system-wide display sleep or software overlay dimming, OLED Sleeper is worth trying. Its blend of native Windows integration and direct monitor communication is a solid example of practical system-level tooling that goes beyond common app patterns.
→ GitHub Repo: Quorthon13/OLED-Sleeper ⭐ 105 · C#