لينكس إعداد لوحة المفاتيح

لماذا أحتاج إلى تخصيص لوحة المفاتيح؟


يمكنك استخدام الإعدادات القياسية ، ولكن في بعض الأحيان تجعل التغييرات من الممكن الكتابة بشكل أسرع (بالطبع ، هذه ليست طبعة عمياء ، ولكنها لا تزال) ، أو ارتكاب أخطاء أقل ، أو تبديل التنسيق أقل ...


لماذا أردت تغيير لوحة المفاتيح الخاصة بي؟


أولاً ، عندما بدأت في استخدامه vimكمحرر رئيسي ، أدركت أنني لا أريد الوصول في كل مرة ESC. بالإضافة إلى ذلك ، كتبت بشكل رئيسي بلغة الثعبان ، لذلك ;ضغطت أقل كثيرًا من ذلك :، vimوأصبح الفرق أكثر وضوحًا.


ثانيًا ، بعد فترة بدأت في استخدام تركيبات Vimov للتنقل في المتصفح ، ثم مدير نوافذ المربعات i3، حيث تم استخدامها أيضًا ، وأردت التبديل إليها في كل مكان (بدلاً من الأسهم المعتادة ، على سبيل المثال ، في مدير الملفات).


ثالثا، عندما بدأت تلاحظ الكتابة على TeXفي vim، أدركت أنني يمكن تبسيط حقا وتسريع هذه العملية؛ إذا كانت التخطيطات الإنجليزية والروسية أكثر تشابهًا مع بعضها البعض ، فيمكنني إدخال الأحرف نفسها (على سبيل المثال ، النقطة ، الفاصلة ، علامات الاقتباس ، الدولار) بنفس الطريقة. بالإضافة إلى ذلك ، غالبًا ما يتعين عليك تغيير اللغة ، لذلك تحتاج إلى القيام بذلك بسرعة وموثوقية وسهولة.


إعداد تبديل التخطيط


حسنًا ، لنبدأ. أولاً ، دعنا نكتشف كيف يمكنك تكوين تغيير تخطيط لوحة المفاتيح.


  • الطريقة الأولى. يمكنك استخدام بعض البرامج ، على سبيل المثال gnome-tweaks:
    هنا يمكننا اختيار أحد الخيارات التي يقدمها المطورون.
    مثال `` gnome-tweak` لـ Ubuntu
    الشيء الرئيسي هو أنه لا يمكننا إنشاء نسختنا الخاصة. دعونا نتعلم القيام بذلك أيضًا.


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

    , .




وبالمثل ، يمكنك إضافة طبقة خامسة ، على الرغم من أنني حتى الآن لا أشعر شخصياً بأي حاجة - الطبقة الثالثة كافية.


نسخة مثيرة للاهتمام من BackSpace في النهاية


وربما بما يكفي للوصول إلى مسافة بعيدة في الزاوية البعيدة من لوحة المفاتيح؟
ضعه BackSpaceعلى $mod3+Space( $mod3معدل المستوى الثالث)!


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

ملاحظة


جميع الإعدادات ، من حيث المبدأ ، قابلة للتطبيق على أي توزيع Linux باستخدام X.


يمكن العثور على التكوينات الكاملة على GitHub .


أصبحت هذه المشاركة بالنسبة لي نقطة انطلاق لفهم كيفية تكوين لوحة المفاتيح وكيف يمكن تكوينها.

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


All Articles