Linux Configuração do teclado

Por que preciso personalizar o teclado?


VocĂȘ pode usar as configuraçÔes padrĂŁo, mas Ă s vezes as alteraçÔes tornam possĂ­vel digitar mais rapidamente (isso, Ă© claro, nĂŁo Ă© uma impressĂŁo cega, mas ainda assim), cometem menos erros, alteram menos o layout ...


Por que eu quis mudar meu teclado?


Primeiro, quando comecei a usĂĄ-lo vimcomo editor principal, percebi que nĂŁo queria acessĂĄ-lo a cada vez ESC. AlĂ©m disso, eu escrevi principalmente em python, entĂŁo ;pressionei com muito menos frequĂȘncia :e a vimdiferença se tornou mais acentuada.


Em segundo lugar, depois de um tempo, comecei a usar combinaçÔes do Vimov para navegar no navegador, depois o gerenciador de janelas lado a lado i3, onde elas também eram usadas, e eu queria mudar para elas em qualquer lugar (em vez das setas usuais, por exemplo, no gerenciador de arquivos).


Em terceiro lugar, quando comecei a escreve notas no TeXno vim, eu percebi que eu poderia realmente simplificar e acelerar este processo; se os layouts em inglĂȘs e russo forem mais parecidos entre si, posso inserir os mesmos caracteres (por exemplo, ponto final, vĂ­rgula, aspas, dĂłlar) da mesma maneira. AlĂ©m disso, vocĂȘ geralmente precisa alterar o idioma, portanto, Ă© necessĂĄrio fazer isso de forma rĂĄpida, confiĂĄvel e conveniente.


Configuração do interruptor de layout


Bem, vamos começar. Primeiro, vamos descobrir como vocĂȘ pode configurar uma alteração no layout do teclado.


  • O primeiro caminho. VocĂȘ pode usar algum programa, por exemplo gnome-tweaks:
    aqui podemos escolher uma das opçÔes oferecidas pelos desenvolvedores.
    Exemplo de `gnome-tweaks` para Ubuntu
    O principal é que não podemos criar nossa própria versão. Vamos aprender a fazer isso também.


  • .
    , , .
    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, , . . , , , , , ...


:


  1. .
    :



    ( /, , , ):


    key <AD03> {                                            
    type = "ALPHABETIC",
    type[group2] = "FOUR_LEVEL",
    symbols[group2] = [Cyrillic_u, Cyrillic_U, Cyrillic_yu, Cyrillic_YU]
    };

    , .
    , ( ), , . .


  2. : , , .
    , (, - , , ).
    :


    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 ] };

    , .




Da mesma forma, vocĂȘ pode adicionar uma quinta camada, embora atĂ© agora eu pessoalmente nĂŁo sinta necessidade - a terceira Ă© suficiente.


Uma versĂŁo interessante do BackSpace no final


E talvez o suficiente para chegar muito longe no canto mais distante do teclado?
Coloque-o BackSpaceno $mod3+Space( $mod3nosso modificador de terceiro nĂ­vel)!


key <SPCE> { [ space, space, BackSpace, BackSpace ] };

PS


Todas as configuraçÔes sĂŁo, em princĂ­pio, aplicĂĄveis ​​a qualquer distribuição Linux usando X.


ConfiguraçÔes completas podem ser encontradas no GitHub .


Este post tornou- se um ponto de partida para entender como o teclado pode e deve ser configurado.

Source: https://habr.com/ru/post/undefined/


All Articles