рдореБрдЭреЗ рдХреАрдмреЛрд░реНрдб рдХреЛ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?
рдЖрдк рдорд╛рдирдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рдкрд░рд┐рд╡рд░реНрддрди рддреЗрдЬреА рд╕реЗ рдЯрд╛рдЗрдк рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддреЗ рд╣реИрдВ (рдпрд╣, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдПрдХ рдЕрдВрдзрд╛ рдкреНрд░рд┐рдВрдЯ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА), рдХрдо рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдХрд░реЗрдВ, рд▓реЗрдЖрдЙрдЯ рдХрдо рдХрд░реЗрдВ ...
рдореИрдВ рдЕрдкрдирд╛ рдХреАрдмреЛрд░реНрдб рдХреНрдпреЛрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛?
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЬрдм рдореИрдВрдиреЗ рдЗрд╕реЗ vim
рдореБрдЦреНрдп рд╕рдВрдкрд╛рджрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рддреЛ рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореИрдВ рд╣рд░ рдмрд╛рд░ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрдирд╛ рдЪрд╛рд╣рддрд╛ ESC
ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЕрдЬрдЧрд░ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ ;
рдЕрдХреНрд╕рд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо рджрдмрд╛рдпрд╛ :
, рдФрд░ vim
рдЕрдВрддрд░ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ред
рджреВрд╕рд░реЗ, рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рдмрд╛рдж рдореИрдВрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдореЛрд╡ рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдлрд┐рд░ рдЯрд╛рдЗрд▓ рдЦрд┐рдбрд╝рдХреА рдкреНрд░рдмрдВрдзрдХ i3
, рдЬрд╣рд╛рдВ рд╡реЗ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдереЗ, рдФрд░ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рд╣рд░ рдЬрдЧрд╣ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ (рд╕рд╛рдорд╛рдиреНрдп рддреАрд░ рдХреЗ рдмрдЬрд╛рдп, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдмрдВрдзрдХ рдореЗрдВ)ред
рддреАрд╕рд░рд╛, рдЬрдм рдореИрдВрдиреЗ рдиреЛрдЯреНрд╕ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ TeX
рдХрд┐рдпрд╛ vim
, рддреЛ рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рд░рд▓ рдФрд░ рддреЗрдЬ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ; рдпрджрд┐ рдЕрдВрдЧреНрд░реЗрдЬреА рдФрд░ рд░реВрд╕реА рд▓реЗрдЖрдЙрдЯ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рдорд╛рди рд╣реИрдВ, рддреЛ рдореИрдВ рдЙрд╕реА рддрд░рд╣ рдХреЗ рдЕрдХреНрд╖рд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЙрдЯ, рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо, рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрди, рдбреЙрд▓рд░) рджрд░реНрдЬ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рд╕рд╛рде рд╣реА, рдЖрдкрдХреЛ рдЕрдХреНрд╕рд░ рднрд╛рд╖рд╛ рдХреЛ рдмрджрд▓рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕реЗ рдЬрд▓реНрджреА, рдордЬрд╝рдмреВрддреА рд╕реЗ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИред
рд▓реЗрдЖрдЙрдЯ рд╕реНрд╡рд┐рдЪ рд╕реЗрдЯрд┐рдВрдЧ
рдЦреИрд░, рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рдЬрд╛рдиреЗрдВ рдХрд┐ рдЖрдк рдХреАрдмреЛрд░реНрдб рд▓реЗрдЖрдЙрдЯ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдХреИрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдкрд╣рд▓рд╛ рддрд░реАрдХрд╛ред рдЖрдк рдХреБрдЫ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП gnome-tweaks
:
рдпрд╣рд╛рдВ рд╣рдо рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ ред

рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЕрдкрдирд╛ рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддреЗред рдЖрдЗрдП рдЗрд╕реЗ рднреА рдХрд░рдирд╛ рд╕реАрдЦреЗрдВред
.
, , .
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 ] };
, .
рдЗрд╕реА рддрд░рд╣, рдЖрдк рдкрд╛рдВрдЪрд╡реАрдВ рдкрд░рдд рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрднреА рддрдХ рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдХреЛрдИ рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ - рддреАрд╕рд░рд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
рдЕрдВрдд рдореЗрдВ рдмреИрдХрд╕реНрдкреЗрд╕ рдХрд╛ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕рдВрд╕реНрдХрд░рдг
рдФрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреАрдмреЛрд░реНрдб рдХреЗ рджреВрд░ рдХреЗ рдХреЛрдиреЗ рдореЗрдВ рджреВрд░ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛ?
рдпрд╣ рд░рдЦреЛ BackSpace
рдкрд░ $mod3+Space
( $mod3
рд╣рдорд╛рд░реЗ рддреАрд╕рд░реЗ рд╕реНрддрд░ рд╕рдВрд╢реЛрдзрдХ)!
key <SPCE> { [ space, space, BackSpace, BackSpace ] };
рдкреБрдирд╢реНрдЪ
рд╕рднреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдПрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рднреА рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдг рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИрдВред
рдкреВрд░реНрдг рд╡рд┐рдиреНрдпрд╛рд╕ GitHub рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред
рдпрд╣ рдкреЛрд╕реНрдЯ рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ рдмрди рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреАрдмреЛрд░реНрдб рдХреИрд╕реЗ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред