xmodmap и модификатор

Nunca me di cuenta de lo que estaba causando esto. Logré resolver esto solo mediante el enfoque de fuerza bruta de crear un nuevo directorio $HOME para el usuario afectado, y luego iniciar sesión como ese usuario y reconfigurar manualmente el entorno:

  • Cerró la sesión de la cuenta de usuario afectada (, por ejemplo, nombre de usuario)
  • Conectado como root
  • Se cambió el nombre del directorio $HOME del usuario afectado (, por ejemplo, /home/username -> /home/username.old)
  • Creó un nuevo directorio $HOME para el usuario afectado

x

[root]# cd /home
[root]# cp -a /etc/skel /home/username
[root]# chown -R username /home/username
[root]# chgrp -R username /home/username
  • Cerrado como root
  • Vuelve a iniciar sesión en la cuenta de usuario afectada (nombre de usuario)
  • Recuperó y reconfiguró manualmente todo en el entorno del nombre de usuario
2
09.03.2017, 07:19
1 ответ

Ваши переназначения Ctrl+N и Ctrl+P в последних двух строках в порядке. Проблема заключается в попытке переназначить код клавиши Caps _Lock (66 десятичного или 0x42 шестнадцатеричного ).

Caps Lock является одной из клавиш-модификаторов , наряду с Shift и Control (Ctrl ). X.org поддерживает таблицу сопоставлений модификаторов, а также знакомые сопоставления клавиш. xmodmap -pmпокажет вам текущую карту модификаторов. Вам нужно будет обновить эту карту, а также раскладку клавиатуры, как я объясню ниже :

.

Модификатор (Caps )Lock, который обеспечивает характерное поведение блокировки заглавных букв, не освобождает физическую клавишу для других целей, если вы явно не укажете на это. Лично я всегда поддевал ключ Caps Lock отверткой, это меня так сильно раздражало, что я рад полностью его очистить с помощью clear Lock.

(Я также видел, как люди включали изменения в свои привязки Lock, окружая их remove MODIFIERNAME = KEYSYMNAME...и add MODIFIER = KEYSYMNAME. См. man xmodmapдля получения подробной информации.)

clear Lock
keycode 66 = Control_L
add Control = Control_L

После того, как модификатору Lock было сказано отпустить клавишу Caps _Lock, вы можете переназначить эту клавишу(keycode 66в строке 2 фрагмента )на одну из клавиш Ctrl -в В этом случае я выбрал левый, следовательно, _L, но на самом деле не имеет значения, какой именно. Теперь клавиша Caps _Lock «думает», что это клавиша Ctrl, но таблица модификаторов еще не знает, что мы хотим использовать ее в качестве модификатора.

Последняя строка в моем листинге объявляет, что Control _L является новым модификатором Control и поэтому должен действовать как клавиша Ctrl. Посмотрите на сравнение карт модификаторов (иxmodmap -pm)ниже:

до/после.

Before: the Caps_Lock key belongs to the Lock modifier.Перед:клавиша Caps _Lock принадлежит модификатору Lock.

After: the keycode identifying the physical Caps_Lock key (66/0x42) now identifies as an additional left Control key, still with Caps_Lock's original keycode, and has now moved from the Lock modifier to the Control modifier in the modifier map. The original left Control key is still there, too.После:код клавиши, идентифицирующий физические клавиши Caps _Клавиша блокировки (66/0x42 )теперь идентифицируется как дополнительная левая клавиша управления, по-прежнему с исходным кодом клавиши Caps _Lock,и теперь переместился из модификатора Lock в модификатор Control на карте модификаторов. Оригинальная левая клавиша Control тоже осталась.

0
21.06.2020, 05:01

Теги

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