XBindKeys
Utilisation
News
Installation
Configuration
Utilities
Licence
Mailing list
French
German
Last update: Sat May 23 2020
xbindkeys on
savannah.org
If you find xbindkeys a little limited or you hack a lot of scheme for it, maybe
you can have an interest in this
window manager (clfswm)
xbindkeys
is a program that allows
you to launch shell commands with your keyboard or your mouse under X Window.
It links commands to keys or mouse buttons, using a configuration file.
It's independant of the window manager and can capture all keyboard keys
(ex: Power, Wake...).
Utilisation
usage: [--version|-V] [--defaults|-d] [--file|-f file] [--help|-h] [--display|-X display-name] [--vebose|-v] [--show|-s] [--key|-k] [--multikey|-mk] [--geometry|-g geom]
-V, --version
Print version and exit
-d, --defaults
Print a default rc file
-f, --file
Use an alternative rc file
-h, --help
This help!
-X, --display
Set X display to use
-v, --verbose
More information on xbindkeys when it run
-s, --show
Show the actual keybinding
-k, --key
Identify one key pressed
-mk, --multikey
Identify multi key pressed
-g, --geometry
size and position of window open with -k|-mk option
-n, --nodaemon
don't start as daemon
News
Version 1.8.7
: Bugfix: Prevent scheme functions to be garbage collected (Thanks Jason Miller)
Version 1.8.6
: Bugfix: Do not grab keysym not mapped on keyboard. Prevent a AnyKey grab.
Version 1.8.5
: Add support for Guile 2.0 and replace some deprecated functions.
Many thanks to Hans-Peter Deifel.
Version 1.8.4
: Fix a memory fault with libX11-1.4.0. Many thanks to Anatoly
Bashmakov and firewalker for the bug report.
Version 1.8.3
: A listen loop was added in the main loop.
This fix a bug where, in the previous version, a keypress was needed to reload the
configuration file after a keybinding change.
Now one can edit the configuration file and keybindings are automatically updated after
each save. Many thanks to Edwin Stang!
Version 1.8.2
: Correction of typos in the man page.
An emphasis is made on the documentation about the guile configuration file
(the prefered way for non trivial configuration).
Many thanks to Brad Sawatzky.
Version 1.8.1
: Better Guile configuration with autotools.
Minor compilation warning have been fixed.
Version 1.8.0
: Enable a full access to the xbindkeys internal from the guile
scheme configuration file. A grabbed key can start a shell command
or run a scheme function. This enable to do more powerfull things
inside xbindkeys whitout the need of an external shell script
(like double click, timed double click or keys combinations).
Version 1.7.4
: xbindkeys.spec: Change Copyright to License.
Little english correction in warnings.
Configuration files are reloaded on the fly when they have
changed so there is no more need to send a HUP signal to reload
them.
Use `scm_c_define_gsubr' instead of 'scm_make_gsubr' with the
guile mode.
Version 1.7.3
: A bug under Solaris was fixed. This bug caused
an XBindKeys built with -DFORK_FLAG=1 to fail to wait for the
processes it spawns, leaving lots of defunct processes.
Thanks to Ciaran Anscomb for the patch.
Version 1.7.2
: Changes to grab keys in all display screens and not only in the
default root window (Xinerama suport).
Bugfix for the Guile support in configure.ac.
Version 1.7.1
: Minor bugfix: Verbose mode is not started as daemon.
Check rc file before starting as daemon (so warning about
configuration files are visible).
Version 1.7.0
: Add guile/scheme configurtion file style (Many thanks to Marcello
Mathias Herreshoff).
Add --file and --file_guile to use alternate configuration file in xbindkeys_show.
Version 1.6.5
: Add a --disable-tk option to prevent xbindkeys_show install.
So no tcl/tk dependency is needed.
Add a NOTE in xbindkeys man page to say that xbindkeys can
reread its config file with a -HUP signal (killall -HUP xbindkeys).
Add two verbose tests (forgotten in other versions).
Version 1.6.4
: Add an option at compile time to launch programs with
a system call instead of a fork+exec call (see ./configure --help).
Remove an umask(022) in the daemonize function which cause troubles.
Version 1.6.3
: Change to switch to autoconf2.5X and automake >= 1.6.
Xbindkeys doesn't move anymore to /tmp after the daemonize function.
Version 1.6.2
: Minor change in the configure.in to prevent rebuild of Makefile
when doing a make.
Version 1.6.1
: Minor bugfix : use strtol instead of atoi for hexadecimal modifier.
Version 1.6.0
: Add a 'Release' modifier to catch release events of keys or
mouse buttons instead of press events.
Xbindkeys doesn't use pthreads+system any more to start commands, it use fork+exec
instead.
Some modifications to make the code 'cleaner'.
Version 1.5.5
: better identification of modifiers with --key and
--mulitkey options.
Version 1.5.4
: Add warning when a key is unknown in .xbindkeysrc.
Version 1.5.3
: Bugfix: if the keycode is unknown then xbindkeys doesn't assign a
key with keycode=0.
Change: The default RC file doesn't use the Menu key which caused
problems.
Version 1.5.2
: xbindkeys doesn't stop if there is a conflict with another
key grabbing program, the conflicting key is simply ignored.
Version 1.5.1
: New interface for xbindkeys_show.
Version 1.5.0
: xbindkeys is now capable to trigger commands by catching
mouse button events.
Version 1.4.1
: This version solves some minor problems (warnings) when compiling with gcc 3.0.4 under Linux.
Version 1.4.0
: By default :
xbindkeys starts as daemon (use -n | --nodaemon option to prevent this feature).
xbindkeys use pthreads to start multi commands at the same time (use
./configure --disable-pthread to prevent this feature).
Version 1.3.0
: By default, xbindkeys does not anymore pay attention to
the NumLock, ScrollLock and CapsLock modifiers.
Version 1.2.2
: Rewrite of code for reading the configuration file.
No changes for the end user.
Version 1.2.1
: As xbindkeys is now looking for HUP signals you can reload
the configuration with the simple command:
killall -HUP xbindkeys
See the
ChangeLog
for more details.
The source :
xbindkeys-1.8.7.tar.gz
(~149K)
xbindkeys is hosted on
savannah
You can browse its source code
here
You can use git to get the last version with a command like this:
git clone git://git.savannah.nongnu.org/xbindkeys.git/
The Debian package :
or
The SPARC/Solaris 2.5-10 and x86/Solaris 8-10 packages :
MD5sum.
Installation
Download the source (See the download section).
Open a text console (for example, xterm).
Change to the directory into which you downloaded the source.
cd source_download_directory
Uncompress the source :
tar xzvf xbindkeys-1.x.x.tar.gz
Change to the new directory (created by tar) :
cd xbindkeys-1.x.x
Configure xbindkeys :
./configure
or
./configure --prefix=/where/you/want/to/install/xbindkeys
or
./configure --disable-guile
if you don't want to use
guile
Note: xbindkeys depends on
guile
unless you disable this feature.
Compile the program :
make
Install the program (as
root
if necessary) :
su root
make install
exit
Configure the program :
see the Configuration section.
You can now use xbindkeys by typing :
xbindkeys &
or by loading it automatically when X starts up
by adding the preceeding line to the file
$HOME/.xsession
On Mandrake (and maybe Redhat), this method doesn't works.
Instead you can use : Configuration -> Gnome -> Advanced -> Session -> Startup Programs on Mandrake
or Gnome menu -> Settings -> Session -> Session Properties on Redhat.
Configuration
xbindkeys
uses a configuration file to link a command to a key
on your keyboard.
Usually this (file) is :
$HOME/.xbindkeyrc
You can edit it yourself or you can have a default one created by using :
xbindkeys --defaults > $HOME/.xbindkeysrc
Look at this as an example :
xbindkeysrc
(default)
xbindkeysrc
(1)
xbindkeysrc
(2)
xbindkeysrc.scm
The default guile configuration file
xbindkeysrc-combo.scm
An example of combination keys
Utilities
xbindkeys_show
You can anytime use the program
xbindkeys_show
This opens a window showing you all the commands and the keys linked
to them by
xbindkeys
(xbindkeys_show comes with the xbindkeys archive).
Note
: You must have Tcl/Tk installed on your system to use
this program.
double_click.sh
a little script to enable double click on keys
or mouse buttons.
double_click.sh
or
doubleclick_delayed.sh
(thanks to Isak Savo).
Licence
xbindkeys
is under a GPL license : Don't hesitate to copy it and to
distribute it around yourself.
You can find more information by reading the files
COPYING
or
COPYING.fr
or by visiting the site of the
Free Software Foundation
Mailing list
Any feedback on this program is welcome.
You can join use on the
devel mailing list
(Thanks Ramon for the translation)
US