====== Activer les touches multimédia de son calvier ======

Il existe plusieurs méthodes:

  *avec le logiciel keytouch
  *avec l'utilitaire xbindkeys
  *en créant un script à l'aide de xev

===== Méthode 1: Avec Keytouch =====

Installer keytouch

  # pacman-g2 -S keytouch

Keytouch dispose déjà d'une liste de clavier, avec un peu de chance le vôtre sera dedans et vous pourrez le configurer très facilement.

Si votre clavier n'est pas dans la liste, vous pouvez créer le fichier de configuration pour votre clavier très simplement à l'aide de keytouch-editor qu'il vous faudra installer:

  # pacman-g2 -S keytouch-editor

Une fois votre clavier configurer, il vous reste qu'a ajouter le service keytouch et faire en sorte qu'il lançé à chaque démarrage:


  # service keytouch start
  # service keytouch add


===== Méthode 3: Avec xbindkeys =====

Installer xbindkeys:

  # pacman-g2 -S xbindkeys

Il faut ensuite créer le fichier de configuration:

  $ nano ~/.xbindkeyrc

Voici un exemple

<php>
# For the benefit of emacs users: -*- shell-script -*-
###########################
# xbindkeys configuration #
###########################
#
# Version: 1.8.2
#
# If you edit this file, do not forget to uncomment any lines
# that you change.
# The pound(#) symbol may be used anywhere for comments.
#
# To specify a key, you can use 'xbindkeys --key' or
# 'xbindkeys --multikey' and put one of the two lines in this file.
#
# The format of a command line is:
#    "command to start"
#       associated key
#
#
# A list of keys is in /usr/include/X11/keysym.h and in
# /usr/include/X11/keysymdef.h
# The XK_ is not needed.
#
# List of modifier:
#   Release, Control, Shift, Mod1 (Alt), Mod2 (NumLock),
#   Mod3 (CapsLock), Mod4, Mod5 (Scroll).
#

# The release modifier is not a standard X modifier, but you can
# use it if you want to catch release events instead of press events

# By defaults, xbindkeys does not pay attention with the modifiers
# NumLock, CapsLock and ScrollLock.
# Uncomment the lines above if you want to pay attention to them.

#keystate_numlock = enable
#keystate_capslock = enable
#keystate_scrolllock= enable

# Examples of commands:

"xbindkeys_show" 
  control+shift + q

# set directly keycode (here control + f with my keyboard)
"xterm"
  c:41 + m:0x4

# specify a mouse button
"xterm"
  control + b:2

#"xterm -geom 50x20+20+20"
#   Shift+Mod2+alt + s
#
## set directly keycode (here control+alt+mod2 + f with my keyboard)
#"xterm"
#  alt + c:0x29 + m:4 + mod2
#
## Control+Shift+a  release event starts rxvt
#"rxvt"
#  release+control+shift + a
#
## Control + mouse button 2 release event starts rxvt
#"rxvt"
#  Control + b:2 + Release

##################################
# End of xbindkeys configuration #
##################################

</php>


Pour trouver les combinaisons de vos touches, utilisez la commande

  $ xbindkeys_show


pour que xbindkeys soit lancé au démarrage, utiliser:

  xbindkeys &




===== Méthode 3: Script avec l'aide de xev =====


**Récupérer le code des touches avec xev**

Pour comprendre comment cela se passe, il faut savoir qu'en appuyant sur une touche du clavier, on envoie un signal à l'ordinateur, et que ce signal se traduit par un code d'identification.

Pour récupérez ce code, ouvrez un terminal, et lancer le programme xev :

  $ xev

Une petite fenêtre s'ouvre, placez-y votre souris. Vous remarquerez que chaque mouvement de souris retourne une certaine série de ligne dans le terminal. Une fois prêt (gardez le terminal et xev en vis-à-vis), cliquez sur votre première touche multimédia. Chez moi, il s'agit de la touche Lecture/Pause

<php>
  KeyRelease event, serial 31, synthetic NO, window 0x2800001,
    root 0x64, subw 0x0, time 1627282074, (-466,618), root:(793,669),
    state 0x10, keycode 162 (keysym 0x1008ff31, XF86AudioPause), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False
</php>

Dans cet exemple, le code d'identification de la touche est 162 (keycode 162) et on constate qu'elle est associée à la fonction XF86AudioPause (c'est ce que l'on va définir dans l'étape de configuration).

Faites de même pour chacune des touches multimédia de votre clavier en notant les codes à chaque fois.

**Configuration**


Maintenant que vos différentes touches multimédia sont identifiées, il faut leur assigner une fonction. L'ensembe de ces fonction est répertoriée dans le fichier /usr/share/X11/XKeysymDB. Une fois ces fonctions identifiées, créez un fichier .xmodmaprc dans le répertoire utilisateur.

  $ nano .xmodmaprc

Puis complétez ce fichier en associant chacune des touches avec la fonction qui lui correspond, chez moi ça donne :

<php>
 !Play/Pause
 keycode 162 = XF86AudioPause
 !Stop
 keycode 164 = XF86AudioStop
 !Prev
 keycode 144 = XF86AudioPrev
 !Next
 keycode 153 = XF86AudioNext
 !Mute
 keycode 160 = XF86AudioMute
 !Lower Volume
 keycode 174 = XF86AudioLowerVolume
 !Raise Volume
 keycode 176 = XF86AudioRaiseVolume
 !Home
 keycode 178 = XF86HomePage
 !Mail
 keycode 236 = XF86Mail
</php>

Une fois le fichier enregistré, il faut demander au système de le prendre en compte :

  $ xmodmap ~/.xmodmaprc

Enfin, pour que ce soit pris en compte au démarrage de KDE, créez un fichier clavier dans ~/.kde/Autostart :

  nano ~/.kde/Autostart/clavier

Il faut y ajouter ces 2 lignes :

  #!/bin/sh
  xmodmap ~/.xmodmaprc

Puis rendez ce fichier exécutable :

  chmod +x ~/.kde/Autostart/clavier

Et voilà, il ne vous reste plus qu'à configurer vos raccourcis clavier avec ces nouvelles touches ! 