[Mouse Highlighter] Add shortcut to switch between highlight modes #41588
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds a new configurable shortcut to switch between spotlight and circle highlight modes in Mouse Highlighter, allowing users to quickly change modes without opening the settings panel.
Changes Made
Backend Implementation (C++)
MouseHighlighterSwitchMode()
API function that toggles the spotlight mode settingWM_SWITCH_HIGHLIGHT_MODE
message handling to restart drawing with the new modeGetHotkeyEx
) to multiple hotkeys (get_hotkeys
) to support both activation and mode switch shortcutsSettings & UI (C#)
ModeSwitchShortcut
property toMouseHighlighterProperties.cs
with default Win+Shift+M bindingMouseUtilsViewModel.cs
to expose the new shortcut property and include it in hotkey conflict detectionMouseUtilsPage.xaml
for configuring the mode switch shortcutUser Experience
Before: Users had to open PowerToys Settings → Mouse utilities → Mouse Highlighter and toggle the "Spotlight mode" checkbox to switch between highlighting modes.
After: Users can now:
Technical Details
The implementation follows established PowerToys patterns for multi-hotkey modules and maintains backward compatibility. The mode switching works by:
MouseHighlighterSwitchMode()
functionm_spotlightMode
flagThis provides instant visual feedback when switching between circle highlights (for mouse clicks) and spotlight mode (continuous mouse following).
Fixes #41565.
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.