From sxhkd's Github page:
- sxhkd is a simple X hotkey daemon with a powerful and compact configuration syntax.
Install or AUR.
Sxhkd Config File
sxhkd defaults to
$XDG_CONFIG_HOME/sxhkd/sxhkdrc for its configuration file. An alternate configuration file can be specified with the
Each line of the configuration file is interpreted as so:
- If it starts with
#, it is ignored.
- If it starts with one or more white space commands, it is read as a command.
- Otherwise, it is parsed as a hotkey: each key name is separated by spaces and/or
[MODIFIER + ]*[@|!]KEYSYM COMMAND
MODIFIER is one of the following names:
@ is added at the beginning of the keysym, the command will be run on key release events, otherwise on key press events. If
! is added at the beginning of the keysym, the command will be run on motion notify events and must contain two integer conversion specifications which will be replaced by the x and y coordinates of the pointer relative to the root window referential (the only valid button keysyms for this type of hotkeys are:
KEYSYM names are those your will get from
Mouse hotkeys can be defined by using one of the following special keysym names:
button24. The hotkey can contain a sequence of the form (
STRING_N), in which case, the command must also contain a sequence with N elements: the pairing of the two sequences generates N hotkeys. In addition, the sequences can contain ranges of the form
A-Z where A and Z are alphanumeric characters.
What is actually executed is
SHELL -c COMMAND, which means you can use environment variables in
SHELL will be the content of the first defined environment variable in the following list:
SHELL. If sxhkd receives a
SIGUSR1 signal, it will reload its configuration file.
Systemd Service File
Create systemd service file for the user in question
[Unit] Description=Simple X Hotkey Daemon Documentation=man:sxhkd(1) BindsTo=xorg.service After=xorg.service [Service] ExecStart=/usr/bin/sxhkd ExecReload=/usr/bin/kill -SIGUSR1 $MAINPID [Install] WantedBy=graphical.target
Enable and start the service
# systemctl --user enable sxhkd.service # systemctl --user start sxhkd.service
After configuring it, you may wish to setup sxhkd to autostart.
# On mouse button 1 press Alt_R+F1 button1 xte "keydown Alt_R" "keydown F1" "keyup Alt_R" "keyup F1" # On mosue button 2 pause 3 seconds then press Alt_R+F2 button2 xte "sleep 3" "keydown Alt_R" "keydown F2" "keyup Alt_R" "keyup F2"
Restart user's sxhkd service
# systemctl --user restart sxhkd.service