Как переключать привязки клавиш с помощью кнопки

Я хочу создать настраиваемую привязку клавиш, где

i - up arrow
j - left arrow
k - down arrow
l - right arrow

я хочу иметь возможность включать / выключать это, нажимая, скажем, комбинацию клавиш shift + ctrl + i .

Как я могу это сделать? Я могу создавать привязки клавиш, как указано в сообщении здесь

. Но если я создаю привязки клавиш с помощью xkeybind, мне нужно перезапустить ОС, чтобы заставить ее работать (с использованием ubuntu 20.04) ..

Что делать, если я использую языковые регионы для использования разных клавиатур и изменяю настройки клавиатуры для другой языковой клавиатуры? Могу ли я это сделать?

0
задан 16 November 2020 в 16:56

1 ответ

Поэтому я смог сделать это, добавив клавиатуру другого региона (используя английскую британскую)

Я использовал xev чтобы получить код клавиши

KeyRelease event, serial 37, synthetic NO, window 0x2e00001,
    root 0x5c5, subw 0x0, time 790965, (1386,793), root:(1394,865),
    state 0x10, keycode 44 (keysym 0x6a, j), same_screen YES,
    XLookupString gives 1 bytes: (6a) "j"
    XFilterEvent returns: False


KeyRelease event, serial 37, synthetic NO, window 0x3000001,
    root 0x5c5, subw 0x0, time 2590604, (72,-17), root:(80,55),
    state 0x2010, keycode 31 (keysym 0x69, i), same_screen YES,
    XLookupString gives 1 bytes: (69) "i"
    XFilterEvent returns: False


KeyRelease event, serial 37, synthetic NO, window 0x3000001,
    root 0x5c5, subw 0x0, time 2612248, (947,850), root:(955,922),
    state 0x2010, keycode 45 (keysym 0x6b, k), same_screen YES,
    XLookupString gives 1 bytes: (6b) "k"
    XFilterEvent returns: False

KeyPress event, serial 37, synthetic NO, window 0x3000001,
    root 0x5c5, subw 0x0, time 2612767, (947,850), root:(955,922),
    state 0x2010, keycode 46 (keysym 0x6c, l), same_screen YES,
    XLookupString gives 1 bytes: (6c) "l"
    XmbLookupString gives 1 bytes: (6c) "l"
    XFilterEvent returns: False

Затем я использовал xmodmap для привязки клавиш

xmodmap -e "keycode 31 = i I KP_Up i" 
xmodmap -e "keycode 45 = k K KP_Down k" 
xmodmap -e "keycode 46 = l L KP_Right l" 
xmodmap -e "keycode 44 = j J KP_Left j"

Если вы хотите сбросить привязки клавиш, вы можете использовать setxkbmap -layout us

Чтобы эта загрузка выполнялась каждый раз, когда я открываю компьютер, я добавил ее в ~/.bashrc

0
ответ дан 17 November 2020 в 05:51

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

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