keypop-0.1.0 is not a library.
keypop
A transparent keypress overlay for Linux. Shows your recent keypresses in a pill bar — great for screencasts, tutorials, and live demos.
Works on X11 and Wayland.
┌──────────────────────────────────┐
│ │
│ (your desktop) │
│ │
│ ┌──────────────────┐│
│ │ Ctrl+C │ Tab │ V ││
│ └──────────────────┘│
│ ▲ │
│ ════════════════════│
└──────────────────────────────────┘
Install
Make sure you have Rust installed, then:
This builds a release binary and places it in ~/.cargo/bin/keypop.
System dependencies
# Ubuntu / Debian
# Fedora
Permissions
keypop reads directly from /dev/input. Add yourself to the input group — no root required:
# log out and back in, then verify:
|
Usage
Configure
Set your preferences interactively. Press Enter to keep the value shown in brackets:
keypop configuration
Press Enter to keep the value shown in [brackets].
Font size [24]: 28
Opacity (0.0–1.0) [0.75]:
Display time in seconds (2, 3, or 5) [3]: 5
Number of keys to show (1–5) [3]:
Saved to /home/user/.config/keypop/config.toml
Settings are saved to ~/.config/keypop/config.toml. Run keypop configure again at any time to update them.
Run
Press Esc or Ctrl+C to quit.
Options
| Setting | Default | Description |
|---|---|---|
font_size |
24 |
Key label font size in pixels |
opacity |
0.75 |
Bar opacity (0.0–1.0) |
display_time |
3 |
Seconds before overlay hides (2, 3, or 5) |
keys |
3 |
Number of recent keys to show (1–5) |
Tiling WM notes
| WM | Config |
|---|---|
| Sway | for_window [app_id="keypop"] floating enable, sticky enable |
| Hyprland | windowrulev2 = float, class:^(keypop)$ + windowrulev2 = pin, class:^(keypop)$ |
| i3 | Requires a compositor (e.g. picom) for transparency |
| GNOME / KDE | Works out of the box |
License
MIT — see LICENSE