Spotlight Dimmer is a lightweight Windows application designed to enhance focus by dimming all displays except the one with your currently active window. This tool is particularly useful for users working with multi-monitor setups who want to minimize distractions and improve productivity.
Key Features include ultra-low resource usage (~7.6 MB RAM), real-time monitoring of window focus changes, and click-through overlays that don't interfere with workflow. It leverages native Windows API for instant startup and includes an auto-reload configuration system for seamless adjustments.
Ideal for users with multi-monitor setups, Spotlight Dimmer helps streamline workflows by minimizing distractions and making it easier to track active windows, especially when navigating via keyboard shortcuts. The tool supports flexible overlay modes, including inactive display dimming and customizable overlays on the active display, as well as partial dimming to highlight focused windowed apps.
Spotlight Dimmer can be installed via winget or downloaded from the official GitHub repository.
README
SpotlightDimmer
A Windows utility that creates semi-transparent overlays to dim inactive displays or regions, creating a "spotlight" effect on the active window. Built with .NET 10 and native Windows APIs for optimal performance.
Features
✅ Multi-monitor support - Automatically detects all connected monitors
✅ Configurable overlays - Customize colors and opacity for both inactive and active regions independently
✅ Multiple rendering backends - Choose between:
CompositeOverlay: Better visual quality during window dragging (~50MB RAM for dual monitor setup with partial overlays)
✅ Small footprint - Less than 50MB installed, installer under 10MB
✅ Click-through overlays - Overlays don't capture mouse input (WS_EX_TRANSPARENT)
✅ 100% event-driven - Uses Windows event hooks instead of polling for zero CPU usage when idle
✅ No admin privileges - Runs as a regular user process
✅ Hot-reloadable configuration - Changes apply instantly without restart
✅ Native AOT compilation - Fast startup and minimal runtime dependencies
How It Works
The application uses a dual event hook system for comprehensive window tracking:
Event Hooks (100% Event-Driven - No Polling!)
EVENT_SYSTEM_FOREGROUND - Instant detection when switching between applications
EVENT_OBJECT_LOCATIONCHANGE - Real-time detection of window movement:
Detects windows being dragged between monitors with the mouse
Detects Win+Arrow and Win+Shift+Arrow keyboard shortcuts
Filters out cursor/caret events using OBJID_WINDOW check
Window Management APIs
EnumDisplayMonitors - Detects all connected monitors
CreateWindowEx - Creates overlay windows with layered and transparent styles
SetLayeredWindowAttributes - Sets the semi-transparent appearance with configurable opacity
WinApi.cs - P/Invoke declarations for Windows APIs
MonitorManager.cs - Multi-monitor detection and management
OverlayWindow.cs - Semi-transparent, click-through overlay windows
FocusTracker.cs - Event-driven focus tracking using Windows hooks
Program.cs - Main application logic and message loop
Performance Notes
100% event-driven - No polling whatsoever!
Zero CPU usage when idle - Only activates on actual window changes
Instant response - Event hooks provide immediate notification of window changes
Efficient movement detection - Tracks window position and focus changes in real-time
Native Windows API calls for maximum performance
AOT compilation eliminates JIT overhead and reduces startup time
Configuration
SpotlightDimmer can be configured via JSON file located at %AppData%\SpotlightDimmer\config.json. See CONFIGURATION.md for detailed configuration options.