Shake-to-enlarge cursor for Windows 11 — move the mouse quickly back and forth and the cursor grows for a moment so you can find it again, just like on macOS. When the shaking stops, the cursor smoothly shrinks back to its normal size.
Runs quietly in the system tray. Native C++/Win32, no runtime dependencies —
a single portable ShakeToZoom.exe.
Get the latest release from the Releases page.
- Installer (recommended) —
ShakeToZoomSetup-<version>.exe. Installs for the current user only, no admin rights required, to%LocalAppData%\Programs\ShakeToZoom, with a Start Menu entry, an optional desktop shortcut, and a proper uninstaller. - Portable —
ShakeToZoom.exe. Run it from anywhere, no installation needed.
If you enable "Start with Windows" from the tray menu, it registers whichever copy is currently running. If you switch between the portable exe and the installed copy (in either direction), re-enable "Start with Windows" from the tray menu of the copy you want to keep using, so the autostart entry points at it.
The installer is unsigned (no code-signing certificate), so Windows SmartScreen will show an "unrecognized app" warning on first run — click More info → Run anyway to proceed.
- A low-level mouse hook (
WH_MOUSE_LL) samples global mouse movement. ShakeDetectorscores rapid direction reversals; the score decays over time. The effect is all-or-nothing: as soon as the score passes the activation threshold the cursor goes straight to the configured maximum size, reaching it in 0.1 s so it reads as an instant jump rather than a gradual ramp-up.CursorOverlayis a transparent, click-through, top-most layered window that draws the current cursor enlarged over the real one (which stays fully functional underneath — the click hotspot is unchanged). Per-pixel alpha is recovered by drawing the cursor over both black and white backgrounds, so it works for every cursor type. The animation timer only runs while the cursor is enlarged, so idle CPU usage is ~0 %.- The effect stays dormant while a full-screen application owns the foreground (games, video players, presentation mode) and inside remote desktop sessions. If either starts while the cursor is enlarged, it drops back immediately.
- Enabled — toggle the effect on/off
- Settings… — a small dialog whose sliders apply live while you drag them:
- Sensitivity (0–100 %, higher = easier to trigger)
- Maximum cursor size (150–900 %)
- Shrink animation speed (how gently the cursor shrinks back; growing is always the fixed 0.1 s ramp)
- Stay enlarged for at least (0.1–3.0 s) — once triggered, the cursor keeps its size for at least this long after the last shake before shrinking
- Start with Windows — add/remove the autostart entry
- About / Exit
Settings are stored under HKCU\Software\ShakeToZoom; autostart under
HKCU\Software\Microsoft\Windows\CurrentVersion\Run.
Requires MSVC (Build Tools) and CMake + Ninja (both ship with Visual Studio).
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build buildThe executable is produced at build\ShakeToZoom.exe. Run it from a
"x64 Native Tools" command prompt, or configure the toolchain paths as needed.
Also requires Inno Setup 6.
"C:\Program Files (x86)\Inno Setup 6\ISCC.exe" ^
/DMyAppVersion=1.1.0 installer\ShakeToZoom.issPass the same version currently set in res/resource.h. The installer is
produced at build\installer\ShakeToZoomSetup-1.1.0.exe. Release builds are
produced automatically by CI on every version tag — see
.github/workflows/release.yml.
Released under the MIT License.
