Использование setxkbmap для простого переназначения (аналогично xmodmap)

Я столкнулся с некоторыми проблемами после переназначения клавиатуры с помощью 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 - хотя бы одну из строк? И где найти «имена» ключей для других, чтобы я мог сделать все остальное на примере?

13
задан 16 June 2014 в 02:36

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; Вы, возможно, должны установить пакеты разработки, чтобы иметь его (или установить его путем устанавливания 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 */
[...]

имя keysym является тем, которое Вы когда-то удалили "XK _" строка.

4
ответ дан 16 June 2014 в 02:36

Другие вопросы по тегам:

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