Simple application to display keystrokes during screencasts or presentations.
C Makefile
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Showkeys is a simple program to display keys being pressed on the screen.

It is useful while making presentations and screencasts. The audience will be able to see the keys being pressed.

It is similar to key-mon. Key-mon has more features that showkeys. The advantages of showkeys are

  1. Doesn't use gtk/gnome.
  2. Uses libxosd to display keys directly onto the screen.
  3. No floating windows that always need to be on top. This is very useful if you're using a tiling WM like Xmonad.
  4. Keystroke history. key-mon has this but doesn't show modifiers. showkeys does using and Emacs style key notation.

The list of things which key-mon does better than showkeys is far longer but I wanted something that fixed these specific issues.


You will need

  1. The Xlib development libraries. (available as libx11-dev on Debian).
  2. The libxosd development libraries (available as libxosd-dev on Debian).
  3. The libXtst development libraries (available as libxtst-dev on Debian).
  4. Your X server should have the record extension enabled. You can check if this is enabled by running xdpyinfo and searching the list of extensions for RECORD. The command itself is part of the x11-utils package (alteast on Debian which I run).


  1. Unzip the tarball.
  2. Edit the file config.h configure showkeys.
  3. Run make showkeys. It should create the executable.

This program uses some Gnu extensions to libc so might not work with a pure POSIX libc.


The project is on Github. Please report bugs using the issue tracker.