xcape
詳細情報
- 種類
- X11拡張
- 仕様
- Record Extension Protocol Specification
修飾キーを単独で押したときだけ別の動作をさせるX11のツールで、最もよくあるのはControlキーをEscapeとして働かせる使い方である。
Albin Olssonが2012年にxcapeを書いたのは、ごく特定の層のためだった。Controlを Caps Lock の位置に移したものの、手の届く場所にEscapeがなくなって困ったvimユーザーである。xcapeを使うと、そのキーは他のキーと同時に押せばControl、単独で軽く押せばEscapeになる。setxkbmap -option ctrl:nocapsとxcapeの組み合わせは、一世代分のdotfilesで定番の助言になった。
仕組みは、少し後ろ暗い意味で巧妙である。xcapeはRECORD拡張で全キーイベントを傍受する。この拡張は本来、記録とテストのために作られたものだ。単独のタップを見つけると、XTESTでEscapeを合成して送る。どのアプリケーションでも動くが、動くのはXの上だけである。Waylandはクライアントによる盗聴を許さないため、同じことをするにはカーネルから直接キーボードを読むツールが必要になる。