Hinweis : Wayland verwendet xkb, aber viele xTools funktionieren nicht mehr ordnungsgemäß (z. B. xdotool).
Hinweis : Dies ist ein nicht erschöpfendes Tutorial. Es ist am nützlichsten für eine Person, die ein neues Layout mit acht Ebenen erstellen und die Syntax verstehen möchte.
Hinweis: Es wird eine schnelle und schmutzige Lösung bereitgestellt. Es enthält eine Tabelle, die den benötigten Code automatisch generiert.
Grundlegendes zum XKB-Verzeichnis
cd /usr/share/X11/xkb/ && ls
- types- Wie produzierte Schlüssel von Active Modifiers geändert werden . (Umschalt, Strg, Alt ~)
Wichtig, wenn Sie die Modifikatortasten anpassen möchten.
- geometry- Zum Zeichnen von Tastaturgrafiken.
Wichtig, wenn Sie eine nicht standardmäßige Tastaturhardware entwerfen.
- rules- Holen Sie sich die entsprechende Konfiguration für Ihr aktuelles Setup.
Sie müssen dies definieren
- keycodes- Der Interpreter der Tastencodes für die Tastaturhardware.
Beispiel: Macintosh-Tastaturen verstehen die Leertaste als 57
. Wir schreiben es aber als<SPCE>
- symbols- Welche Werte sind welchen Keycodes zugeordnet .
Hier definieren wir unser benutzerdefiniertes Layout.
- compat- Kurzform für Kompatibilität .
Internes Verhalten von Modifikatoren (Shift, Control, Alt ...)
Arbeitsablauf
keycodes > symbols > compat
Ich berühre nur symbols
: Siehe unten für die schnelle und schmutzige Lösung.
Symbolkarten
/symbols/us Jede Datei in diesem Verzeichnis folgt der gleichen Struktur.
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 - Keine vollständige Tastaturbelegung
alphanumeric_keysAbschnitt der Tastatur, die zugeordnet wird. Es können mehrere
Tastaturen verwendet werden.
Hinweis: Wenn keine *_keys
angegeben sind, wird eine vollständige Tastatur vorausgesetzt.
"basic" - Der Name der Symbolkarte
name[Group1]= "US/ASCII";Verleiht dieser Tastaturgruppe einen eindeutigen Namen.
modifier_mapZum Bearbeiten von Modifikatortasten . (Strg, Umschalt, Alt ~)
Shift { Shift_L, Shift_R };Normalerweise nicht notwendig. Es ordnet beide Schichten dem Shift-Modifikator zu, auch bekannt als Level 2.
key <TLDE> Der Tilde-Schlüssel - Normalerweise oben links rechts über Tab
key <AE01> Illustration - Bestehend aus drei Teilen,AE01
A= alphanumerischer Schlüsselblock.
KP= Tastatur
FK= Funktionstaste
E= Zeile auf der Tastatur.
Space Key= Arow
Shift Key= Brow
Caps Lock= Crow
Tab Key= Drow
01= Position des Schlüssels in der Reihe.
AE01= 1
AB02= X
AC05=G
[+ ]- In C-Sprachen; Eckige Klammern kennzeichnen eine Liste, nach der die Elemente aufgeteilt werden ,. Die Länge der Liste bestimmt die Anzahl der Ebenen. Zum Beispiel:
key<AE01> { [ Level 1 , Level 2 , Level 3 , Level 4 , Level 5 ] }
Normalerweise bezeichnen die Ebenen den folgenden Tastendruck mit:
- Keine Änderungstasten
- Shift
- Alt Gr
- Shift + Alt Gr
- Custom - Es ist unwahrscheinlich, dass etwas anderes als Level 4 zu sehen ist.
Kurz gesagt, wenn Sie eine Taste Shift + Altgr zuordnen möchten, müsste Ihre Liste mindestens vier Elemente lang sein.
WARNUNG - Häufige Fehler
Jede dieser Zeilen verursacht einen kritischen Fehler und lässt Sie ohne verwendbare Tastatur zurück:
key<AE01> { [ Backspace ] }
key<AE02> { [ a, b, , C ] }
Backspace
sollte sein BackSpace
: Achten Sie besonders auf die Rechtschreibung.
- Ein leerer Eintrag sollte sein
VoidSymbol
.
Beste Sicherheitsmaßnahme!
Sichern Sie Ihre Datei, die Sie bearbeiten:
sudo /bin/cp /usr/share/X11/xkb/symbols/us /usr/share/X11/xkb/symbols/usBACKUP
Erstellen Sie ein Skript, das Sie ohne root-Passwort ausführen können
So etwas wie:
#!/bin/bash
sudo /bin/cp -rf /usr/share/X11/xkb/symbols/usBACKUP /usr/share/X11/xkb/symbols/us
Wenn etwas schief geht, verwenden Sie Ihre Maus, um diese Codezeile auszuführen (enthalten in dem Bash-Skript, für das Sie sudoers die Berechtigung erteilt haben. Denken Sie daran chmod +x
, die Ausführung als ausführbare Datei zuzulassen.)
Sicherungsstrategien zur Wiederherstellung eines defekten Systems
- WARNUNG: Tastatur und Bildschirmtastatur funktionieren nicht mehr mit dem geringsten Fehler.
- Die Maus wird funktionieren . Die Eingabe kann durch Markieren und Einfügen von Zeichen mit einem mittleren Mausklick erfolgen. In Bash können Sie
return
(Drücken der Eingabetaste) einen Zeilenumbruch einfügen.
- Die Tastatur funktioniert im Wiederherstellungsmodus in der Root-Shell. (Zugriff von der Bash)
- Sie können jederzeit eine Live-Umgebung zum Reparieren von Dateien verwenden.
Schnelle und schmutzige Lösung
- Gehe hier hin
- Datei> Kopie erstellen
- Mapper In Sheet definieren Sie Ihr Layout.
- Einzelzeicheneinträge werden in Code übersetzt, der vom Programm verstanden wird.
( !
Wird U0021
). Unicode unterstützt!
- Zeichenfolgen werden nicht übersetzt und unverändert behandelt. Stellen Sie sicher, dass es keine Rechtschreib- oder Groß- / Kleinschreibfehler gibt !.
- Leere Felder werden automatisch mit gefüllt
VoidSymbol
.
- XKB-Sort Blatt enthält Schlüsselgruppen, zum Beispiel:
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] };
Ändert dies auf allen 8 Ebenen:
1234567890-= // Physical Keys
![]"*{}/')(\ // Changed to these characters
- XKBTab hat auch Linien. Jede andere Registerkarte kann ignoriert werden (ihr Code).
sudo vim /usr/share/X11/xkb/symbols/us
- Ersetzen Sie den Inhalt eines Layouts. Wählen Sie eine, die Sie nicht verwenden. Zum Beispiel: Ich habe den Colemak-Eintrag geändert, ohne die Struktur zu verändern, und die Schlüssel ersetzt.
Interessante Linien:
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