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.
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.
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é.
La méthode pour personnaliser un agencement de clavier se décompose en deux étapes:
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.
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:
<layout> <configItem> <name>NAME</name> <shortDescription>DC</shortDescription> <description>DESCRIPTION</description> <languageList><iso639Id>LANG</iso639Id></languageList> </configItem> <variantList/> </layout>
dans lequel,
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.
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. Un redémarrage peut être nécessaire.
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 …
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.
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.
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 }; };
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 + ⇧ |
(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.
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' :
Après redémarrage du système, la variante est disponible dans les paramètres de clavier.