A screencast tool to display your keys, inspired by Screenflick.
This is an almost-complete rewrite of screenkey 0.2, featuring:
Latest 5 available releases of screenkey (most recent first):
Full archive in releases/.
Files as found in the latest release of screenkey:
|NEWS:||Summary of changes between releases.|
All the relevant source/developer information can be found on Github:
Execute without installation:
sudo ./setup.py install
Install dependencies (on Debian/Ubuntu):
sudo apt-get install python-gtk2 python-setuptools python-setuptools-git python-distutils-extra
You can also install “screenkey” via ArchLinux’s AUR package:
Choose the translation method of keyboard events.
“Composed” attempts to show only the final results of key composition. Dead keys and any intermediate output during composition is not shown. Currently works correctly with XIM/IBUS, but only for on-the-spot editing. It can cause problems with complex input methods (support for wider compatibility is underway).
“Translated” shows the result of each keypress on the keyboard, accounting for the current keyboard locale and modifiers, but not composition. Pressing a dead key followed by a letter will show both keys.
“Raw” shows which key caps were pressed on the keyboard, without translation. For example, typing “!” (which is often located on top of the key “1”) requires pressing “Shift+1”, which is what this output mode shows. “Backspace mode”, “Always visible Shift” and “Modifiers only” have no effect in this mode.
“Keysyms” shows the keysyms (“symbolic” names) of each pressed key as received by the server. Mostly useful for debugging.
Controls the effect of “backspace” on the text in the output window.
“Normal” always inserts a backspace symbol in the output window.
“Baked” simulates the effect of backspace in the text only if the last keypress is a regular letter and no caret movement has been detected. In any other case, a backspace symbol is inserted instead.
“Full” is similar to “baked”, but will eat through several other, less safe keys, such as tabs and returns.
Shift is normally hidden when the control sequence includes a letter that can differentiate between a shifted/non-shifted key. For example, Shift + “Control+a” is normally shown just as “Control+A” (notice the capital “A”).
When “Always show Shift” is used, Shift is always included in modifier sequences, if pressed. Has no effect when using the “Emacs” modifiers mode.
Press both control keys during a recording to disable screenkey (for example, during password prompts). Press both again to resume it.
If you need the viewer to focus on a sentence you just typed, you can press a silent modifier (such as Shift, or Control) to keep the output window visible a little longer.
screenkey is normally positioned on the top/center/bottom part of the screen.
If you’re recording a screencast only for a specific application, you can click on “Select window/region” to select on which window the output should be overlaid (slop must be installed for this task). When a window has been selected, top/center/bottom refer to the window’s contents. Press “Reset” to restore the original behavior.
When “fixed” is chosen, the position of the output is specified directly. The cursor turns immediately into a crossbar: drag over the desired screen region (where the text should appear), or press “Esc” to abort. Again, press “Reset” to restore the original behavior.
The “geometry” argument follows the standard X11 geometry format (WxH[+X+Y]) and can be provided by slop, which allows to select windows and/or drag over the desired region interactively without the need of calculating the coordinates manually.
When a geometry argument has been provided, the position (top/middle/bottom) becomes relative to the selected rectangle. For example, to overlay screenkey on top of an existing window, you can simply do:
./screenkey -g $(slop -n -f '%g')
To set the actual text rectangle instead, use “fixed” positioning. Using slop, you can combine both and simply drag the desired rectangle during selection:
./screenkey -p fixed -g $(slop -n -f '%g')
The default font is “Sans Bold”, which is usually mapped to “DejaVu Sans” on most Linux installations (look for the ttf-dejavu package). It’s a good all-around font which provides all the required glyphs and has excellent readability.
For screencasts about programming, we recommend “DejaVu Sans Mono Bold” instead, which provides better differentiation among similar letterforms (0/O, I/l, etc).
“screenkey” supports several multimedia keys. To display them with symbols instead of text abbreviations, FontAwesome needs to be installed.
On Debian/Ubuntu, the font is available in the fonts-font-awesome package. On Arch Linux the package is instead ttf-font-awesome.
“screenkey” should work correctly by default with any tiling window manager.
The original version of screenkey used to require customization for the output window to work/float correctly. These settings are no longer required with this fork, and can be safely removed.
If you don’t have a system tray, you can either configure screenkey through command line flags or use --show-settings to test the configuration interactively.
To get transparency you need a compositor to be running. For example, “compton” or “unagi” are popular for their low impact on performance, but “xcompmgr” also works correctly without any additional configuration.