Quelles sont les étapes nécessaires pour créer une nouvelle disposition de clavier sur Ubuntu?

37

Le clavier que j'essaie de créer a beaucoup d'Unicode et ressemble à ceci:

Échec du didacticiel suivant:

  • lien
    (Il y a quelques erreurs dans le tutoriel, et il utilise un langage imprécis tel que "couper" les choses au lieu de les "supprimer", et il est étrangement formaté)

Je me demandais si quelqu'un serait si gentil de fournir un meilleur tutoriel avec des instructions étape par étape?

    
posée Akiva 12.08.2014 - 02:27
la source

2 réponses

15

Remarque : Wayland utilise xkb, mais de nombreux outils xTools ont cessé de fonctionner correctement (xdotool par exemple)

Remarque : il s’agit d’un didacticiel non exhaustif. Il est très utile pour une personne qui cherche à créer une nouvelle présentation à huit niveaux et à comprendre la syntaxe.

Remarque: Une solution rapide et sale est fournie. Il comprend une feuille de calcul qui génère automatiquement le code dont vous avez besoin.

Comprendre le répertoire XKB

cd /usr/share/X11/xkb/ && ls
  1. types - Comment les clés produites sont modifiées par Modificateurs actifs . (Maj, Contrôle, Alt ~)
    Important si vous souhaitez personnaliser le Touches de modification.
  2. geometry - Utilisé pour dessiner des graphiques de clavier.
    Important si vous concevez un élément de clavier non standard.
  3. rules - Récupération de la configuration appropriée pour votre configuration actuelle.
    Vous devrez définir ceci
  4. keycodes - L'interpréteur des codes clés pour le matériel du clavier.
    Exemple: Les claviers Macintosh comprennent la barre d'espace sous la forme 57 . Nous l'écrivons cependant comme <SPCE>
  5. symboles - Les valeurs sont affectées à ce que Keycodes .
    C'est ici que nous définirons notre disposition personnalisée.
  6. compat - Abréviation de Compatibility .
    Comportement interne de Modificateurs (Maj, Contrôle, Alt ...)

Workflow

codes clés & gt; symboles & gt; compat

Je touche uniquement symbols : Voir ci-dessous la solution Rapide et sale .

Cartes de symboles

/ symbols / us Tout fichier de ce répertoire suit la même structure.

partial alphanumeric_keys
xkb_symbols "basic" {
    name[Group1]= "US/ASCII";
    key <TLDE> {        [ quoteleft,    asciitilde      ]       };
    key <AE01> {        [         1,    exclam          ]       };
    modifier_map Shift  { Shift_L, Shift_R };
};

partial - Pas un clavier complet

alphanumeric_keys Section du clavier en cours de mappage. Plusieurs peuvent être utilisés
Remarque: Si aucun *_keys n'est spécifié, un clavier complet est utilisé.

"basic" - Le nom de la carte des symboles

name [Group1]="US / ASCII"; Donne un nom unique à ce groupe de claviers.

modifier_map Pour éditer les touches de modification . (ctrl, shift, alt ~)

Shift {Shift_L, Shift_R}; Généralement pas nécessaire. Il mappe les deux changements sur le modificateur shift, alias level 2.

clé & lt; TLDE & gt; La clé Tilde - Habituellement, la touche en haut à gauche au-dessus de l’onglet

key & lt; AE01 & gt; Illustration - Composé de Trois parties, A E 01

  1. Un = bloc clé alphanumérique.
    KP = Clavier
    FK = touche de fonction

  2. E = Ligne sur le clavier.
    Espace clé = Une ligne
    Shift Key = B ligne
    Caps Lock = C ligne
    Clé de tabulation = D rangée

  3. 01 = Position de la clé sur la ligne.
    AE01 = 1
    AB02 = X
    AC05 = G

[ + ] - En langage C; Les crochets indiquent une liste par laquelle les éléments sont divisés par , . La longueur de la liste détermine la quantité de niveaux. Par exemple:

key<AE01> { [ Level 1 , Level 2 , Level 3 , Level 4 , Level 5 ] }

En règle générale, les niveaux indiquent les touches suivantes avec:

  1. Aucune touche de modification
  2. Shift
  3. Alt Gr
  4. Shift + Alt Gr
  5. Personnalisé - Peu probable de voir quelque chose au-delà du niveau 4.

