我想重新映射我的Tab键,这样当它单独单击而没有任何额外的键时,它会像平常一样充当 Tab ,但是当我将它与其他键(如Tab+ )组合时j,它的行为会像Win.
TAB = TAB (pressed solely)
TAB + (any_key) = WIN_KEY + (any_key)
我应该使用哪个工具来实现此目的?
答案1
您可以使用xev
它来重新映射键。启动终端窗口并运行xev
,然后按要更改其行为的键。在你的情况下是Tab钥匙。
xev
将向您显示有关Tab密钥的信息。例如:
KeyRelease event, serial 37, synthetic NO, window 0x4000001,
root 0x75, subw 0x0, time 4090453521, (461,542), root:(468,620),
state 0x10, keycode 23 (keysym 0xff09, Tab), same_screen YES,
XLookupString gives 1 bytes: (09) " "
XFilterEvent returns: False
第三行是最重要的,其中Tab
是此时该键分配给的行为的名称,数字keycode23
是识别Tab键的内部id。
或有关密钥的信息Windows:
KeyPress event, serial 37, synthetic NO, window 0x4000001,
root 0x75, subw 0x0, time 4090816069, (681,389), root:(688,467),
state 0x10, keycode 115 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
同样,第三行是最重要的,其中Super_L
是当前按键分配给的行为的名称,数字keycode115
是识别Windwos按键的内部id。
您可以使用xmodmap
交换两个密钥。这里有一个教程。例如:
xmodmap -e "keycode 115 = Tab"
这将更改 Windows 键的行为并使其行为与 Tab 键完全相同。或者
xmodmap -e "keycode 115 = Tab j"
这将更改Tab+j键的行为并使其行为类似于Tab键。
答案2
@Goro 在他的回复中列出了识别按键的好工具,例如西夫。但他回答的第二部分不是我想要的。
Tab我想改变not key的行为Windows。例如,要激活 i3 窗口管理器中的脚本来更改窗口,我可以按Tab+ 1 切换到第一个屏幕。Win+ 1(默认)。但如果我单独按下它,我仍然可以用来Tab进行缩进。
我为使其发挥作用所做的就是使用xmodmap和X角。
spare_modifier="Super_L"
echo $spare_modifier
xmodmap -e "keycode 23 = $spare_modifier"
xmodmap -e "remove mod4 = $spare_modifier"
xmodmap -e "add Win = $spare_modifier"
xmodmap -e "add mod4 = $spare_modifier"
xmodmap -e "keycode any = Tab"
xcape -e "$spare_modifier=Tab"