How to use KeyOverlay

Everything from first install to a polished recording setup. Five minutes, start to finish.

1. Install or build

The easiest way to use KeyOverlay on Windows is to download the installer from the v0.2.0 release page. Download and run KeyOverlay-v0.2.0-Windows-x64.exe to install the app — you do not need to build it from source.

If you prefer to build KeyOverlay yourself, use the Rust toolchain (rustup.rs, Rust 1.74 or newer):

git clone https://github.com/dshepstone/keyoverlay.git
cd keyoverlay
cargo build --release -p keyoverlay-app

The locally built executable is at target\release\keyoverlay-app.exe on Windows (target/release/keyoverlay-app elsewhere). Copy it anywhere you like — it is a single self-contained binary with the icon and sounds embedded.

Platforms: Windows 10/11 is the primary, fully supported target. The project also compiles on Linux and macOS for development; on those platforms some Windows-specific features (cursor highlight window, keystroke sounds, click-through region shaping) are stubbed. On macOS, global input capture additionally requires granting Accessibility permission.

2. First run

  1. Launch KeyOverlay from the Start menu after installing it, or run keyoverlay-app.exe if you built it from source. The settings window opens; this is your control panel.
  2. The overlay itself is enabled by default. Press any key — a pill with the key name appears on screen.
  3. Click your mouse or scroll — the mouse icon lights up the matching button or shows a scroll arrow.
  4. The status line at the bottom of the sidebar shows a pulsing green dot while the overlay is active.

The overlay window is click-through and never takes focus, so you can keep working normally while it is visible. When you stop typing, the overlay fades out on its own.

3. Turning the overlay on and off

Use the ON / OFF button in the top-right corner of the settings window. One click toggles the keystroke overlay; the setting is remembered across restarts. Minimizing the settings window keeps the overlay running — restore it from the taskbar whenever you want to change something.

4. The settings window, tab by tab

TabWhat you'll find there
General Color theme (Dark / Light / Custom with per-element colors), font size, overlay scale, content and background opacity, pill rounding, and the Save & Apply / Reset Defaults buttons.
Keystroke Toggles for keyboard strokes, mouse clicks, mouse-click text, the mouse icon, and scroll events — plus display duration, fade duration, and the maximum number of visible events.
Cursor The cursor highlight: theme picker, size, thickness, opacity, glow, auto-hide timer, click animation, and whether the pointer sits at the circle's center or its lower-right edge.
Sounds Keystroke sounds on/off, volume, and the sound pack picker (Typewriter, Mechanical, Soft Click, Pop, or None).
Position Display baseline (resolution and Windows display scale), position presets, layout direction, manual X/Y sliders, margins, and overlay size.
License / About The MIT license text, version information, and a feature summary.

Most controls apply instantly. On the General tab, click Save & Apply after editing. Changes are written to disk automatically a moment after you stop adjusting.

5. Positioning the overlay

  1. Open the Position tab.
  2. Set the display baseline to match your monitor: pick your resolution (e.g. 1920 × 1080) and your Windows display scaling (e.g. 125%). This lets the presets land exactly where you expect on high-DPI screens.
  3. Choose a preset — any corner, top/bottom center, or screen center — and adjust the horizontal and vertical margins to taste.
  4. For pixel-perfect placement, choose Manual (X/Y) and drag the X and Y sliders; the overlay moves live so you can see exactly where it lands. The Snap to lower-right button is a quick reset.
Multiple monitors: manual coordinates may be negative, which is normal for a monitor positioned to the left of (or above) your primary display.

6. Cursor highlight & click animation

  1. Open the Cursor tab and switch on Enable cursor highlight.
  2. Pick one of six themes: Green Ring, Blue Glow, Red Dot, Yellow Pulse, Purple Haze, or White Circle. Rings outline the pointer; dots fill behind it; glow themes add a soft halo.
  3. Tune Size, Thickness, Opacity, and Glow until it reads well on your background.
  4. Optionally set Hide cursor after so the highlight disappears when the mouse has been idle (0 = never hide). It reappears the moment you move or click.
  5. Switch on Enable click animation for an expanding pulse ring on every click — the single best upgrade for recorded demos.

7. Keystroke sounds

  1. Open the Sounds tab and switch on Enable keystroke sounds.
  2. Choose a pack: Typewriter (sharp and snappy), Mechanical (lower, keyboard-like), Soft Click (gentle), or Pop (round and bubbly).
  3. Set the volume. Sounds play on key-down for regular keys; holding a key or pressing bare modifiers stays silent, so fast typing never turns into noise.

8. Where settings are stored

Settings live in a single JSON file:

PlatformPath
Windows%APPDATA%\keyoverlay\config.json
Linux~/.config/keyoverlay/config.json
macOS~/Library/Application Support/keyoverlay/config.json

The file is written atomically and validated on load — out-of-range or missing values fall back to safe defaults, so you can hand-edit it (or delete it to start fresh) without risk. Reset Defaults on the General tab does the same from inside the app.

9. Tips for recordings

10. Troubleshooting

SymptomFix
Nothing appears when typing Check the ON/OFF toggle in the settings window, and that Show keyboard strokes is enabled on the Keystroke tab.
Overlay is in the wrong place after changing monitors or scaling Update the display baseline (resolution + scale) on the Position tab; presets are computed from it.
Sounds don't play Make sure the pack isn't set to None and the volume is above zero.
Cursor ring not visible Increase size/opacity, and check the auto-hide timer — 0 means never hide. The ring is a Windows-only feature.
Settings look wrong or corrupted Click Reset Defaults, or delete config.json (see above) and restart.
Something else? Open an issue at github.com/dshepstone/keyoverlay/issues — include your Windows version and display scaling.