Linux Configuración del teclado

¿Por qué necesito personalizar el teclado?


Puede usar la configuración estándar, pero a veces los cambios hacen posible escribir más rápido (esto, por supuesto, no es una impresión a ciegas, pero aún así), cometer menos errores, cambiar el diseño menos ...


¿Por qué quería cambiar mi teclado?


En primer lugar, cuando comencé a usarlo vimcomo editor principal, me di cuenta de que no quería llegar cada vez ESC. Además, escribí principalmente en Python, así que ;presioné con mucha menos frecuencia :y la vimdiferencia se hizo más pronunciada.


En segundo lugar, después de un tiempo comencé a usar combinaciones de Vimov para navegar en el navegador, luego el administrador de ventanas de mosaico i3, donde también se usaban, y quería cambiar a todas partes (en lugar de las flechas habituales, por ejemplo, en el administrador de archivos).


En tercer lugar, cuando empecé a escribir notas sobre TeXen vim, me di cuenta de que realmente yo podría simplificar y acelerar este proceso; Si los diseños en inglés y ruso son más similares entre sí, entonces puedo ingresar los mismos caracteres (por ejemplo, punto, coma, comillas, dólar) de la misma manera. Además, a menudo tiene que cambiar el idioma, por lo que debe hacerlo de manera rápida, confiable y conveniente.


Configuración del interruptor de diseño


Bueno, empecemos. Primero, descubramos cómo puede configurar un cambio de distribución del teclado.


  • La primera manera Puede usar algún programa, por ejemplo gnome-tweaks:
    aquí podemos elegir una de las opciones que ofrecen los desarrolladores.
    Ejemplo `gnome-tweaks` para Ubuntu
    Lo principal es que no podemos crear nuestra propia versión. Aprendamos a hacer eso también.


  • .
    , , .
    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 ] };

    , .




Del mismo modo, puede agregar una quinta capa, aunque hasta ahora personalmente no siento ninguna necesidad: la tercera es suficiente.


Una versión interesante de BackSpace al final


¿Y tal vez lo suficiente como para llegar muy lejos en la esquina más alejada del teclado?
Ponerlo BackSpaceen $mod3+Space( $mod3nuestro tercer nivel de modificador)!


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

PD


Todas las configuraciones son, en principio, aplicables a cualquier distribución de Linux que use X.


Las configuraciones completas se pueden encontrar en GitHub .


Esta publicación se ha convertido para mí en un punto de partida para comprender cómo se puede y se debe configurar el teclado.

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


All Articles