Linux: xbindkeys Tutorial

By Xah Lee. Date: . Last updated: .

xbindkeys is a tool to let you create keyboard shortcuts to run shell commands, globally.

xbindkeys can bind almost any key or key combination. Example: CapsLock, ScrLk, Pause, F2, number pad keys, multimedia keys, and special app launch buttons, and also standard modifier key combinations such as ▤ Menu, Ctrl+3, Super+3, etc.

Install xbindkeys

# install xbindkeys
sudo apt-get install xbindkeys

xbindkeys config file

Create a file at

~/.xbindkeysrc

Add the following content:

# sample xbindkeys config
# place this file at ~/.xbindkeysrc

# make F8 launch Google Chrome browser
"google-chrome"
F8

# make F3 do Ctrl+c
"xvkbd -no-jump-pointer -xsendevent -text '\Cc'"
F3

Mouse button example:

# mouse button 9 sends Control + PageUp
"xvkbd -xsendevent -text '\C\[Page_Up]'"
b:9

# mouse button 8 sends Control + PageDown
"xvkbd -xsendevent -text '\C\[Page_Down]'"
b:8

For each keybinding in this example, the xbindkeys config takes 2 lines.

Reload the Config File

Reload the config file:

# make xbindkeys reload config
killall -s1 xbindkeys

Start xbindkeys:

# start xbindkeys daemon
xbindkeys -f ~/.xbindkeysrc

Actions

To fully use xbindkeys, you need to know what shell scripts to call.

Sending Keys

To have shell command send keys, you need to install xvkbd.

[see Linux: xvkbd tutorial]

Launching App

Use the app's command name directly. For example,

For GUI app command names or how to find the name, see:

Open File

Call xdg-open to open file.

xdg-open ~/todo.txt

Switch Windows

Linux: Add Keyboard Shortcut to Switch App

Control Sound

Linux: Change Volume by Command