Как изменить неиспользуемый ключ клавиатуры в ключ-модификатор

У меня есть корейская клавиатура, которая выглядит так:

введите описание изображения здесь

Hanja ( 한자 ), только слева от места , так мало используется даже при вводе на корейском языке, но в основном это реальная недвижимость для моего большого пальца левой руки, как ключ мод модуля i3 . Это освободит Alt для использования в моем редакторе кода.

Мой вопрос : как я могу превратить ключ Hanja в ключ-модификатор?

Я проверил ключ с xev :

 KeyPress event, serial 32, synthetic NO, window 0x2200001, root 0x281, subw 0x0, time 11955968, (-132,626), root:(491,646), state 0x0, keycode 131 (keysym 0xff34, Hangul_Hanja), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 32, synthetic NO, window 0x2200001, root 0x281, subw 0x0, time 11955968, (-132,626), root:(491,646), state 0x20, keycode 131 (keysym 0xff34, Hangul_Hanja), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False 

Keycode 131 = 0x83

Из вывода xmodmap я вижу, что mod3 доступен.

 shift Shift_L (0x32), Shift_R (0x3e) lock Caps_Lock (0x42) control Control_L (0x25), Control_R (0x69) mod1 Alt_L (0x40), Alt_R (0x6c), 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) 

Я попробовал xmodmap -e "add mod3 = Hangul_Hanja" привело к следующему …

 shift Shift_L (0x32), Shift_R (0x3e) lock Caps_Lock (0x42) control Control_L (0x25), Control_R (0x69) mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd) mod2 Num_Lock (0x4d) mod3 Hangul_Hanja (0x83) mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf) mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb) 

… после добавления set $mod Mod3 в мой конфигурационный файл i3 и перезапуска, у меня не было никакого ключа-модификатора, т. е. он не работал.

Кроме того, клавиша Hanja не ведет себя как обычный ключ-модификатор. Если я нажимаю и удерживаю клавишу, она создает повторяющиеся нажатия клавиш, тогда как типичный ключ-модификатор не работает.

Надеюсь, в доме есть несколько экспертов по клавиатуре, которые могут предложить некоторые из своих знаний.

Linux Mint 18 (Cinnamon) i3 Window Manager

Обработка модификатора X11 немного странная. Вы не можете взять ключ и объявить его модификатором: некоторые вещи должны быть согласованы между настройками модификатора и настройками keysym.

Классическими модификаторами являются Shift , Control , Alt , Meta , Hyper и Super (с двумя ключами каждый, например Shift_L и Shift_R ) (плюс Caps Lock и Num Lock, которые ведут себя несколько иначе). Большинство приложений не будут работать с другими клавишами, используемыми в качестве модификаторов.

Поэтому, чтобы использовать ключ Hanja в качестве модификатора, сделайте его Hyper_L (например).

 keycode 131 = Hyper_L remove Mod4 = Hyper_L add Mod3 = Hyper_L 

Это делает ключ больше не использован как ключ Hanja вообще. Возможно, есть способ сохранить обе функции, если вы используете XKB вместо xmodmap, но я не знаю, как это сделать.