title: Deux claviers branchés, deux dispositions différentes
date: 2013-11-02
tags: Asrall,Geekeries,Linux
url: deux-claviers-deux-dispositions
slug: deux-claviers-deux-dispositions
Une petite astuce simple et rapide, quand on a deux claviers différents, avec
deux dispositions différentes, genre un azerty et un bépo, sous Xorg.
Ce qui serait bien, c'est que si je tape quelque chose sur mon clavier bépo,
la map utilisée soit celle du bépo, et si je tape sur mon clavier azerty, la
map utilisée soit en azerty.
Comment faire ?
Commençons par lister les périphériques via xinput
À noter : ces ID peuvent changer d'un démarrage à l'autre, voire même si on
débranche/rebranche le clavier.
Du coup, il va falloir scripter un peu :)
#!/bin/bash
#Permet de redéfinir à la volée les dispositions des claviers branchés.
#Clavier du laptop : fr-oss
#TypeMatrix, si branché : fr-bépo
#Clavier de mon pc portable
setxkbmap -device $(xinput --list --id-only "keyboard:AT Translated Set 2 keyboard") -layout fr oss
#À noter, le TypeMatrix peut ne pas être présent.
#Dans ce cas, on ne fait rien
CL_TMx2030=$(xinput --list --id-only "keyboard:TypeMatrix.com USB Keyboard" | sed 's/[^0-9]//g')
if [ -n "$CL_TMx2030" ]
then
setxkbmap -device $CL_TMx2030 -layout fr bepo
fi
Rien de compliqué. On récupère les deux ID via xinput, puis on applique les
dispositions. Une petite variante pour le TypeMatrix. En effet, il vaut mieux
détecter sa présence, d'où le "sed" pour extraire la valeur numérique si le
clavier est branché.
Il ne reste plus qu'à appeler ce script dans l'autoexec de WMaker, ou via un
raccourci clavier, ou une entrée de menu.
Après, pourquoi s'embêter avec ça alors que je pourrais définir les deux
claviers en bépo ? Plusieurs raisons :
* Dosbox (enfin, DOS, dans dosbox) ne reconnait pas le bépo.
* Quand je suis en extérieur, je ne prends pas systématiquement mon TM.
* Je suis absolument incapable de taper en bépo sur mon clavier azerty, et en azerty sur mon bépo.
* Quand quelqu'un utilise mon ordi (famille…), il/elle est habitué(e) à la disposition azerty, et n'a pas le temps (ni l'envie) d'apprendre le bépo.