Я хочу создать настраиваемую привязку клавиш, где
i - up arrow
j - left arrow
k - down arrow
l - right arrow
я хочу иметь возможность включать / выключать это, нажимая, скажем, комбинацию клавиш shift + ctrl + i
.
Как я могу это сделать? Я могу создавать привязки клавиш, как указано в сообщении здесь
. Но если я создаю привязки клавиш с помощью xkeybind, мне нужно перезапустить ОС, чтобы заставить ее работать (с использованием ubuntu 20.04) ..
Что делать, если я использую языковые регионы для использования разных клавиатур и изменяю настройки клавиатуры для другой языковой клавиатуры? Могу ли я это сделать?
Поэтому я смог сделать это, добавив клавиатуру другого региона (используя английскую британскую)
Я использовал 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