Использование xmodmap возвращает мне & ldquo; bad keysym & rdquo;

Я бы переназначил свою клавиатуру следующим образом:

xmodmap -e "keycode 77= w W {" 
xmodmap -e "keycode 78= x X }"

xmodmap -e "keycode 24= a A @"
xmodmap -e "keycode 49= ` & 2"
xmodmap -e "keycode 65= space space _"

xmodmap -e "keycode 111= Up Up Down"
xmodmap -e "keycode 113= Left Left Right"


xmodmap -e "keycode 51= * \" \' "

xmodmap -e "keycode 113= Left Left Right"
xmodmap -e "keycode 113= Left Left Right"

Но xmodmap возвращает меня:

xmodmap: commandline: 1: неверное имя keysym 'XF86XK_ {' в списке keysym

Я видел в Интернете, что сначала я должен удалить ключ, но мне интересно, может ли это создать какую-то ошибку, поэтому перед попыткой переезда я бы попросил сообщество дать совет,

[ 115] спасибо

0
задан 13 April 2019 в 17:31

1 ответ

Относительно ошибки, которую вы упомянули, используйте как xmodmap -e "keycode 77 = w W braceleft"

получить keysym из команды xev.

KeyPress event, serial 37, synthetic NO, window 0x2200001,
    root 0x195, subw 0x0, time 470232, (535,249), root:(623,392),
    state 0x2001, keycode 34 (keysym 0x7b, braceleft), same_screen YES,
    XKeysymToKeycode returns keycode: 16
    XLookupString gives 1 bytes: (7b) "{"
    XmbLookupString gives 1 bytes: (7b) "{"
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x2200001,
    root 0x195, subw 0x0, time 470424, (535,249), root:(623,392),
    state 0x2001, keycode 34 (keysym 0x7b, braceleft), same_screen YES,
    XKeysymToKeycode returns keycode: 16
    XLookupString gives 1 bytes: (7b) "{"
    XFilterEvent returns: False

Если я правильно понял, ваш код 77 ключа является Num_Lock

, поэтому вы хотите сделать свою клавишу Num_Lock как w W и braceleft

для достижения этой цели.

  1. xmodmap -e "remove Mod2 = Num_Lock" это удалит Модификатор Num_Lock из Ключа Num_Lock.

Примечание: назначьте Num_Lock keysym любому другому коду ключа, иначе вы потеряете Num_Lock. (это не рассматривается на данном этапе)

  1. xmodmap -e "keycode 77 = NoSymbol NoSymbol w W braceleft"

вам не нужно беспокоиться об удалении модификатора, так как два вышеупомянутых изменения не сохранятся после выхода из системы или перезагрузка.

Пример замены символов Num_Lock и braceleft

$ xmodmap -e "remove Mod2 = Num_Lock"
$ xmodmap -e "keycode 34 = bracketleft Num_Lock"
$ xmodmap -e "add Mod2 = Num_Lock"
$ xmodmap -e "keycode 77 = braceleft"
$
0
ответ дан 13 April 2019 в 17:31

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

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