Skip to content

Latest commit

 

History

History
129 lines (116 loc) · 6.02 KB

2012-08-27-binomer-avec-un-clavier-dvorak-et-un-clavier-azerty.markdown

File metadata and controls

129 lines (116 loc) · 6.02 KB
layout status published title author author_login author_email author_url excerpt wordpress_id wordpress_url date date_gmt categories tags comments
post
publish
true
Binômer avec un clavier dvorak et un clavier azerty
display_name login email url
Jean-Philippe Caruana
jp
jp@barreverte.fr
/
jp
jp@barreverte.fr
/
Nous avons récemment succombé à la geekerie du moment : un clavier <a href="http://typematrix.com/" target="_blank">Type Matrix</a> dvorak. [caption id="attachment_2679" align="aligncenter" width="300"]<a href="/images/tmx-2030_gallery-1.png"><img class="size-medium wp-image-2679" title="tmx-2030_gallery-1" alt="Clavier Type Matrix 2030 dvorak" src="/images/tmx-2030_gallery-1-300x135.png" width="300" height="135" /></a> Clavier Type Matrix 2030 dvorak[/caption] Sous Linux, la commande <tt>setxkbmap</tt> permet de changer le mapping de son clavier. Ainsi, pour passer en Dvorak avec la composition pour les accents (3 touches pour écrire <tt>é</tt> : compose (le Alt de droite), apostrophe, e), il faut écrire :
2674
/?p=2674
2012-08-27 13:32:41 +0200
2012-08-27 12:32:41 +0200
linux
geekeries
programmation
linux
debian
tdd
bonnes pratiques
id author author_email author_url date date_gmt content
1557
Bruno Thomas
bruno@barreverte.fr
2012-09-18 20:46:34 +0200
2012-09-18 19:46:34 +0200
à noter que c'est même faisable en "zero touch" avec udev. Le souci c'est qu'il faut attendre que le clavier ait été reconnu par le kernel et X avant de l'ajouter. Cela explique cette vilaine tempo d'une seconde. Merci à @BitardMichael https://gist.github.com/3531813
id author author_email author_url date date_gmt content
3036
Jean-Philippe Caruana
jp@barreverte.fr
/
2012-11-07 18:03:24 +0100
2012-11-07 17:03:24 +0100
on peut rester en "zéro touch" également en ajoutant ce script au démarrage de la session X (autostart.sh pour les dérivés d'OpenBox)

Nous avons récemment succombé à la geekerie du moment : un clavier Type Matrix dvorak.

Clavier Type Matrix 2030 dvorak
Clavier Type Matrix 2030 dvorak

Sous Linux, la commande setxkbmap permet de changer le mapping de son clavier. Ainsi, pour passer en Dvorak avec la composition pour les accents (3 touches pour écrire é : compose (le Alt de droite), apostrophe, e), il faut écrire :

setxkbmap dvorak en -option compose:ralt

Après une période d'apprentissage, nous sommes assez contents, mais tout le monde n'est pas prêt ou n'a pas forcément envie de faire cet effort.

Dans un premier temps, j'ai donc mappé sur le raccourci Windows + F5 une commande de basculement dvorak/azerty. (NB: La touche Windows s'appelle Start sur mon clavier)

J'utilise LXDE comme gestionnaire de fenêtres, un mapping se rajoute ainsi dans le fichier ~/.config/openbox/lxde-rc.xml :

<keybind key="W-F5">
    <action name="Execute">
        <command>~/bin/switch_dv_fr</command>
    </action>
</keybind>

Le script de bascule ~/bin/switch_dv_fr est le suivant :

#!/bin/bash

kbd=`setxkbmap -query | grep layout | awk '{print $2}'`

if [ 'fr' = $kbd ]
then 
        notify-send 'Keyboard is now Dvorak'
        setxkbmap dvorak en -option compose:ralt
else
        notify-send 'Keyboard is now French'
        setxkbmap fr -option ""
fi

(notify-send permet d'afficher une notification dans Linux)

Ce n'était toujours pas satisfaisant, car il fallait taper une combinaison de touches avant de se passer le clavier. Heuereusement, avec Linux il est possible d'avoir deux claviers branchés avec deux mappings différents. Le programme xinput permet de configurer les périphériques d'entrée. Pour obtenir la liste de tous les périphériques branchés sur sa machine, il suffit de taper xinput list. Chez moi cela donne :

⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech USB Optical Mouse                id=8    [slave  pointer  (2)]
⎜   ↳ HID 046a:0023                             id=10   [slave  pointer  (2)]
⎜   ↳ TypeMatrix.com USB Keyboard               id=13   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳ HID 046a:0023                             id=9    [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                          id=11   [slave  keyboard (3)]
    ↳ TypeMatrix.com USB Keyboard               id=12   [slave  keyboard (3)]

On constate que mon clavier Type Matrix possède l'identifiant 12 et mon autre clavier (un HID 046a:0023) le 9. Du coup, maintenant que je connais le nom de mes claviers, je peux trouver leurs identifiants et les passer à setxkbmap grâce à l'option --device. Le script final donne :

DVORAK=`xinput list | grep TypeMatrix | grep keyboard | sed 's/.*id=\([0-9]*\).*/\1/'`
AZERTY=`xinput list | grep HID | grep keyboard | sed 's/.*id=\([0-9]*\).*/\1/'`
setxkbmap -device $DVORAK dvorak -option compose:ralt
setxkbmap -device $AZERTY fr -option ""

Nous pouvons désormais binômer sur mon poste avec deux claviers différents !