結ぶ方法。タブのみ = タブですが、異なるキーを持つタブ = WinKey + 別のキー

結ぶ方法。タブのみ = タブですが、異なるキーを持つタブ = WinKey + 別のキー

Tab追加のキーなしで単独でクリックすると、通常どおりTabのように機能しますが、Tab+などの他のキーと組み合わせると、そのように機能するjようにキーを再マップしたいと思いますWin

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

これを達成するにはどのツールを使用する必要がありますか?

答え1

2つのコマンドラインベースのツールが必要です。シフそしてxmodmap

これを使用してキーを再マッピングできますxev。ターミナルウィンドウを実行して実行し、xevアクションを変更したいキーを押します。あなたの場合、これはTab重要です。

xevTabキーに関する情報が表示されます。たとえば、

 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

3行目が最も重要です。ここでは、Tabこのときキーが割り当てられたアクションの名前、数字キーコードは23Tabキーを識別する内部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

繰り返しますが、3行目が最も重要です。ここで、Super_L現在のキーが割り当てられているアクションの名前、数値キーコードは、115Windwosキーを識別する内部IDです。

を使用して2つのキーを交換できますxmodmap。ここに一つあります。地図時間。たとえば、

xmodmap -e "keycode 115 = Tab"

これにより、Windowsキーの動作が変更され、Tabキーと同じように動作します。または

xmodmap -e "keycode 115 = Tab j"

これにより、Tab+キーの動作が変わり、キーjのように動作します。Tab

答え2

@Goroの答えは、キーストロークを識別するのに役立つツールをリストしています。シフ。しかし、彼の答えの2番目の部分は私が望むものではありません。

Tabnot 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"

関連情報