タップ時にISO_Level3_ShiftをEscapeとして使用する

タップ時にISO_Level3_ShiftをEscapeとして使用する

私はCapsLockと#を使用する代替キーボードレイアウトを使用していますISO_レベル3_シフト修飾子。

setxkbmap de koy

また、CapsLock をタップするだけで、追加の Escape キーとして使用することもできます。これは、次の方法で簡単に実行できます。

xcape -e "ISO_Level3_Shift=Escape"

しかし、これにより、レベル 3 修飾子の両方が Escape として機能します。 xcape を左修飾子キー (CapsLock というラベル) にのみ適用するにはどうすればよいですか?

答え1

いくつか読んだ後github の xcape ページ、私は簡単な解決策を見つけました。昨年、プルリクエストキーシンボルの代わりにキーコードを xcape に渡すことができるようにマージされました。

解決策は次のとおりです。

xcape -e "#66=Escape"

正しいキーコードを取得するにはどうすればいいですか?

xev -event keyboard

変更したいキーを押します。すると、次のような画面が表示されます。

KeyPress event, serial 29, synthetic NO, window 0x4c00001,
    root 0x190, subw 0x0, time 771139, (110,626), root:(204,711),
    state 0x0, keycode 66 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
    XKeysymToKeycode returns keycode: 51
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

そこにキーコード(この例では 66)が見つかります。

関連情報