Créer et utiliser un agencement de clavier personnalisé
Cette page décrit la méthode à appliquer pour ajouter un agencement de clavier personnalisé à ceux déjà fournis par défaut, et le faire prendre en compte par le système pour qu'il puisse être utilisé de la même manière que les autres, y compris par les outils graphiques.
Elle ne présente néanmoins que les grandes lignes de la méthode et la page « Exemple de création d'un agencement de clavier personnalisé » illustre plus profondément et concrètement les détails de la démarche à suivre.
A qui s'adresse cette page ?
Cette page s'adresse prioritairement aux personnes qui doivent revoir en profondeur l'affectation des touches de leur clavier. Ce peut être le cas des linguistes, qui doivent rédiger des textes multilingues ou des textes dans des langues anciennes ou exotiques, mais aussi le cas de scientifiques qui doivent faire appel à des symboles spécialisés qui reviennent souvent.
Cette façon de procéder est de nature à leur éviter le recours à des combinaisons de touches compliquées et qu'il leur faut mémoriser.
Néanmoins, ceci peut aussi intéresser des utilisateurs ayant des besoins plus limités comme la simple affectation ou réaffectation de quelques touches (claviers multimédia spéciaux par exemple). Dans ce dernier cas, avant d'aller plus loin, ces utilisateurs devraient s'assurer qu'un moyen plus simple n'existe pas, comme les options de l'interface graphique par exemple. Cela peut aussi s’avérer parfait pour des développeurs.
Existe-t-il des méthodes alternatives ?
Oui, il existe une autre méthode qui ressort plus de la programmation et qui consiste à ajouter des scripts de démarrage qui compilent une table de configuration que l'on a pris soin de mettre à un emplacement ad hoc.
Une information très détaillée sur la façon de mettre en oeuvre cette méthode est fournie sur cettepage de la communauté Mandriva. Cette méthode requiert néanmoins d'être adaptée à la distribution Ubuntu et présente l'inconvénient d'introduire un certain décalage entre la configuration qui est perçu par les outils graphiques et la réalité.
Pré-requis
- Disposer des droits d'administration.
Créer un agencement ordinaire sur quatre niveaux
La méthode pour personnaliser un agencement de clavier se décompose en deux étapes:
- Écrire un fichier de description de l'agencement du clavier,
- Faire prendre en compte votre nouvel agencement par le système afin qu'il soit sélectionnable dans la boite de dialogue des paramètres du clavier.
Décrire l'agencement du clavier
L'agencement de clavier que vous souhaitez mettre en place sera à placer avec les droits d'administration dans le dossier /usr/share/X11/xkb/symbols.
Prise en compte par le système du nouvel agencement
Ouvrez avec les droits d'administration le fichier /usr/share/X11/xkb/rules/evdev.xml et juste avant la ligne </layoutList> ajoutez le bloc suivant:
- /usr/share/X11/xkb/rules/evdev.xml
<layout> <configItem> <name>NAME</name> <shortDescription>DC</shortDescription> <description>DESCRIPTION</description> <languageList><iso639Id>LANG</iso639Id></languageList> </configItem> <variantList/> </layout>
dans lequel,
- NAME est à remplacer par le nom du fichier par exemple my_kb
- DC est à remplacer par une courte description textuelle par exemple Bil (pour bilingue). C'est cette courte description qui apparaît à droite de l'indicateur de clavier dans l'applet de notification.
- DESCRIPTION est à remplacer par une description plus explicite comme Bilingue français suédois. Ce texte apparaît dans les listes de variantes dans le dialogue de sélection des agencements et lorsque l'on clique sur l'indicateur de clavier de l'applet de notification.
- LANG est à remplacer par le code de la langue dans le format de la norme ISO639.2.
Pour finir, sauvegardez le fichier avant de quitter votre session et de vous y reconnecter pour que les changements soient pris en compte.
Il est nécessaire ensuite d'effacer l'ensemble des fichiers *.xkm du répertoire /var/lib/xkb puis de redémarrer le système pour que les modifications qui précèdent soient prises en compte.
Utilisez votre nouvel agencement
Pour utiliser votre nouvel agencement de clavier, rendez-vous dans le dialogue des préférences de clavier.
Choisissez Ajouter, puis l'onglet de sélection par langue. Rechercher la langue sous laquelle vous avez déclaré le fichier et éventuellement la variante si la langue comprend plusieurs fichiers.
Vous devriez maintenant apercevoir votre agencement dans la liste accessible par l'indicateur de clavier dans l'applet de notification général du tableau de bord.
Vous devriez maintenant apercevoir votre agencement dans la liste accessible par l'indicateur de clavier dans l'applet de notification général du tableau de bord.
Créer un agencement enrichi jusqu'à huit niveaux
Introduire des touches à plus de quatre niveaux
Il existe dans le répertoire /usr/share/X11/xkb/types, un fichier level5 qui prédéfinit des types de touches à huit niveaux. Vous pourriez, bien-sûr redéfinir vos propres types de touche, mais ceux qui sont présentés là devraient suffire dans la majorité des cas.
Si par exemple, vous vouliez créer une touche E avec les niveaux suivants :
e | E | ê | Ê | € | € | ë | Ë |
Il suffira d'écrire dans votre agencement personnalisé :
key <AD03> { type="EIGHT_LEVEL_ALPHABETIC", symbols[Group1]= [e, E, ê, Ê, €, €, ë, Ë ] };
Dans le cas d'une série de touches du même type, la syntaxe est la suivante :
key.type[Group1]="EIGHT_LEVEL_ALPHABETIC" ; key <AD03> { [e, E, ê, Ê, €, €, ë, Ë ] }; key <AD04> {[r, R, paragraph, registered, , ₹, ₹ ]}; key …
Utiliser les options graphiques pour accéder aux niveaux supérieurs
Le menu Système → Préférences → Clavier vous permet , en cliquant sur le bouton Options, d'accéder à l'option Touche(s) pour choisir le cinquième niveau 1). Vous pouvez par exemple choisir la touche logo de gauche et l'utiliser alors de la même manière que la touche Alt gr mais cette fois pour accéder au niveau 5 et non plus 3.
Créer un accès personnalisé aux niveaux hauts
Pour des raisons liées à vos critères personnels d'ergonomie ou à des singularités de votre clavier, vous pouvez vouloir utiliser une touche autre que celles proposées dans les options. Il peut vous sembler logique d'utiliser la touche Alt de gauche, car cette dernière est en position symétrique de son équivalent de droite. Cependant celle-ci ne peut être réaffectée facilement à cause du rôle qu'elle joue dans le système. Une solution serait d'utiliser l'option graphique qui consiste à la permuter avec la touche logo de gauche, puis d'affecter le changement de niveau à la touche logo (nouvelle). Malheureusement, les combinaisons d'options ne donnent pas toujours le résultat escompté, aussi serez vous amené à créer vous même cette «substitution-affectation».
L'exemple qui suit permet d' illustrer cette méthode de la «substitution-affectation» évoquée ci-dessus. Pour des explications plus détaillées, en particulier sur la démarche à suivre pour le cas général, vous devez vous reporter à cette page explicative.
Créer l'option de réaffectation des touches
Ouvrez avec les droits d'administration le fichier /usr/share/X11/xkb/symbols/altwin et ajoutez à la fin le bloc suivant:
partial modifier_keys xkb_symbols "my_swap_lalt_lwin" { key <LALT> { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ ISO_Level5_Shift ] }; key <LWIN> { [ Alt_L, Meta_L ] }; modifier_map Mod3 {ISO_Level5_Shift }; };
Utiliser l'option
Maintenant, en fin de votre agencement personnalisé, derrière la ligne :
include "level3(ralt_switch)"
placez la ligne suivante
include "altwin(my_swap_lalt_lwin)"
puis déconnectez vous pour vous re-connecter aussitôt.
Vous devriez maintenant avoir accès aux niveaux des touches selon le tableau suivant :
Niveau 1 | pas de touche modificatrice |
Niveau 2 | ⇧ |
Niveau 3 | Alt gr |
Niveau 4 | Alt gr + ⇧ |
Niveau 5 | Alt |
Niveau 6 | Alt + ⇧ |
Niveau 7 | Alt gr + Alt |
Niveau 8 | Alt gr + Alt + ⇧ |
Exemples de modification d'une configuration de clavier
Un clavier « à la windows »
(Janvier 2014) Voir « Comment obtenir un clavier "à la windows", de manière à ce que la touche "CAPS-LOCK" permette d'accéder directement aux chiffres » sur ce fil de discussion.
Un script si vous avez à répéter l'opération
Si vous avez à répéter l'opération, il peut être intéressant de créer une variante de clavier qui correspond à vos besoins. Vous trouverez un exemple sur le forum.
Il est ainsi possible d' :
- intégrer une variante à l’intérieur du fichier des claviers français /usr/share/X11/xkb/symbols/fr (ajout en fin de fichier).
- insérer le renvoi à cette variante dans le fichier /usr/share/X11/xkb/rules/evdev.xml, en fin de section <variantList> du groupe des claviers français.
Après redémarrage du système, la variante est disponible dans les paramètres de clavier.
- Le nom de la variante doit être identique dans les 2 fichiers et dépourvu d'espaces et d'accents.
- Dans la liste des claviers, c'est la description (<description>Français disposition spécifique personnalisée</description>) du fichier evdev.xml qui sera mentionnée et triée par ordre alphabétique. Si vous souhaitez repérer votre variante dans la liste des claviers français, il est important de débuter sa description par le mot « Français ». Dans le fichier fourni par la distribution les autres variantes sont identifiées « French » puis traduites automatiquement mais cela n'est pas le cas des variantes personnalisées, sauf probablement à intervenir ailleurs (dans les locales ?) ce qui est probablement très « pur » mais pas très utile (sauf peut-être pour un constructeur de clavier).
- Il est très utile de mentionner le groupe pour le classement dans la liste des nombreux claviers.
- La ligne « include \"fr(basic)\" » en début de fichier des claviers est absolument nécessaire, au risque de se retrouver avec un clavier dont seules les touches modifiées sont affectées.
- la mise à jour des droits des fichiers est elle aussi essentielle, au risque que le nouvel agencement ne fonctionne pas dans la fenêtre de connexion.