Перероблення Caps Lock за допомогою xmodmap не працює


10

Коли я програмую, мені подобається міняти ці клавіші:

EscTab CtrlCapsLock

В ~/.xmodmap, я вказав ці повторні відображення:

keycode 66 = Control_L
keycode 37 = Caps_Lock
keycode 23 = Escape
keycode 9 = Tab

EscapeІ Tabключі свопи, ніяких проблем, але замість того , щоб Caps_Lockі Control_Lпідкачка, обидва ці клавіші стають Caps_Lock.

Що б я не намагався зробити, кнопки керування не призначаються Caps_Lock(клавішний код 66). Якщо я залишу keycode 66 =, ключ не присвоєно, але коли я призначаю Control_Lабо Control_R, він просто не працює. Але, якщо я призначу якийсь інший ключ, наприклад keycode 66 = Tab, він присвоюється, немає проблем.

Начебто xmodmap просто не хоче міняти клавіші Caps Lock і Control. Дійсно розчаровує. Будь-яка допомога / покажчик була б дуже корисною.

PS: Я використовую Archlinux.

Відповіді:


8

На прикладі сторінки xmodmap (1) є приклад саме цього

   !
   ! Swap Caps_Lock and Control_L
   !
   remove Lock = Caps_Lock
   remove Control = Control_L
   keysym Control_L = Caps_Lock
   keysym Caps_Lock = Control_L
   add Lock = Caps_Lock
   add Control = Control_L

але якщо ви хочете закінчити робити так, як ви почали, я думаю, вам потрібно додати принаймні рядки removeта addрядки

   remove Lock = Caps_Lock
   remove Control = Control_L
   keycode 37 = Caps_Lock
   keycode 66 = Control_L
   add Lock = Caps_Lock
   add Control = Control_L

Я здогадуюсь, що це випадок, заснований на цьому пункті

   add MODIFIERNAME = KEYSYMNAME ...
           This adds all keys containing the given keysyms  to  the  indi‐
           cated  modifier  map.  The keysym names are evaluated after all
           input expressions are read to make it easy to write expressions
           to swap keys (see the EXAMPLES section).

завдяки чому зміни модифікаторів (зсув, контроль тощо) не застосовуються, поки ви також не запустите це.

(І логічно те саме remove)


Я прочитав manpage, і повторно призначив клавіші Caps_Lock та Control_L за прикладом. Але мені було цікаво, чому повторне відображення ключів способом, згаданим в ОП, не працює. Це помилка чи щось таке?
Ебі Джеймс

Здається, це просто так, як це має працювати. Дивіться мою оновлену відповідь.
Мікель

4

Відповідь не дуже: я хотів перевстановити клавішу блокування ковпачків на ліве управління, залишивши фактичне ліве управління недоторканим. Сторінка людини xmodmap також пропонує рішення:

    keycode 66 = Control_L
    clear Lock
    add Control = Control_L
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.