A MewUI port of the original Display Blackout project.
A Windows and macOS utility that blacks out selected displays on demand. Useful for reducing distractions while gaming, focusing on a single monitor, or dimming secondary displays during video calls.
The original project's README raises practical concerns about shipping a small native Windows utility — runtime bundling and external runtime dependencies that persist even after NativeAOT. This port explores what answers MewUI can offer to those same questions.
Note
This is an experimental port for MewUI framework validation. It is not intended to replace the original project.
- Selective blackout: Choose which displays to black out via a visual monitor picker
- Adjustable opacity: Control how dark the blackout overlay is
- Click-through mode: Interact with blacked-out displays without disabling blackout
- Global hotkey: Toggle blackout with Win+Shift+B
- System tray integration: Quick access from the notification area
- Theme & accent customization: Light/Dark/System theme with multiple accent colors
macOS support is at full feature parity with the Windows version:
- Menu bar status item — native
NSStatusItemwith active/inactive icons and a context menu (Toggle Blackout, Settings, Exit). The app does not appear in the Dock. - Global hotkey —
Cmd+Shift+Bregistered via Carbon'sRegisterEventHotKey, matching theWin+Shift+Bshortcut on Windows. No Accessibility permission required. - Blackout overlay — native
NSWindowatNSScreenSaverWindowLevel, covering the full display including the menu bar. Opacity and click-through are applied natively. - Display change detection —
CGDisplayRegisterReconfigurationCallbackautomatically restores overlays when display configuration changes.
dotnet buildRun:
dotnet runTo build a universal macOS app bundle:
./dist.macos.shNote
On macOS, Homebrew-installed OpenSSL and Brotli must be present for the NativeAOT linker step:
brew install openssl brotli
- .NET 10 SDK
- Windows 7 or later
- macOS 13 or later
This app requires no administrator elevation, makes no network requests, and collects no telemetry or user data. Settings are stored locally in a JSON file under %LocalAppData%/DisplayBlackout/.
The original author noted that WinUI 3 supports NativeAOT, which bundles the .NET runtime into the binary. However, the WinAppSDK runtime itself still requires separate installation on the user's machine — the AOT story is only half-complete.
MewUI removes this layer entirely. There is no WinAppSDK dependency and no external runtime requirement.
This project is based on:
- Display Blackout by Domenic Denicola

