Prevent Screen Saver follows an incremental release model — each version ships a small, well-defined set of features that are fully tested before the next iteration begins. This page documents what has shipped, what is planned, and how to contribute.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/proteo5/Prevent-Screen-Saver/llms.txt
Use this file to discover all available pages before exploring further.
Current Release — v0.2.0
Version 0.2.0 is the current stable release. It builds on the v0.1.0 tray MVP with the addition of a global hotkey system, delivering keyboard-driven toggle without requiring any mouse interaction with the tray.Global Hotkey Toggle
Press a keyboard shortcut from anywhere on the desktop to activate or deactivate screen saver protection instantly, without opening the tray menu.
Five Built-in Presets
Choose from Ctrl+Alt+P (default), Ctrl+Shift+F12, Ctrl+Shift+F11, Ctrl+Shift+F10, or Ctrl+Shift+F9 via the tray Hotkey submenu.
Hotkey Enable/Disable
Toggle the hotkey on or off from the tray menu without changing the selected preset. The preference is persisted across restarts.
Tray Balloon Notifications
A system tray balloon appears when the hotkey is enabled, disabled, or when a new preset is selected, confirming the active shortcut.
All Features in v0.2.0
v0.2.0 includes everything from the v0.1.0 foundation plus the hotkey system:v0.1.0 Foundation Features (included in v0.2.0)
v0.1.0 Foundation Features (included in v0.2.0)
- Tray icon with two visual states — grey pause icon when idle, green checkmark icon when active. Both icons are generated programmatically at runtime.
- Left-click tray toggle — clicking the tray icon toggles between Active and Idle protection states.
- Tray context menu — Activate, Deactivate, Open, Start with Windows, Hotkey, Help, About, and Exit actions.
SetThreadExecutionStateprotection — usesES_CONTINUOUS | ES_DISPLAY_REQUIREDto prevent screen saver activation without simulating any keyboard or mouse input.- Start with Windows — reads and writes
HKCU\...\Runto control auto-launch. No admin rights required. - Single-instance guard — a named Mutex (
PreventScreenSaver.SingleInstance) prevents multiple copies from running simultaneously. - Settings persistence —
StartMinimized,LastProtectionActive,HotkeyEnabled, andHotkeyPresetIdare saved to%LocalAppData%\PreventScreenSaver\settings.json. - Diagnostics log — timestamped entries appended to
%LocalAppData%\PreventScreenSaver\log.txtfor all lifecycle events. - Help and About dialogs — built-in Windows Forms dialogs accessible from the tray menu.
- Clean shutdown — protection is always stopped and the hotkey is unregistered before the application exits or the session ends.
Planned Features
The following items are on the roadmap for future releases, drawn from the project’s README:Background-Only Launch Mode
A startup argument that launches the application directly to the tray without ever showing the main window, useful for auto-start scenarios.
Automated Checks and Tests
Lightweight automated validation to cover settings parsing, toggle routing logic, and service lifecycle behavior.
Signed Installer and Release Workflow
Code-signed installer and a repeatable automated release pipeline to improve trust and distribution reliability.
Expanded Configuration Options
Additional user-facing settings surfaced through the application UI, beyond the current hotkey and startup options.
The
docs/implementation-plan.md and docs/hotkey-plan.md files in the repository contain the detailed design rationale behind the existing v0.1.0 and v0.2.0 implementations — including the options that were considered and rejected (such as simulated keyboard input and mouse movement) in favor of the SetThreadExecutionState approach.Contributing
Contributions and feedback are welcome. The project is MIT-licensed and hosted on GitHub.Open an Issue
Report a bug or request a feature at the GitHub issue tracker. Include reproduction steps for bugs or a clear description of the desired behavior for feature requests.
View the Repository
Browse the source, read the implementation docs, and follow release activity on GitHub.
