Bon après encore quelques heures de recherche, je suis tombé sur un vieux how-to qui fonctionne encore très bien !
Pour commencer, merci à
Daniel Klaffenbach et au logiciel
evrouter
Voila donc les quelques étapes à réaliser de façon le plus détaillée possible.
1) Installer
evrouter
2) Ajouter une règle pour permettre à l'user de lire /dev/input/event*
echo 'KERNEL=="event*", NAME="input/%k", GROUP="input"' | sudo tee /etc/udev/rules.d/80-evrouter.rules
Creation d'un nouveau groupe
sudo addgroup input
Ajout de l'user à ce groupe :
sudo usermod -aG input ${USER}
3) Redémarrer le pc
sudo reboot
4) Identifications des touches qui seront à remapper
evtest
> Available devices:
> /dev/input/event0: Power Button
> /dev/input/event1: Power Button
> /dev/input/event2: Logitech USB Receiver
> /dev/input/event3: Logitech USB Receiver
> /dev/input/event4: Sony PLAYSTATION(R)3 Controller
> /dev/input/event5: STV06xx
> /dev/input/event6: HDA ATI HDMI HDMI/DP,pcm=3
Select the device event number [0-6]: 3
Presser les touches à remapper :
> Event: time 1381940761.592647, type 1 (EV_KEY), code 140 (KEY_CALC), value 1 => calulatrice
> Event: time 1381940790.224658, type 1 (EV_KEY), code 420 (KEY_ZOOMRESET), value 1 => 100%
> Event: time 1381940810.928667, type 1 (EV_KEY), code 419 (KEY_ZOOMOUT), value 1 => Zoom -
> Event: time 1381940836.216678, type 1 (EV_KEY), code 418 (KEY_ZOOMIN), value 1 => Zoom +
5) Création d'un fichier de config pour evrouterrc (${HOME}/.evrouterrc) :
"Nom de l'envent" "adresse de l'event" none key/Numero_de_la_touche "XKey/Nom_de_la_touche"
exemple avec mon fichier :
#Zoom +
"Logitech USB Receiver" "/dev/input/event3" none key/418 "XKey/XF86ZoomIn"
#Zoom -
"Logitech USB Receiver" "/dev/input/event3" none key/419 "XKey/XF86ZoomOut"
# Zoom Rest => XF86ZoomReset est inconnu, alors j'en utilise une autre
"Logitech USB Receiver" "/dev/input/event3" none key/420 "XKey/XF86Phone"
Voici une liste des noms :
XF86AddFavoriteXF86ApplicationLeft
XF86ApplicationRight
XF86AudioMedia
XF86AudioMute
XF86AudioNext
XF86AudioPause
XF86AudioPlay
XF86AudioPrev
XF86AudioLowerVolume
XF86AudioRaiseVolume
XF86AudioRecord
XF86AudioRewind
XF86AudioStop
XF86Away
XF86Back
XF86Book
XF86BrightnessAdjust
XF86CD
XF86Calculator
XF86Calendar
XF86Clear
XF86ClearGrab
XF86Close
XF86Community
XF86ContrastAdjust
XF86Copy
XF86Cut
XF86DOS
XF86Display
XF86Documents
XF86Eject
XF86Excel
XF86Explorer
XF86Favorites
XF86Finance
XF86Forward
XF86Game
XF86Go
XF86History
XF86HomePage
XF86HotLinks
XF86Launch0
XF86Launch1
XF86Launch2
XF86Launch3
XF86Launch4
XF86Launch5
XF86Launch6
XF86Launch7
XF86Launch8
XF86Launch9
XF86LaunchA
XF86LaunchB
XF86LaunchC
XF86LaunchD
XF86LaunchE
XF86LaunchF
XF86LightBulb
XF86LogOff
XF86Mail
XF86MailForward
XF86Market
XF86Meeting
XF86Memo
XF86MenuKB
XF86MenuPB
XF86Messenger
XF86Music
XF86MyComputer
XF86MySites
XF86New
XF86News
XF86Next_VMode
XF86Prev_VMode
XF86OfficeHome
XF86Open
XF86OpenURL
XF86Option
XF86Paste
XF86Phone
XF86Pictures
XF86PowerDown
XF86PowerOff
XF86Next_VMode
XF86Prev_VMode
XF86Q
XF86Refresh
XF86Reload
XF86Reply
XF86RockerDown
XF86RockerEnter
XF86RockerUp
XF86RotateWindows
XF86RotationKB
XF86RotationPB
XF86Save
XF86ScreenSaver
XF86ScrollClick
XF86ScrollDown
XF86ScrollUp
XF86Search
XF86Send
XF86Shop
XF86Sleep
XF86Spell
XF86SplitScreen
XF86Standby
XF86Start
XF86Stop
XF86Support
XF86Switch_VT_1
XF86Switch_VT_10
XF86Switch_VT_11
XF86Switch_VT_12
XF86Switch_VT_2
XF86Switch_VT_3
XF86Switch_VT_4
XF86Switch_VT_5
XF86Switch_VT_6
XF86Switch_VT_7
XF86Switch_VT_8
XF86Switch_VT_9
XF86TaskPane
XF86Terminal
XF86ToDoList
XF86Tools
XF86Travel
XF86Ungrab
XF86User1KB
XF86User2KB
XF86UserPB
XF86VendorHome
XF86Video
XF86WWW
XF86WakeUp
XF86WebCam
XF86WheelButton
XF86Word
XF86XF86BackForward
XF86Xfer
XF86ZoomIn
XF86ZoomOut
XF86iTouch
6) Recherche des touches libres avec xmodmap :
xmodmap -pke | egrep "=$"
> keycode 250 =
> keycode 251 =
> keycode 252 =
7) Création d'un fichier de configuration pour xmodmap (${HOME}/.xmodmap) :
keycode Numero_de_la_touche = _Nom_de_la_touche
exemple avec mon fichier :
# Calculatrice ne marche pas cherz moi, alors je l'ai remapper aussi
keycode 148 = XF86WWW
#Zoom -
keycode 251 = XF86ZoomOut
#Zoom +
keycode 250 = XF86ZoomIn
# Zoom Rest
keycode 252 = XF86Phone
8) Executions des logiciels :
xmodmap ~/.xmodmap
evrouter /dev/input/event3
9) Verification du bon changement des touches avec xev :
xev
=> Ex, quand je clique que la touche ZoomReset
> KeyRelease event, serial 43, synthetic NO, window 0x5c00001,
> root 0x2c3, subw 0x0, time 2637741, (-472,493), root:(476,516),
> state 0x10, keycode 177 (keysym 0x1008ff6e, XF86Phone), same_screen YES,
> XLookupString gives 0 bytes:
> XFilterEvent returns: False
10) Si tout est ok, il suffit d'ajouter ces lignes dans un fichier de démarrage, par ex avec Kubuntu (${HOME}/.kde/Autostart/keys) :
#!/bin/sh
xmodmap ~/.xmodmap
evrouter /dev/input/event3
Et voilou tout fonctionne enfin !!!
Cela m'aura pris des 10enes d'heures à lire des topics posant ces questions et ayant des réponses plus ou moins intéressantes...
Je vous fais donc partager mes retours 🙂