hk

hk allows temporary X11 hotkeys to be set. Its usage is:

hk [-w] <hotkey> <command> [<argument> ...]

where <hotkey> is of the form [Modifier1[+Modifier2[+...]]+]<Key>. For example:

hk Ctrl+Shift+F6 notify-send "Hello"

will execute the command notify-send "Hello" when Ctrl+Shift+F6 is pressed. hk exits as soon as the command has executed.

hk passes through stdin unchanged so you can pipe input to commands e.g.:

uname | hk Ctrl+F8 xargs notify-send

By default, hk executes the command as soon as the hotkey sequence is pressed. The -w option makes hk wait until all keys (not just the hotkeys) have been released. This can be useful if the action of the command can be effected by key presses. For example if you use xdotool type to enter text on a hotkey, then having the Ctrl key held down can have surprising effects which -w can alleviate:

uname | hk -w Ctrl+F8 xdotool type --file -

Download and docs

Latest release: hk-0.3.3 (2026-05-14)

  • Add a test suite.

  • Ensure that the keys pressed match those requested. This is, at least, necessary under Xvfb, but may also be necessary in other situations.

All releases

Repository (issues, PRs, etc.)

Man pages for the latest release: