Use case
When presenting, screen-sharing, recording tutorials, or pair-programming, the audience often loses track of the mouse cursor. Presentation tools solve this with an enlarged cursor or a highlight around it, but they are app-specific or global toggles buried in OS settings.
mousemaster's mode system is a perfect fit for this: a "presentation mode" would just be a regular user-defined mode that enlarges the cursor while active, entered/exited with any combo the user likes.
Proposal
A per-mode cursor scale (or size) property:
# Example: toggle presentation mode with leftctrl+p from normal mode
normal-mode.to.presentation-mode=_{leftctrl} +p
presentation-mode.cursor.scale=2.5
presentation-mode.to.normal-mode=_{leftctrl} +p
While a mode with cursor.scale is active, mousemaster would swap the system cursors for scaled-up copies (via SetSystemCursor), restoring the originals on mode exit — the same mechanism the hide-cursor feature already uses, so the infrastructure (including the OCR_* enumeration and the GDI-handle-leak workaround) already exists in WindowsMouseController.
Optionally, a cursor color/tint property could complement it (e.g. a high-contrast or colored cursor), which also helps visibility on projectors with washed-out colors:
presentation-mode.cursor.color=#FF0000
Design consideration: deliberately NOT a halo/circle overlay
I'd argue this feature should stay at the level of changing the cursor's own size/color, not drawing rings, halos, or highlight circles around it:
- During a presentation, an overlay ring covers the very content you are pointing at (text under the cursor, small UI elements, code). An enlarged cursor arrow only occupies the arrow's own silhouette.
- Overlay-based highlights also inherit the one-frame trailing problem during movement, which is especially noticeable at presentation scale.
- Keeping it cursor-only makes the feature a pure
SetSystemCursor image swap: simpler, zero-latency, and no extra overlay window to manage.
Synergy with the indicator-as-cursor proposal
If the "render indicator as cursor" idea (submitted separately) is implemented, presentation mode falls out almost for free: both features are "generate a cursor image and apply it via SetSystemCursor". A presentation mode would then simply be a mode whose cursor image is big (and/or recolored).
Alternatives considered
- Windows accessibility pointer size: global, requires opening Settings, no quick toggle, affects all workflows.
- Presentation apps' built-in highlighting: app-specific, not available when demoing arbitrary software.
- mousemaster's current indicator as a large highlight circle: workable today, but it covers the content being pointed at, and it trails the cursor by a frame during movement (see the indicator-latency report), which is very visible at presentation scale.
Happy to test builds. Thanks!
Use case
When presenting, screen-sharing, recording tutorials, or pair-programming, the audience often loses track of the mouse cursor. Presentation tools solve this with an enlarged cursor or a highlight around it, but they are app-specific or global toggles buried in OS settings.
mousemaster's mode system is a perfect fit for this: a "presentation mode" would just be a regular user-defined mode that enlarges the cursor while active, entered/exited with any combo the user likes.
Proposal
A per-mode cursor scale (or size) property:
While a mode with
cursor.scaleis active, mousemaster would swap the system cursors for scaled-up copies (viaSetSystemCursor), restoring the originals on mode exit — the same mechanism the hide-cursor feature already uses, so the infrastructure (including the OCR_* enumeration and the GDI-handle-leak workaround) already exists inWindowsMouseController.Optionally, a cursor color/tint property could complement it (e.g. a high-contrast or colored cursor), which also helps visibility on projectors with washed-out colors:
Design consideration: deliberately NOT a halo/circle overlay
I'd argue this feature should stay at the level of changing the cursor's own size/color, not drawing rings, halos, or highlight circles around it:
SetSystemCursorimage swap: simpler, zero-latency, and no extra overlay window to manage.Synergy with the indicator-as-cursor proposal
If the "render indicator as cursor" idea (submitted separately) is implemented, presentation mode falls out almost for free: both features are "generate a cursor image and apply it via SetSystemCursor". A presentation mode would then simply be a mode whose cursor image is big (and/or recolored).
Alternatives considered
Happy to test builds. Thanks!