.png)
У меня возникли проблемы после переназначения клавиатуры с помощью xmodmap: настройки сбрасываются случайным образом через 2-20 минут после применения. Гуглил, но не помогло: что-то их сбрасывает, но все упоминания относятся к xfce, в то время как у меня обычная 14.04 Ubuntu с unity.
Я видел фразы типа "используйте 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 = выключен (по сути, я заменяю KP_Del на Delete, KP_Home на Home и т. д. - не спрашивайте почему))
Может кто-нибудь помочь найти способ сделать это с помощью xkb - хотя бы одну из строк? И где найти "имена" ключей для других, чтобы я мог сделать остальное по примеру?
решение1
Вы можете проследить общую идею, представленную вмой ответ на похожую проблему; если вы все еще хотите переключение раскладки (хотявсе еще довольно сломан) вам следуетопределить новый макет или вариант.
Обратите внимание, что шаблон для копирования и изменения для редактирования клавиатуры найти немного сложно. В моей клавиатуре, например, геометрия — «pc105»; это определено в /usr/share/X11/xkb/symbols/pc
. Если вы посмотрите на это, то увидите, чтовключать:
[...]
key <SPCE> { [ space ] };
include "srvr_ctrl(fkey2vt)"
include "pc(editing)"
include "keypad(x11)"
key <BKSP> { [ BackSpace, BackSpace ] };
[...]
Клавиатура определена в файле/usr/share/X11/xkb/symbols/keypad
[...]
default partial hidden keypad_keys
xkb_symbols "x11" {
include "keypad(operators)"
key <KP7> { [ KP_Home, KP_7 ] };
key <KP8> { [ KP_Up, KP_8 ] };
[...]
Названия символов клавиш (keysims) лучше всего искать в файле /usr/include/X11/keysymdef.h
; для этого вам, возможно, придется установить пакеты разработки (или установить их, выполнив команду install x11proto-core-dev
):
[...]
/* Cursor control & motion */
#define XK_Home 0xff50
#define XK_Left 0xff51 /* Move left, left arrow */
#define XK_Up 0xff52 /* Move up, up arrow */
[...]
имя символа ключа — это то, которое вы когда-то удалили из строки «XK_».