Remarque : Wayland utilise xkb, mais de nombreux xTools ont cessé de fonctionner correctement (xdotool par exemple).
Note : Ceci est un tutoriel non exhaustif. Il est très utile pour une personne cherchant à créer une nouvelle disposition sur 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
- types- Comment les clés produites sont modifiées par les modificateurs actifs . (Maj, Ctrl, Alt ~)
Important si vous souhaitez personnaliser les touches de modification.
- geometry- Utilisé pour dessiner des graphiques de clavier.
Important si vous concevez un composant de clavier non standard.
- rules- Récupération de la configuration appropriée pour votre configuration actuelle.
Vous devrez définir ceci
- keycodes- L'interprète des codes de clé pour le matériel du clavier.
Exemple: Les claviers Macintosh comprennent la barre d'espace comme 57
. Nous l'écrivons cependant comme<SPCE>
- symbols- Quelles valeurs sont assignées à quels codes clés .
C'est ici que nous définirons notre mise en page personnalisée.
- compat- Abréviation de compatibilité .
Comportement interne des modificateurs (Shift, Control, Alt ...)
Flux de travail
keycodes > symbols > compat
Je touche seulement symbols
: Voir ci-dessous pour la solution rapide et sale .
Cartes symboliques
/symbols/us Tous les fichiers de ce répertoire suivent 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 une carte de clavier complète
alphanumeric_keysSection 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_mapPour éditer les touches de modification . (ctrl, shift, alt ~)
Shift { Shift_L, Shift_R };Ce n'est généralement pas nécessaire. Il mappe les deux décalages au modificateur de décalage, niveau 2.
key <TLDE> La clé tilde - touche généralement en haut à gauche, au dessus de l'onglet
key <AE01> Illustration composée de trois partiesAE01
A= bloc clé alphanumérique.
KP= Clavier
FK= touche de fonction
E= Ligne sur le clavier.
Space Key= Arangée
Shift Key= Brangée
Caps Lock= Crangée
Tab Key= Drangée
01= Position de la clé sur la ligne.
AE01= 1
AB02= X
AC05=G
[+ ]- en langues C; Les crochets indiquent une liste par laquelle les éléments sont divisés ,. 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 général, les niveaux désignent les touches suivantes:
- Pas de touches de modification
- Shift
- Alt Gr
- Shift + Alt Gr
- Custom - Peu de chances de voir quelque chose au-delà du niveau 4.
En bref, si vous souhaitez mapper une touche pour déplacer + alt, votre liste devrait 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
: Faites très attention à l’orthographe.
- Une entrée vide devrait être
VoidSymbol
.
Meilleure mesure de sécurité!
Sauvegardez votre fichier que vous éditez:
sudo /bin/cp /usr/share/X11/xkb/symbols/us /usr/share/X11/xkb/symbols/usBACKUP
Faites 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 pour lequel vous avez donné l'autorisation à sudoers. N'oubliez pas chmod +x
d'autoriser l'exécution en tant qu'exécutable.)
Stratégies de sauvegarde pour récupérer un système en panne
- AVERTISSEMENT: Le clavier et le clavier à l'écran cesseront de fonctionner avec la moindre erreur.
- La souris fonctionnera . La saisie peut être effectuée en mettant en surbrillance des caractères et en les collant avec un clic du milieu. Dans Bash, vous pouvez
return
(appuyer sur Entrée) en collant un saut de ligne.
- Le clavier fonctionnera en mode de récupération dans le shell root. (Accessible depuis bash)
- Vous pouvez toujours utiliser un environnement en direct pour réparer les fichiers.
Solution rapide et sale
- Va ici
- Fichier> Faire une copie
- Mapper La 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. VÉRIFIEZ QU'IL N'Y A AUCUNE ERREUR D'ORCEAU OU DE CASE !.
- Les cases vides sont automatiquement remplies
VoidSymbol
.
- XKB-Sort La feuille contient des groupes de touches, 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] };
Cela change à tous les 8 niveaux:
1234567890-= // Physical Keys
![]"*{}/')(\ // Changed to these characters
- XKBOnglet a aussi des lignes. Tout autre onglet peut être ignoré (son code).
sudo vim /usr/share/X11/xkb/symbols/us
- Remplacer un contenu de mises en page. Choisissez celui que vous n'utiliserez pas. Par exemple: j'ai modifié l'entrée colemak en laissant la structure intacte et remplacé 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