Ceci est une ancienne révision du document !



Créer et utiliser un agencement de clavier personnalisé

Cette page décrit la méthode à appliquer pour ajouter à ceux déjà fournis par défaut, un nouvel agencement de clavier personnalisé, 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 par un exemple concret et complet, les détails de la démarche à suivre.

Sa lecture, ainsi que celle de l'exemple, nécessite néanmoins 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 réaffectation de quelques touches. 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.

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é.

Par ailleurs, l'indépendance des différents agencements de clavier disponibles par s'en trouve généralement compromise.

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 visible par le menu Système → Préférences → Clavier.

Décrire l'agencement du clavier

L'agencement de clavier que vous souhaitez mettre en place sera à placer avec les droit d'administration dans le dossier /usr/share/X11/xkb/symbols.

Pour éviter les erreurs de syntaxe qui ne seraient pas pardonnées par le serveur X, rendez-vous cette page et téléchargez un fichier de base qu'il vous suffira de compléter.

Consultez la page Comprendre la configuration du clavier pour connaître la syntaxe qui vous permettra de réutiliser des sections standards déjà écrites dans les fichiers de configuration venant avec votre distribution.
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:

<layout>
 <configItem>
           <name>NAME</name>
          <shortDescription>DC</shortDescription>  
	    <description>DESCRIPTION</description>
           <languageList><iso639Id>LANG</iso639Id></languageList>
      </configItem>
      <variantList/>
</configItem>
</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 lange 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.

Utilisez votre nouvel agencement

Pour utiliser votre nouvel agencement de clavier, rendez-vous dans le dialogue des préférences de clavier depuis le menu Système → Préférences → Clavier → onglet Agencements.
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 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. Supposons, par exemple, que 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 au 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

Vous pouvez, pour des raisons liées à vos critères personnels d'ergonomie ou à des singularités de votre clavier, vouloir utiliser une touche autre que celles proposées dans les options. Il peut vous sembler logique, car cette dernière est en position symétrique de son équivalent de droite, d'utiliser la touche Alt de gauche. Cependant celle-ci, à cause du rôle qu'elle joue dans le système ne peut être réaffectée facilement. 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 serait vous amené à créer vous même cette «substitution-affectation».

Nous allons illustrer cette méthode avec un exemple qui assure 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, à la fin, ajoutez 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 altwin. Dans les deux cas, pensez à les sauvegarder car, en cas de réinstallation, ils seraient irrémédiablement écrasés.

Contributeurs: jaaf64


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.1313926978.txt.gz
  • Dernière modification: Le 15/12/2011, 15:21
  • (modification externe)