Linux Configuration du clavier

Pourquoi dois-je personnaliser le clavier?


Vous pouvez utiliser les paramètres standard, mais parfois les modifications permettent de taper plus rapidement (ce n'est bien sûr pas une impression aveugle, mais quand même), de faire moins d'erreurs, de changer moins de mise en page ...


Pourquoi ai-je voulu changer de clavier?


Premièrement, lorsque j'ai commencé à l'utiliser vimcomme éditeur principal, j'ai réalisé que je ne voulais pas atteindre chaque fois ESC. De plus, j'ai écrit principalement en python, donc j'ai ;appuyé beaucoup moins souvent que :, et la vimdifférence est devenue plus prononcée.


Deuxièmement, après un certain temps, j'ai commencé à utiliser des combinaisons Vimov pour naviguer dans le navigateur, puis le gestionnaire de fenêtres de tuiles i3, où elles étaient également utilisées, et je voulais passer à elles partout (au lieu des flèches habituelles, par exemple, dans le gestionnaire de fichiers).


Troisièmement, quand j'ai commencé à écrire des notes TeXdans vim, j'ai réalisé que je pouvais vraiment simplifier et accélérer ce processus; si les dispositions en anglais et en russe sont plus similaires, je peux saisir les mêmes caractères (par exemple, point, virgule, guillemets, dollar) de la même manière. De plus, vous devez souvent changer la langue, vous devez donc le faire rapidement, de manière fiable et pratique.


Réglage du commutateur de disposition


Eh bien, commençons. Voyons d'abord comment configurer un changement de disposition du clavier.


  • La première façon. Vous pouvez utiliser un programme, par exemple gnome-tweaks:
    ici, nous pouvons choisir l' une des options proposées par les développeurs.
    Exemple `gnome-tweaks` pour Ubuntu
    L'essentiel est que nous ne pouvons pas créer notre propre version. Apprenons à le faire aussi.


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



key <CAPS> { [ ISO_First_Group, ISO_Last_Group ] }; 

, <CAPS> ISO_First_Group, ShiftISO_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 ] };

, — , — .



.
, CapsLockESC.


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

    , .




De même, vous pouvez ajouter une cinquième couche, bien que jusqu'à présent, je ne ressente personnellement aucun besoin - la troisième suffit.


Une version intéressante de BackSpace à la fin


Et peut-être assez pour atteindre loin, loin dans le coin le plus éloigné du clavier?
Mettez- BackSpacele $mod3+Space( $mod3notre troisième modificateur de niveau)!


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

PS


Tous les paramètres sont, en principe, applicables à toute distribution Linux utilisant X.


Des configurations complètes peuvent être trouvées sur GitHub .


Ce message est devenu pour moi un point de départ pour comprendre comment le clavier peut et doit être configuré.

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


All Articles