Warum muss ich die Tastatur anpassen?
Sie können die Standardeinstellungen verwenden, aber manchmal ermöglichen die Änderungen eine schnellere Eingabe (dies ist natürlich kein Blinddruck, aber dennoch), weniger Fehler, weniger Layoutwechsel ...
Warum wollte ich meine Tastatur ändern?
Als ich anfing, es vim
als Haupteditor zu verwenden, wurde mir zunächst klar, dass ich nicht jedes Mal erreichen wollte ESC
. Außerdem schrieb ich hauptsächlich in Python, so dass ich ;
viel seltener drĂĽckte als :
und der vim
Unterschied wurde deutlicher.
Zweitens begann ich nach einer Weile, Vimov-Kombinationen fĂĽr die Navigation im Browser zu verwenden, dann den Kachelfenstermanager i3
, in dem sie auch verwendet wurden, und ich wollte ĂĽberall zu ihnen wechseln (anstelle der ĂĽblichen Pfeile, zum Beispiel im Dateimanager).
Drittens , wenn ich zu schreiben Notizen ĂĽber begann TeX
in vim
, erkannte ich, dass ich wirklich auf diesen Prozess vereinfachen und beschleunigen könnten; Wenn die englischen und russischen Layouts einander ähnlicher sind, kann ich dieselben Zeichen (z. B. Punkt, Komma, Anführungszeichen, Dollar) auf dieselbe Weise eingeben. Außerdem müssen Sie häufig die Sprache ändern, sodass Sie dies schnell, zuverlässig und bequem tun können.
Einstellung des Layoutschalters
Nun, fangen wir an. Lassen Sie uns zunächst herausfinden, wie Sie eine Änderung des Tastaturlayouts konfigurieren können.
Der erste Weg. Sie können zum Beispiel ein Programm verwenden gnome-tweaks
:
Hier können wir eine der von Entwicklern angebotenen Optionen auswählen .

Die Hauptsache ist, dass wir keine eigene Version erstellen können. Lass uns auch lernen, das zu tun.
.
, , .
Alt
( AltGr
):
$ setxkbmap -layout us,ru -option grp:toggle
, , ? /usr/share/X11/xkb/symbols/
. /usr/share/X11/xkb/symbols/group
. :
partial modifier_keys
xkb_symbols "toggle" {
virtual_modifiers AltGr;
key <RALT> {
symbols[Group1] = [ ISO_Next_Group ],
virtualMods = AltGr
};
};
, , , , , .
AltGr
: AltGr
, Shift+AltGr
— .
- , :
$ setxkbmap -layout us,ru -print
- (pc105
):
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+ru:2+inet(evdev)" };
xkb_geometry { include "pc(pc105)" };
};
~/.config/xkb/config
.
/usr/share/X11/xkb/symbols/group
CapsLock
, , us
ISO_First_Group
, ru
— ISO_Second_Group
.
key <CAPS> { [ ISO_First_Group, ISO_Last_Group ] };
, <CAPS>
ISO_First_Group
, Shift
— ISO_Last_Group
.
xkb_symbols
:
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_geometry { include "pc(pc105)" };
xkb_symbols "my" {
include "pc+us+ru:2+inet(evdev)"
key <RALT> { [ ISO_First_Group, ISO_Last_Group ] };
};
};
, . :
$ xkbcomp $HOME/.config/xkb/config $DISPLAY
.
, , (, TeX
), , , , , , . , .
— .
. , . /usr/share/X11/xkb/symbols/
. us
:
key <AC10> { [ semicolon, colon ] };
.
ESC
CapsLock
ESC
CapsLock
. capslock
:
hidden partial modifier_keys
xkb_symbols "swapescape" {
key <CAPS> { [ Escape ] };
key <ESC> { [ Caps_Lock ] };
};
hidden partial modifier_keys
xkb_symbols "escape" {
key <CAPS> { [ Escape ] };
};
partical
— , .
include "swapescape"
, .
Alt
Win
, , Alt
Win
, i3wm
, Win
, , Alt
(, ...).
? , - - , , .
: level3
, level5
. Shift
.
, CapsLock
h, j, k, l . .
( ESC
, : ):
key <CAPS> { [ ISO_Level3_Shift ] };
, :
name[group1] = "English (US)";
name[group2] = "Russian";
key <CAPS> {
symbols[group1] = [ ISO_Level3_Shift ],
symbols[group2] = [ Caps_Lock ]
}
h, j, k, l. — , . <AC06>
,… <AC09>
. . :
key <AC06> { [ h, H, KP_Left ] };
key <AC07> { [ j, J, KP_Down ] };
key <AC08> { [ k, K, KP_Up ] };
key <AC09> { [ l, L, KP_Right ] };
, — , — .
.
, CapsLock
— ESC
.
xcape
, , , . : , .
, , CapsLock
ESC
, .
$ xcape -t < > -e " = "
500 . :
$ xcape -t 500 -e "ISO_Level3_Shift=Escape"
TeX
, , . . , , , , , ...
:
.
:
( /, , , ):
key <AD03> {
type = "ALPHABETIC",
type[group2] = "FOUR_LEVEL",
symbols[group2] = [Cyrillic_u, Cyrillic_U, Cyrillic_yu, Cyrillic_YU]
};
, .
, ( ), , . .
: , , .
, (, - , , ).
:
key <AD11> {
type[group2]="FOUR_LEVEL",
symbols[group2]=[Cyrillic_ha, Cyrillic_HA, bracketleft, braceleft]
};
key <AD12> {
type[group2]="FOUR_LEVEL",
symbols[group2]=[Cyrillic_hardsign, Cyrillic_HARDSIGN, bracketright, braceright]
};
key <AC10> {
type[group2]="FOUR_LEVEL",
symbols[group2]=[Cyrillic_zhe, Cyrillic_ZHE, colon, semicolon]
};
key <AC11> {
type[group2]="FOUR_LEVEL",
symbols[group2]=[Cyrillic_e, Cyrillic_E, apostrophe, quotedbl]
};
key <AB08> {
type[group2]="FOUR_LEVEL",
symbols[group2]=[Cyrillic_be, Cyrillic_BE, comma, less]
};
key <AB09> {
type[group2]="FOUR_LEVEL",
symbols[group2]=[Cyrillic_yu, Cyrillic_YU, period, greater]
};
, .
key <AB10> {
symbols[group2]=[slash, question]
};
, , , .
key <AE03> { [ 3, numbersign, number, apostrophe ] };
key <AE04> { [ 4, dollar ] };
key <AE06> { [ 6, asciicircum ] };
key <AE07> { [ 7, ampersand ] };
, .
Ebenso können Sie eine fünfte Ebene hinzufügen, obwohl ich persönlich bisher keine Notwendigkeit verspüre - die dritte ist genug.
Eine interessante Version von BackSpace am Ende
Und vielleicht genug, um weit in die hinterste Ecke der Tastatur zu gelangen?
Zieh es BackSpace
an $mod3+Space
( $mod3
unser Modifikator der dritten Stufe)!
key <SPCE> { [ space, space, BackSpace, BackSpace ] };
PS
Alle Einstellungen gelten grundsätzlich für jede Linux-Distribution mit X.
Vollständige Konfigurationen finden Sie auf GitHub .
Dieser Beitrag ist fĂĽr mich zu einem Ausgangspunkt geworden, um zu verstehen, wie die Tastatur konfiguriert werden kann und sollte.