KeyOverlay displays every keystroke, shortcut, click, and scroll in a clean, always-on-top overlay β so viewers can follow along instead of guessing what just happened.
Made for anyone who demonstrates software on a screen. Your hands are on the keyboard β KeyOverlay makes sure the screen tells that story.
A small native Rust application with no runtime, no browser engine, and no background bloat. It idles quietly and stays responsive during the fastest typing bursts.
The overlay is transparent, always on top, and fully click-through. It never steals focus, never blocks a click, and never interferes with the application you're demonstrating.
Crisp, high-contrast key pills read clearly at any capture resolution, and the overlay scales for high-DPI displays β so shortcuts stay legible in the final video, not just on your monitor.
MIT-licensed with the full source on GitHub. Use it in classrooms, companies, and commercial videos. Audit it, fork it, improve it β contributions are welcome.
If people watch your screen, KeyOverlay earns its place in the corner of it.
Every feature is optional and adjustable from the built-in settings window β no config files to hand-edit.
Every key appears as a large, readable pill the moment you press it. Modifier combos like Ctrl + Shift + S are grouped and ordered consistently, and held keys stay visible until released.
An animated mouse icon highlights left, middle, and right buttons as you click, with directional arrows for scroll-wheel activity β optional event text included.
Six cursor themes β rings, dots, and glows β follow your pointer so viewers never lose it. Adjustable size, thickness, opacity, glow, and an auto-hide timer for when the mouse is idle.
An expanding ring pulses outward on every click, making mouse actions unmistakable in recordings β even at a glance in a video thumbnail.
Optional audio feedback with four generated sound packs β Typewriter, Mechanical, Soft Click, and Pop β with adjustable volume. No audio files needed; the sounds are synthesized in-app.
Dark and light themes out of the box, plus a fully custom mode with your own colors for keys, modifiers, mouse, and scroll events. Font size, opacity, scale, and pill rounding are all tunable.
Anchor the overlay to any corner, edge, or the center of the screen β or place it pixel-perfectly with manual X/Y coordinates. Margins, size, and display-scaling baselines keep it where you put it.
Every option is saved automatically and restored on the next launch. Settings are validated on load, so an old or damaged config file can never break the app.
KeyOverlay is released under the MIT license. That means it's free for personal, educational, and commercial use β forever.
Four focused crates β core, input, overlay, and app β with a test suite covering key formatting, positioning math, settings validation, and animation timing.
Input is only used to draw the overlay. There is no network code, no telemetry, and no logging of what you type. The source is right there to verify it.
Found a bug or want a feature? Open an issue or a pull request on GitHub. CI checks formatting, linting, tests, and release builds on every change.