More is less

01/09/2015

Clavier AZERTY pour les développeurs

La disposition du clavier AZERTY est très peu ergonomique, mais le plus exaspérant pour qui code, c'est l'accès aux touches accolades et crochets qui sont très souvent sollicitées. Le but de cet article et de proposer un accomodement facile à obtenir.

Pour les préssés Aller à

Modifications souhaitées

Image du clavier

Le but est d’obtenir les accolades avec [AltGr )] et [AltGr =] et les crochets avec [AltGr :] et [AltGr !], comme ci-contre.

Les motivations sont d'une part l'accès très commode au centre du clavier et d'autre part éviter de déplacer des caractères utiles.

Accessoirement on va échager le ² qui ne sert presque jmais avec ~ qui est très sollicité dans un terminal ou une console.

Préambule

Le fichier responsable de la configuration du clavier pour la langue française est /usr/share/X11/xkb/symbols/fr. Il contient les définitions des variantes les plus courantes de la langue française, comme par exemple la variante oss : xkb_symbols "oss" ou "French (alternative)".

Cette variante est décrite par un bloc :

partial alphanumeric_keys
xkb_symbols "oss" {
   ...
   name[Group1]="French (alternative)";
	...
};

La définition de chaque touche alphanumérique du clavier prend cette forme :

	key <SYMB> {[normal shift altgr shaltgr]};

Dans cette ligne :

<SYMB> est le nom symbolique de la touche. Ex. <TLDE>, <AE01>, etc.

normal est le caractère obtenu par la pression de la touche

shift est le caractère obtenu par la pression de la touche avec [Shift]

shaltgr obtenu avec [Shift][AltGr]

Les touches que nous allons modifier ont pour noms symboliques <AE04>, <AE05>, <AE11>, <AB05>, <AB10> et <TLDE>, <AE02>.

Création d'un nouveu fichier de clavier

Dans un premier temps j'avais opté pour l'ajout d'une variante de clavier. Mais une mise à jour de xkb réinitialise le fichier à l'origine. Une solution et alors de créer un nouveau fichier. Nommons le rf.

Commençons par une copie : cp /usr/share/X11/xkb/symboles/fr ~/rf.

Editons le fichier rf en effectuant les substitutions suivantes :

...
partial alphanumeric_keys
xkb_symbols "dev" {
...
    include "latin"
    include "level3(ralt_switch)"
    include "nbsp(level4n)"
    include "keypad(oss)"
...
    name[Group1]="French (alternative)";
...
key <AE04>	{ [ apostrophe,      4,   exclamdown, 0x1002014 ] }; // ' 4 ¡ —
key <AE05>	{ [ parenleft,       5,     division, 0x1002013 ] }; // ( 5 ÷ – 
...
key <AE11>	{ [ parenright, degree,    braceleft,  notequal ] }; // ) ° { ≠
...
key <AB09>  { [ colon,       slash,  bracketleft, 0x1002215 ] }; // : / [ ∕
key <AB10>  { [ exclam,    section, bracketright, 0x1002212 ] }; // ! § ] −

Le fichier complet est disponible ici : rf

Ensuite Éditons ce fichier et plaçons la nouvelle variante à la fin de ce fichier ou après le bloc oss :us

partial alphanumeric_keys
xkb_symbols "dev" {
	
	include "rf(dev)"
	name[Group1]="French (developper)";
 
	key <AC07>	{ [ j, J, braceleft, Udiaeresis ] }; // j J { Ü 
	key <AC08>	{ [ k, K, braceright, Idiaeresis ] }; // k K } Ï 2
	key <AC09>	{ [ l, L, bracketleft, 0x100013F ] }; // l L [ Ŀ 3
	key <AC10>	{ [ m, M, bracketright, Odiaeresis ] }; // m M ] Ö
};

Le nom de cette variante est dev. C'est par cet identifiant que l'on pourra l'installer avec setxkbmap. Alors que «French (developper)» sera le nom qui apparaîtra dans l'interface graphique.

Installer le fichier rf modifié

<layout>
	<configItem>
		<name>rf</name>
		<shortDescription>rf</shortDescription>
		<description>French developper</description>
	</configItem>
	<variantList>
		<variant>
			<configItem>
			<name>dev</name>
			<description>French (dev)</description>
			</configItem>
		</variant>
		<variant>
			<configItem>
			<name>mupad</name>
			<description>French (keypad)</description>
			</configItem>
		</variant>
	</variantList>
</layout>
Section "InputClass"
    Identifier "keyboard"
    MatchIsKeyboard "yes"
    Option "XkbLayout" "rf"
    Option "XkbVariant" "dev,mupad"
    Option "XkbOptions" "grp:shift_caps_toggle"
EndSection

Enjoy.


Réalisé avec Qlam - LGPL