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.2 (2023-12-27)

  • Change linking order of libX11 to resolve “missing symbol” problems on some X11 installations.

  • configure now aborts if it cannot detect an X11 installation.

All releases

Repository (issues, PRs, etc.)

Man pages for the latest release: