Я столкнулся с некоторыми проблемами после переназначения клавиатуры с помощью xmodmap: настройки сбрасываются случайным образом через 2-20 минут после применения. Погуглил, но не помогло: что-то их сбрасывает, но все упоминания относятся к xfce, пока я нахожусь под обычным Ubuntu 14.04 с единством.
Я видел такие фразы, как «использовать xkb, забудь xmodmap», но все еще не знаю, как это сделать. Это либо секретно, либо очень сложно, потому что объем информации об этом значительно меньше, чем для xmodmap.
Вот мой список настроек:
xmodmap -e "keycode 84 = Down"
xmodmap -e "keycode 79 = Home"
xmodmap -e "keycode 80 = Up"
xmodmap -e "keycode 83 = Left"
xmodmap -e "keycode 85 = Right"
xmodmap -e "keycode 87 = End"
xmodmap -e "keycode 90 = Insert"
xmodmap -e "keycode 91 = Delete"
xmodmap -e "keycode 89 = Next"
xmodmap -e "keycode 81 = Prior"
где коды клавиш - это соответствующие ключи на цифровой клавиатуре, с numlock = off (в основном я заменяю KP_Del на Delete, KP_Home на Home и т. д. - не спрашивайте почему))
Может кто-нибудь помочь найти способ сделать это, используя xkb - хотя бы одну из строк? И где найти «имена» ключей для других, чтобы я мог сделать все остальное на примере?
xkb
не переписывая системные файлы, напишите ответ здесь ... Вы будете вознаграждены миллионами голосов.Ответы:
Вы можете следовать общей идее, приведенной в моем ответе на аналогичную проблему ; если вы все еще хотите переключить макет (хотя он все еще не работает ), вам следует определить новый макет или вариант .
Обратите внимание, что шаблон для копирования и изменения для редактирования клавиатуры немного сложен. Например, в моей клавиатуре геометрия "pc105"; это определено в
/usr/share/X11/xkb/symbols/pc
. Если вы посмотрите на это, оно включает в себя :Клавиатура определяется в файле
/usr/share/X11/xkb/symbols/keypad
Для названия ключевых символов (keysims) лучше всего искать в файле
/usr/include/X11/keysymdef.h
; вам может понадобиться установить пакеты для разработки (или установить его путем установкиx11proto-core-dev
):имя ключа является тем, которое вы однажды удалили строку «XK_».
источник