Ceci est une ancienne révision du document !
XBindKeys
XBindKeys permet d'assigner des commandes shell à des raccourcis clavier (touches et combinaisons de touches) ou à des boutons de souris (les combinaisons clavier/souris étant possibles).
XBindKeys est particulièrement utile pour configurer certaines touches multimédia mal reconnues, une télécommande mal supportée, les boutons d'un modèle de souris exotique…
Installation
Installez le paquet : xbindkeys
Interface graphique
Installez le paquet : xbindkeys-config
xbindkeys-config est une interface graphique pour xbindkeys. Pour ajouter une nouvelle règle, il vous suffit d'y créer un nouveau raccourci, de cliquer sur la touche correspondante, de définir la commande et d'enregistrer cette nouvelle règle.
Principe et utilisation
XBindKeys permet d'édicter des règles qui font le lien entre une touche (ou une combinaison de touches) et une action (une commande shell). Ces règles sont définies dans le fichier ~/.xbindkeysrc
(c'est-à-dire /home/VOUS/.xbindkeysrc
). Si on voulait que la combinaison de touche [Alt] + [B]
déclenche le lancement de Brasero, on pourrait écrire, dans ~/.xbindkeys
:
"brasero" control + b
Certaines règles sont plus cmopliquées à décrire car les touches ne portent pas toutes des noms évidents. Pour désigner les touches en général, on peut utiliser des keycodes, dont les valeurs s'obtiennent en utilisant la commande xev
. L'appui sur une touche ou un bouton affiche un ensemble d'information, dont le keycode, ou le numéro du bouton pour une souris, ainsi que l'état (une information du serveur graphique X relative aux combinaisons de touches). Voici un exemple de ce que xev
affiche lors de l'appui et du relâchement de la touche « b » sur un clavier bépo :
KeyPress event, serial 31, synthetic NO, window 0x2600001, root 0x4d, subw 0x2600002, time 55087997, (40,40), root:(44,105), state 0x0, keycode 24 (keysym 0x62, b), same_screen YES, XLookupString gives 1 bytes: (62) "b" XmbLookupString gives 1 bytes: (62) "b" XFilterEvent returns: False KeyRelease event, serial 31, synthetic NO, window 0x2600001, root 0x4d, subw 0x2600002, time 55088123, (40,40), root:(44,105), state 0x0, keycode 24 (keysym 0x62, b), same_screen YES, XLookupString gives 1 bytes: (62) "b" XFilterEvent returns: False
L'état (state : 0x0
) et le keycode (24
) sont les deux informations importantes pour XBindKeys.
Pour les souris : xev
est très bavard et affiche notamment toutes les informations de déplacement de la souris, ce qui peut être gênant lorsque que l'on cherche à afficher les informations sur les boutons en cliquant dans la petite fenêtre Event Tester. Il est plus simple de filtrer la sortie avec xev | grep button
.
De nombreux exemples utilisant les informations données par xev
sont donnés à la section « configuration » du site de XBindKeys.
Pour tester vos règles, lancez XBindKeys avec la commande xbindkeys -v
: l'option -v
force l'affichage d'informations sur le déroulement des actions XBindKeys. Si vous avez défini la règle proposée plus haut relative à Brasero (ou à tout autre programme de votre choix) et que vous déclenchez la combinaison de touche appropriée, vous devriez lire quelque chose comme :
$ xbindkeys -v displayName = :0.0 rc file = /home/VOUS/.xbindkeysrc rc guile file = /home/VOUS/.xbindkeysrc.scm getting rc guile file /home/VOUS/.xbindkeysrc.scm. WARNING : /home/VOUS/.xbindkeysrc.scm not found or reading not allowed. 1 key in /home/VOUS/.xbindkeysrc min_keycode=8 max_keycode=255 (ie: know keycodes) "brasero" Control + b starting loop... Key press ! e.xkey.keycode=24 e.xkey.state=4 "brasero" Control + b Start program with fork+exec call Key release ! e.xkey.keycode=24 e.xkey.state=4 Catch CHLD signal -> pid 11725 terminated
Pour quitter ce mode interactif, faites [Ctrl] + [C]
. Si tout va bien, vous pouvez lancer xbindkeys
en tâche de fond.
Lancer XBindKeys automatiquement
Pour que les règles que vous aurez définies soient effectives à chaque démarrage de votre ordinateur sans que vous n'ayez à vous en soucier, il suffit de lancer automatiquement xbindkeys
au démarrage de l'interface graphique :
- sous Gnome, ajoutez
xbindkeys
dans Système/Préférences/Sessions - sous KDE, créez un lanceur dans ~/.kde/Autostart
Exemple de règles
# À faire : exemple de règles pour les claviers
# Quelques règles utiles pour les souris # Raccourci Alt+gauche associé avec le bouton 9 # (dans Firefox, permet de revenir à la page précédente) "/usr/bin/xvkbd -xsendevent -text "\[Alt_L]\[Left]"" m:0x0 + b:9 # Lance un terminal lorsque le bouton 2 est enclenché "/usr/local/bin/terminal" m:0x0 + b:2 # Note : on pourrait utiliser une action du type : # "echo ButtonPress 2 ButtonRelease 2 | xmacroplay -d 0 :0.0" # avec le programme xmacro (voir ci-après) # Émule le collé par l'habituel clic-milieu avec le bouton 8 # (colle la sélection courante/la dernière sélection) # Nécessite le programme xsel (voir ci-après) "echo "string $(xsel -o)" | xmacroplay -d 0 :0.0" m:0x0 + b:8
Programmes tiers utiles
Xev
Si vous vous en tenez au combinaisons usuelles ([Ctrl]',
[Alt], touches alphabétiques…), Xev ne vous est pas indispensable. Dans tous les autres cas, vous aurez certainement besoin de
xev pour récupérer les informations utiles.
==== XSel ====
X, le serveur graphique le plus courant sous Ubuntu et GNU/Linux, gère plusieurs presse-papiers. On distingue essentiellement :
* le clipboard, qui correspond au texte mémorisé (resp. restitué) par l'action usuelle « copier » (resp. « coller ») ;
*
PRIMARY, le texte sélectionné à la souris, qui peut par la suite être collé par un clic milieu (en général, en enfonçant la molette des souris qui en possède une) et ce que le texte source soit encore sélectionné ou non. Cette fonctionnalité semble très prisée des utilisateurs.
XSel est un programme qui permet de manipuler
PRIMARY et donc de forcer sa valeur ou de récupérer la sélection courante. Il devient dès lors possible d'émuler le clic milieu en terme de copie-coller (ie. cela ne permet pas d'émuler d'autres actions associées au clic milieu, telle que l'ouverture d'un lien dans un nouvel onglet dans Firefox : Xev ne s'occupe que de
PRIMARY).
Un exemple d'utilisation de
xev est donné plus haut.
Site officiel de XSel
==== Xmacro ====
Xmacro est un programme de gestion des évènements claviers et souris qui permet de monter de véritables « scénarios » d'actions.
xmacrorec écoute et enregistre une suite d'actions,
xmacroplay'' rejoue un ensembles d'évènements. Dans le cas d'une utilisation avec XBindKeys, on utilisera essentiellement les fonctionnalités d'acteur de Xmacro, qui propose un jeu très complet d'actions clavier et souris pour simuler des évènements (du type « telle touche es enfoncée », « tel bouton vient d'être relâché »).