如何绑定。仅 Tab = Tab,但 Tab 与其他键 = WinKey + 其他键

如何绑定。仅 Tab = Tab,但 Tab 与其他键 = WinKey + 其他键

我想重新映射我的Tab键,这样当它单独单击而没有任何额外的键时,它会像平常一样充当 Tab ,但是当我将它与其他键(如Tab+ )组合时j,它的行为会像Win.

TAB = TAB (pressed solely)
TAB + (any_key) = WIN_KEY + (any_key)

我应该使用哪个工具来实现此目的?

答案1

您需要两个基于命令行的工具,西夫xmodmap

您可以使用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进行缩进。

我为使其发挥作用所做的就是使用xmodmapX角

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"

相关内容