Переотображение Caps Lock с xmodmap не работает

Можно сделать это с sed. Проблема - то, что необходимо включать строку в код дважды. Однажды, чтобы протестировать его, снова вставить его.

sed -i '/eval \$(perl -I\$HOME\/foo\/lib\/perl5 -Mlocal::lib=\$HOME\/foo)/!{ ${ s/$/\neval \$(perl -I\$HOME\/foo\/lib\/perl5 -Mlocal::lib=\$HOME\/foo)/; }; }' /path/to/file
9
13.04.2012, 02:19
2 ответа

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)

7
27.01.2020, 20:07
  • 1
    я действительно прочитал страницу справочника и повторно присвоил Caps_Lock и ключи Control_L, следующие примеру. Но, мне было любопытно, почему, повторно отображая ключи путь, упомянутый в OP, не работает. Действительно ли это - ошибка или что-то? –  Aby James 12.04.2012, 09:52
  • 2
    Кажется, что это - просто способ, которым это, как предполагается, работает. См. мой обновленный ответ. –  Mikel 12.04.2012, 09:55

Свободно связанный ответ: Я хотел повторно отобразить клавишу Caps Lock на контроль, из-под которого выходят, выходя из-под фактического вышедшего нетронутого контроля. xmodmap страница справочника также предлагает решение:

    keycode 66 = Control_L
    clear Lock
    add Control = Control_L
2
27.01.2020, 20:07

Теги

Похожие вопросы