如何使用按钮切换键绑定

如何使用按钮切换键绑定

我想创建一个自定义键绑定

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

我希望能够通过按下组合键来打开/关闭此功能shift+ctrl+i

我该怎么做?我可以根据帖子创建键绑定这里

但是,如果我使用 xkeybind 创建键绑定,则需要重新启动操作系统才能使其工作(使用 ubuntu 20.04)。

如果我使用语言区域来使用不同的键盘并更改其他语言键盘的键盘设置,该怎么办?我可以这样做吗?

答案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

相关内容