Cher journal,
Dans Emacs, bash, ou n'importe quel logiciel, j'utilise intensivement les touches contrôles. En tant qu'utilisateur de clavier TypMatrix, j'ai senti que les touches contrôles étaient bien trop inaccessibles sous l'auriculaire. J'ai donc cherché à les déplacer sous le pouces, très exactement sur la touche CycleWindow
(dite shuffle) et la touche Desktop
.
Sur TypeMatrix 2030, on peut remapper les touches de raccourcis lorsqu'on est en mode 106
. Après une tentative fructueuse avec xmodmap
, je me suis dis laissé allé à faire le code pour XKB, son successeur.
J'ai donc créé deux options XKB : ctrl:none
et ctrl:tm2030_thumb
. La première option désactive les touches contrôles. Autant dire qu'elle est très dangeureuse. La seconde définie les touches shuffle
et bureau comme touches contrôles. En fait, ctrl:none
sert à se forcer à utiliser le pouce pour les raccourcis. En une heure de code, l'habitude est prise ;)
Seul soucis que j'ai, je suis obligé de patché /usr/share/X11/xkb/rules/evdev
car xkb n'utilise qu'un seul fichier de règles :/ Pas de ~/.config/xkb
:(
Le script :
set -ex
XKBDIR=${XKBDIR:-/usr/share/X11/xkb}
# Définir les règles dans un fichier custom
cat > ${XKBDIR}/symbols/custom <<EOF
partial modifier_keys
xkb_symbols "tm2030_thumb" {
modifier_map Control { <MUHE>, <HENK> };
};
partial modifier_keys
xkb_symbols "noctrl" {
key <LCTL> { [ VoidSymbol ] };
key <RCTL> { [ VoidSymbol ] };
};
EOF
# Déclarer les options dans le fichier evdev, après ctrl:ralt_rctrl
sed -i "/custom(/d" ${XKBDIR}/rules/evdev;
sed -i.bak '/ralt_rctrl/r /dev/stdin' ${XKBDIR}/rules/evdev <<EOF
ctrl:tm2030_thumb = +custom(tm2030_thumb)
ctrl:none = +custom(noctrl)
EOF
L'idée de ce script est que je peux le relancer avec une màj du paquet debian :)
Ensuite reste plus qu'à ajouter les options ctrl:none,ctrl:tm2030_thumb
dans /etc/default/keyboard
ou dans dconf :
gsettings set org.gnome.desktop.input-sources xkb-options "['ctrl:tm2030_thumb', 'ctrl:none']"
Au final, je trouve qu'xkb est plus pratique que Xmodmap, car il permet d'activer / désactiver les options. De plus il est bien intégré aux environnement de bureau. Néanmoins, c'est dommage de ne pas pouvoir donner des règles personnelles dans /etc/X11/xkb/
ou autre.
Le changement est radical. Je sens beaucoup moins de tensions dans l'auriculaires. Après, ça n'empêche pas
Grâce à ce script, vous deviendrez un vrai gourou de l'informatique, un légende : celui qui a remappé ses touches contrôles ! ;-)
# Gestion du ç
Posté par Étienne BERSAC (site Web personnel) . Évalué à 4. Dernière modification le 10/01/15 à 22:29.
Ave,
Une màj du script, j'ai ajouté un
patch
de BÉPO pour le mode 106, qui ajoute le ç sous le M, comme en mode normal.Il faut ensuite configurer son clavier pour utiliser lo modèle
tm2030USB-106
(existant par défaut), le layoutfr
et la variantebepo
.[^] # Re: Gestion du ç
Posté par Étienne BERSAC (site Web personnel) . Évalué à 2.
Exemple de
/etc/default/keyboard
:# Faut utiliser la paume
Posté par navaati . Évalué à 2.
C'est moins high-tech, mais la touche ctrl droite tombe pile poil sous le bord droit de la paume quand tu mets tes doigts sur la rangée de repos.
[^] # Re: Faut utiliser la paume
Posté par Étienne BERSAC (site Web personnel) . Évalué à 3.
Pas mal :) Sauf quand on utilise un repose-poignets ;)
[^] # Re: Faut utiliser la paume
Posté par Étienne BERSAC (site Web personnel) . Évalué à 5.
Et après on accuse les emacsien d'avoir 6 doigts aux mains ^
[^] # Re: Faut utiliser la paume
Posté par navaati . Évalué à 2.
Heu, ben justement… :D
# xmodmap ?
Posté par Moonz . Évalué à 2.
Pourquoi xmodmap fonctionnerait pas ? Sur mon clavier logitech, pour inverser contrôle droit et la touche windows, c’est deux lignes :
[^] # Re: xmodmap ?
Posté par Étienne BERSAC (site Web personnel) . Évalué à 3.
Comme dit dans le journal, xmodmap fonction sauf que dans GNOME si tu débranche ou rebranche un périphérique, tu dois relancer xmodmap à la main.
Xmodmap a été abandonné car il ne pouvait pas supporter certains niveau d'accès aux touches. Il faudrait creuser plus pour savoir les motivations. Personnellement, je m'en fout de savoir si c'était mieux avant ou pas. Je fais confiance aux dev de Xorg.
Après avoir utilisé Xmodmap, je me suis donc dit que a serait bien d'avoir la solution qui passe par les outils intégrés de mon système. En l'occurrence, XKB.
[^] # Re: xmodmap ?
Posté par laurentb (site Web personnel) . Évalué à 1.
J'ai fait un truc similaire avec mon clavier précédent, ça marchait partout sauf… sous Firefox et Thunderbird (oui, le bug est rapporté depuis des années). Un peu frustrant ; je ne sais pas si le bug est aussi présent avec la méthode xkb.
# Configuration utilisateur
Posté par Cyril Brulebois (site Web personnel) . Évalué à 1.
Les commandes comme
setxkbmap
,xkbcomp
,ckbcomp
gèrent l'option-Idir
. Pas certain que ça soit accessible via/etc/default/keyboard
& friends, mais tu dois pouvoir scripter assez facilement un appelsetxkbmap
avec les bonnes options plutôt que continuer à patcher des fichiers système contrôlés pardpkg
.Debian Consultant @ DEBAMAX
[^] # Re: Configuration utilisateur
Posté par Étienne BERSAC (site Web personnel) . Évalué à 3.
Oui, je sais bien. J'ai pas mal cherché :/
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=586371
[^] # Re: Configuration utilisateur
Posté par Joël . Évalué à 2.
Je confirme, pas la peine de patcher les fichiers systèmes.
Personnellement, j'ai tuné ma configuration xkb pour échanger "Caps-Lock" (qui ne sert presque jamais, il faut le dire) et "²" (qui ne sert plutôt jamais non plus, mais au moins qu'on peut remapper super facilement, par exemple pour faire de la complétion de mots dans vim ou bien pour faire du menu-complete dans zsh).
Première étape, récupérez la configuration xkb en cours :
Modifiez cette configuration pour ajouter nos nouveaux bindings:
Et maintenant, on peut recharger proprement cette nouvelle configuration pour qu'elle soit appliquer:
Le fichier de configuration peut tout à fait être sauvé dans ton repository dotfiles (et donc même être réutilisé sur différentes machines), et la commande
xkbcomp
pour charger la configuration peut être mise dans un script qui est lancé par kde ou gnome au démarrage de la session graphique.[^] # Re: Configuration utilisateur
Posté par Moonz . Évalué à 2.
Et donc s’il y a des modifications dans les fichiers systèmes suite à une mise à jour, elles ne seront pas répercutées chez toi.
Ça va finir comme systemd cette histoire :)
[^] # Re: Configuration utilisateur
Posté par Cyril Brulebois (site Web personnel) . Évalué à 1.
C'est sûr que ça serait dommage d'échapper aux blagues comme l'introduction de
Ctrl
vs.Primary
, ou encore le changement de comportement deRight Ctrl
…Sinon, pour avoir maintenu
xkeyboard-config
pendant quelques temps, tu as surtout envie de récupérer les modifications quand tu es affecté par un bogue concercant ta keymap/tes options, auquel cas tu es au courant et/ou tu as déjà le patch localement. :)Debian Consultant @ DEBAMAX
[^] # Re: Configuration utilisateur
Posté par Joël . Évalué à 0.
Il me semble que si, car le fichier que tu récupères via
setxkbmap -print
ne contient que des includes de fichiers systèmes.Et plus tard, quand tu charges le fichier de configuration avec
xkbcomp
, tu lui donnes le chemin vers ces fichiers systèmes (qui peuvent donc tout à fait être mis à jour, indépendamment des quelques bindings que tu as redéfini).[^] # Re: Configuration utilisateur
Posté par Étienne BERSAC (site Web personnel) . Évalué à 2.
Comment fais-tu pour que ta config soit chargée automatiquement par xorg ?
[^] # Re: Configuration utilisateur
Posté par bobo38 . Évalué à 1.
un autostart.sh lancé au démarrage de la session ?
(en tout cas, ça se passe comme ça chez moi; donc c'est ma meilleure hypothèse)
[^] # Re: Configuration utilisateur
Posté par Joël . Évalué à 1.
Oui, comme je l'indiquais dans mon premier message, dans mon cas l'appel à la commande
xkbcomp
est situé dans un script qui est lancé par l'autostart de KDE.[^] # Re: Configuration utilisateur
Posté par Étienne BERSAC (site Web personnel) . Évalué à 2. Dernière modification le 12/01/15 à 10:37.
Ok, donc c'est bien ce que je disais au début. Ce que je cherche, ce sont des options appelable depuis GNOME, cf la commande
gsettings
. Si je passe par un script, je suis certain que GNOME ne le rappellera pas lorsque je branche un clavier Azerty par exemple (en binômage, etc.).[^] # Re: Configuration utilisateur
Posté par bobo38 . Évalué à 0.
xkbcomp avec la configuration appropriée te permet de basculer entre plusieurs dispositions de clavier avec un raccourci clavier de ton choix. Il me semble que l'assistant de config clavier GNOME te permet de faire plus ou moins la même chose (GNOME 2 proposait une GUI qui offrait les mêmes options que xkbcomp, je ne sais pas si ça a évolué).
(je ne vois pas le bénéfice de manips en fonction du clavier physique que tu branches, et je doute que ce soit intégré à la suite GNOME)
[^] # Re: Configuration utilisateur
Posté par benoar . Évalué à 2.
Comme l'indique Étienne, xkb et consort sont méga buggés et difficilement utilisable avec des options. Perso, j'avais déjà tellement passé de temps à les faire marcher que je n'ai pas eu le courage de rapporter les bugs. L'ensemble est si complexe et incompréhensible que je ne sais pas quelle serait la « bonne » solution (… passer te voir ?…)
Mon fichier de symboles est ici : http://dolka.fr/code/gitweb/?p=dotfiles.git;a=blob;f=.xkb/symbols/tmtweaks;hb=refs/heads/work
Le reste de mon
.xkb
contient le nécessaire pour que ça fonctionne.J'ai un petit script pour le charger mais uniquement pour un clavier TypeMatrix : http://dolka.fr/code/gitweb/?p=dotfiles.git;a=blob;f=bin/load_my_tm.sh;hb=refs/heads/work
Mais c'est du bidouillage. En passant, ce script montre que l'option
-i
(pour charger le keymap pour un clavier particulier, quand on en a plusieurs) ne fonctionne également pas. Quand un soft est buggé à ce point, je n'ai pas le courage de le corriger.# Désactiver la valeur par défaut des touches
Posté par Étienne BERSAC (site Web personnel) . Évalué à 2.
J'ai fait un correctif pour que CycleWindow et Desktop n'envoie plus les symboles japonais. Ça donne :
# Une autre solution, full XKB
Posté par lepieru . Évalué à 1.
Je vois que je ne suis pas le seul à avoir des problèmes avec la touche CTRL gauche de ce fameux Typematrix 2030.
De mon côté, je swap CTRL gauche et ALT gauche. Résultat, ça marche bien ! Et de même avec un clavier dit standard (ce qui ne doit pas être le cas avec la touche shuffle du TM2030).
Voici le « sublayout » que j'ai salement déposer à la fin de mon layout perso :
En une simple commande, je load mon layout ainsi que le swap-ctrl-alt qui m'est aujourd'hui indispensable.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.