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.

La lecture de cette page ainsi que celle de l'exemple nécessite la compréhension d'un certain nombre de concepts qui sont présentés sur la page « Comprendre la configuration du clavier ».

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:

  1. Écrire un fichier de description de l'agencement du clavier,
  2. 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.

Si vous décidez d'intervenir directement sur les fichiers standards qui sont fournis avec la distribution, avant toute manipulation, sauvegardez les fichiers que vous serez amené à modifier.

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.

Si vous vous êtes contenté de modifier un fichier de base fourni par la distribution, vous n'avez bien sûr pas à faire ce qui précède.

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.

Si votre fichier est multilingue, vous pouvez le placer sous l'une des langues ou choisir pour le paramètre LANG un code neutre tel que und pour Indéterminé

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.

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 :

eEêÊëË

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 dernier symbole utilisé avec la touche R représente la roupie indienne :₹. Son emploi dans cet exemple, vise à présenter un moyen mnémotechnique qui consiste à utiliser la lettre initiale de la monnaie pour se souvenir de son emplacement. Un spécialiste de finances pourrait de la même manière se créer un accès facile aux différentes monnaies qu'il utilise souvent.
On notera également qu'il n'est pas nécessaire de renseigner les huit niveaux. Il est néanmoins recommandé de le faire, quitte à avoir des redondances ou à utiliser le symbole nosymbol, pour éviter toute surprise quant à l'interprétation qui en sera faite par le système

Utiliser les options graphiques pour accéder aux niveaux supérieurs

Ce qui suit n'est plus valable pour Gnome 3, Unity est donc concerné. Par contre vous trouverez ces options sous kubuntu et Mate.

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 + ⇧
L'option créée précédemment peut bien-sûr être placée dans un fichier séparé plutôt que dans le fichier /usr/share/X11/xkb/symbols/altwin. Dans les deux cas, pensez à les sauvegarder car, en cas de réinstallation, ils seraient irrémédiablement écrasés.

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.

Contributeurs: jaaf64, fabux


1)
En anglais : "key to chose the 5th level" si votre interface n'assure pas la traduction.
  • tutoriel/creer_et_utiliser_un_agencement_de_clavier_personnalise.txt
  • Dernière modification: Le 12/02/2020, 22:03
  • (modification externe)