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.
2. First run
- Launch KeyOverlay from the Start menu after installing it, or run
keyoverlay-app.exeif you built it from source. The settings window opens; this is your control panel. - The overlay itself is enabled by default. Press any key — a pill with the key name appears on screen.
- Click your mouse or scroll — the mouse icon lights up the matching button or shows a scroll arrow.
- 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
| Tab | What 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
- Open the Position tab.
- 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.
- Choose a preset — any corner, top/bottom center, or screen center — and adjust the horizontal and vertical margins to taste.
- 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.
6. Cursor highlight & click animation
- Open the Cursor tab and switch on Enable cursor highlight.
- 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.
- Tune Size, Thickness, Opacity, and Glow until it reads well on your background.
- 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.
- Switch on Enable click animation for an expanding pulse ring on every click — the single best upgrade for recorded demos.
7. Keystroke sounds
- Open the Sounds tab and switch on Enable keystroke sounds.
- Choose a pack: Typewriter (sharp and snappy), Mechanical (lower, keyboard-like), Soft Click (gentle), or Pop (round and bubbly).
- 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:
| Platform | Path |
|---|---|
| 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
- Match the baseline first. Set the Position tab's resolution and scale to your recording monitor before fine-tuning placement.
- Bottom center works well for tutorials — viewers' eyes are usually on the upper two-thirds of the screen.
- Bump the overlay scale (1.2–1.5×) if you record at 1080p but publish at 720p, so shortcuts stay readable after downscaling.
- Pair the cursor highlight with click animation for mouse-heavy demos, and set a 2–3 second auto-hide so the ring vanishes during narration pauses.
- Longer display duration (2–3 s) gives viewers time to read complex shortcut chords; shorter (0.5–1 s) keeps fast typing tidy.
10. Troubleshooting
| Symptom | Fix |
|---|---|
| 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. |