Карта Вставить ключ в конец / Главная

Я пытаюсь переназначить свой ключ Insert для завершения и сдвинуть + Вставить в начало на Ubuntu 16.10. Вдохновленный Map Super + [Left | Right] в Home / End и некоторые другие ресурсы, я сделал следующий файл mysymbols:

partial modifier_keys xkb_symbols "insert_end_home" { key <INS> {[ End, Home ]}; }; 

Он работает для End , но shift + Insert не создает функцию Home . Как я могу это исправить?

РЕДАКТИРОВАТЬ

После изменения с помощью xmodmap как было предложено @dirkt, я все еще получаю только Home или только End. Вот вывод xev когда я xev Insert а затем, когда я xev shift+Insert . Есть действительно событие FocusOut , но что это значит?

 KeyPress event, serial 37, synthetic NO, window 0x3800001, root 0xed, subw 0x0, time 56790713, (-342,308), root:(439,360), state 0x0, keycode 118 (keysym 0xff50, Home), same_screen YES, XKeysymToKeycode returns keycode: 110 XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 37, synthetic NO, window 0x3800001, root 0xed, subw 0x0, time 56790753, (-342,308), root:(439,360), state 0x0, keycode 118 (keysym 0xff50, Home), same_screen YES, XKeysymToKeycode returns keycode: 110 XLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 37, synthetic NO, window 0x3800001, root 0xed, subw 0x0, time 56796591, (-342,308), root:(439,360), state 0x0, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyPress event, serial 37, synthetic NO, window 0x3800001, root 0xed, subw 0x0, time 56796755, (-342,308), root:(439,360), state 0x1, keycode 118 (keysym 0xff57, End), same_screen YES, XKeysymToKeycode returns keycode: 115 XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 37, synthetic NO, window 0x3800001, root 0xed, subw 0x0, time 56796811, (-342,308), root:(439,360), state 0x1, keycode 118 (keysym 0xff57, End), same_screen YES, XKeysymToKeycode returns keycode: 115 XLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 37, synthetic NO, window 0x3800001, root 0xed, subw 0x0, time 56797003, (-342,308), root:(439,360), state 0x1, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False FocusOut event, serial 37, synthetic NO, window 0x3800001, mode NotifyNormal, detail NotifyNonlinear PropertyNotify event, serial 37, synthetic NO, window 0x3800001, atom 0x168 (_NET_WM_STATE), time 56802723, state PropertyNewValue 

Кроме того, вот вывод xmodmap -pm :

 xmodmap: up to 4 keys per modifier, (keycodes in parentheses): shift Shift_L (0x32), Shift_R (0x3e) lock Caps_Lock (0x42) control Control_L (0x25), Control_R (0x69) mod1 Alt_L (0x40), Meta_L (0xcd) mod2 Num_Lock (0x4d) mod3 mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf) mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb) 

Попытка написать файлы xkb затруднительна, вместо этого используйте xmodmap .

Стандартное имя, из которого можно автоматически загружать сопоставление при входе в систему, – ~/.Xmodmap , некоторые диспетчеры дисплея делают это из коробки, для некоторых менеджеров дисплеев вам нужно изменить сценарии входа.

Не пытайтесь использовать xmodmap эксплицитно в .profile или аналогичном, это вызовет проблемы при входе через ssh и т. Д.

Изменить : Как объясняется в man xmodmap , вы не можете описывать комбинации клавиш с Alt таким образом, только с помощью Shift и с помощью клавиши Mode_Switch :

К ключу может быть подключено до восьми ключей, однако последние четыре не используются в какой-либо крупной реализации X-сервера. Первый keyym используется, когда в сочетании с этой клавишей не нажата клавиша-модификатор, вторая с Shift, третья, когда клавиша Mode_switch используется с этой клавишей, а четвертая – при использовании клавиш Mode_switch и Shift.

Для моей клавиатуры я назначил Mode_Switch на левый Windows-Key (который, случается, Super_L на моей клавиатуре);

 keysym Super_L = Mode_switch 

Поэтому либо обозначьте какой-то ключ, который вы не используете иначе, как Mode_Switch , или прочитайте, как слова xkbd . Может помочь ненадежное руководство по конфигурации XKB .