En bref, si vous souhaitez mapper une touche pour déplacer + altgr, votre liste doit comporter au moins quatre éléments.

AVERTISSEMENT - Erreurs communes

Chacune de ces lignes provoquera une erreur critique et vous laissera sans clavier utilisable:

key<AE01> { [ Backspace ] }
key<AE02> { [ a, b, , C ] }
  • Backspace devrait être BackSpace : Accordez une attention particulière à l'orthographe.
  • Une entrée vide doit être VoidSymbol .

Meilleure mesure de sécurité!

  1. Sauvegardez votre fichier que vous éditez:

    sudo /bin/cp /usr/share/X11/xkb/symbols/us /usr/share/X11/xkb/symbols/usBACKUP

  2. Créez un script que vous pouvez exécuter sans mot de passe root

Quelque chose comme:

#!/bin/bash
sudo /bin/cp -rf /usr/share/X11/xkb/symbols/usBACKUP /usr/share/X11/xkb/symbols/us

Si quelque chose ne va pas, utilisez votre souris pour exécuter cette ligne de code (contenue dans le script bash sur lequel vous avez donné la permission à sudoers. N'oubliez pas de chmod +x pour autoriser l'exécution en tant qu'exécutable.)

Stratégies de sauvegarde pour récupérer un système endommagé

  • AVERTISSEMENT: clavier et amp; Le clavier à l'écran va cesser de fonctionner avec la moindre erreur.
  • La souris fonctionnera . La saisie peut être effectuée en mettant en évidence les caractères et en les collant en utilisant un clic du milieu.Dans Bash, vous pouvez return (en appuyant sur Entrée) en collant un saut de ligne.
  • Le clavier fonctionnera en mode de récupération dans le shell racine. (Accessible depuis bash)
  • Vous pouvez toujours utiliser un environnement en direct pour réparer des fichiers.

Solution rapide et sale

  1. Cliquez ici
  2. Fichier & gt; Faire une copie
  3. Mapper Feuille est l'endroit où vous définissez votre mise en page.
    • Les entrées de caractère unique sont traduites en code compris par le programme.
      ( ! devient U0021 ). Unicode supporté!
    • Les chaînes ne sont pas traduites et sont traitées telles quelles. Assurez-vous qu'il n'y a pas d'erreurs ou d'erreurs de cas!
    • Les carrés vides sont automatiquement remplis avec VoidSymbol .
  4. XKB-Sort Feuille contient des groupes de clés, par exemple:
    key <AE01> { [U0021, U0021, U0021, U0021, U0021, U0021, U0021, U0021] };
    key <AE02> { [U005B, U005B, U005B, U005B, U005B, U005B, U005B, U005B] };
    key <AE03> { [U005D, U005D, U005D, U005D, U005D, U005D, U005D, U005D] };
    key <AE04> { [U0022, U0022, U0022, U0022, U0022, U0022, U0022, U0022] };
    key <AE05> { [U002A, U002A, U002A, U002A, U002A, U002A, U002A, U002A] };
    key <AE06> { [U007B, U007B, U007B, U007B, U007B, U007B, U007B, U007B] };
    key <AE07> { [U007D, U007D, U007D, U007D, U007D, U007D, U007D, U007D] };
    key <AE08> { [U002F, U002F, U002F, U002F, U002F, U002F, U002F, U002F] };
    key <AE09> { [U0027, U0027, U0037, U0027, U0027, U0027, U0027, U0027] };
    key <AE10> { [U0029, U0029, U0038, U0029, U0029, U0029, U0029, U0029] };
    key <AE11> { [U0028, U0028, U0039, U0028, U0028, U0028, U0028, U0028] };
    key <AE12> { [U005C, U005C, U005C, U005C, U005C, U005C, U005C, U005C] };
    
    Change cela sur les 8 niveaux:
    1234567890-= // Physical Keys
    ![]"*{}/')(\ // Changed to these characters
  5. XKB L'onglet comporte également des lignes. Chaque autre onglet peut être ignoré (son code).
  6. sudo vim /usr/share/X11/xkb/symbols/us
  7. Remplacer le contenu d'une mise en page. Choisissez celui que vous n'utiliserez pas. Par exemple: J'ai modifié l’entrée colemak en laissant la structure intacte et en remplaçant les clés .

Lignes d'intérêt:

key.type[group1]="EIGHT_LEVEL";          // Enables 8 levels
modifier_map Control { <LFSH>, <RTSH> }; // Maps ctrl's to shift keys.
key  { [Control_R, Control_R, Control_R, Control_R, Control_R, Control_R, Control_R, Control_R] }; 
key  { [Control_L, Control_L, Control_L, Control_L, Control_L, Control_L, Control_L, Control_L] };
include "level3(lalt_switch)" // Hold Left  Alt for Level 3
include "level5(ralt_switch)" // Hold Right Alt for Level 5
    
réponse donnée Akiva 26.10.2014 - 16:07
la source
58

Dans Ubuntu 14.04 , les dispositions de clavier sont conservées dans

/usr/share/X11/xkb/symbols/

Chacun des fichiers de ce répertoire contient une série d'entrées du type suivant:

    key <AC01> {[a, A, aacute, Aacute]};

Cette entrée mappe une clé du clavier sur un certain nombre de caractères spécifiques en utilisant les conventions suivantes:

  1. & lt; A C01 & gt; La première lettre A indique que nous cherchons dans le bloc de clé alphanumérique (les autres options incluent KP [for keypad] et FK [for Function Key] );

  2. & lt; A C 01 & gt; La deuxième lettre C indique la ligne, en partant du bas de la clé. (Dans un clavier américain standard, la barre d'espace est dans la ligne AA et les touches numériques dans la ligne AE ).

  3. & lt; AC 01 & gt; Les nombres 01 indiquent la position de la clé, en comptant à partir de la gauche et en ignorant toute clé spécialement nommée comme TAB ou ~ (tilde): AC01 est dans le troisième rangée, première clé de gauche (en ignorant Caps Lock , si présent); sur un clavier US standard, c'est la clé marquée "a".

  4. Les crochets entourent la liste des caractères assignés à chaque touche. Il contient jusqu'à quatre entrées, séparées par des virgules:

    1. a - la clé non modifiée.
    2. A - Caractère Shift .
    3. á - le caractère Alt Gr . ( aacute )
    4. Á - Caractère Shift + Alt Gr . ( Aacute )

Créer une carte de clavier personnalisée est aussi simple que de remplacer les caractères que vous ne voulez pas dans une ligne donnée par ceux que vous faites!

Par exemple:

En tant que anglo-saxoniste, je tape á et Á beaucoup moins fréquemment que je tape æ et Æ .

Pour ajouter les caractères anglo-saxons à ma liste, je remplace simplement aacute et Aacute par les noms d'entité ou Points de code Unicode pour æ et Æ (" aelig "ou U00E6 et "AElig" ou U00C6 , respectivement):

    key  {[a, A, aelig, AElig]};

ou

    key  {[a, A, U00E6, U00C6]};

Lorsque j'ai fini de modifier la disposition de mon clavier, je sauvegarde le fichier sous un nouveau nom, "oe" dans le même répertoire.

Ajout d’une nouvelle disposition de clavier au fichier evdev.xml .

Pour utiliser une nouvelle disposition de clavier, nous devons indiquer X11 qu’elle existe. Dans Ubuntu 14.04%, co_de% garde la trace des claviers installés dans le fichier X11 . Puis ajoutons la nouvelle mise en page.

  1. Ouvrez /usr/share/X11/xkb/rules/evdev.xml dans un éditeur
  2. Allez à la fin de la section X11/xkb/rules/evdev.xml (recherchez <layoutList> ). Ajoutez ce qui suit après la dernière balise </layoutList> , où </layout> correspond au nom de fichier de votre disposition de clavier dans X (dans mon cas /usr/share/X11/xkb/symbols ); oe un nom abrégé approprié; et Y un nom long approprié dans une ou plusieurs langues et Z a Code de langue légal à trois lettres (ISO 639-2) (par exemple, eng pour l'anglais):

    <layout>
     <configItem>
       <name> X </name>
       <shortDescription> Y </shortDescription>
       <description> Z </description>
       <languageList>
          <iso639Id> aaa </iso639Id>
       </languageList>
     </configItem>
     <variantList/>
    </layout>
    

Voilà, suivez l’introduction complète

Autres liens connexes:
lien lien

    
réponse donnée αғsнιη 14.08.2014 - 08:20
la source

Lire d'autres questions sur les étiquettes