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:
x
[root]# cd /home
[root]# cp -a /etc/skel /home/username
[root]# chown -R username /home/username
[root]# chgrp -R username /home/username
Ваши переназначения 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
)ниже:
Перед:клавиша Caps _Lock принадлежит модификатору Lock.
После:код клавиши, идентифицирующий физические клавиши Caps _Клавиша блокировки (66/0x42 )теперь идентифицируется как дополнительная левая клавиша управления, по-прежнему с исходным кодом клавиши Caps _Lock,и теперь переместился из модификатора Lock в модификатор Control на карте модификаторов. Оригинальная левая клавиша Control тоже осталась.