X11: キーボードのキーとマウスのボタンを入れ替える

X11: キーボードのキーとマウスのボタンを入れ替える

キーボードのメニュー キー (キーコード 135) をマウスの右ボタンと同じ機能にしたいです。

https://superuser.com/questions/336674/キーボードでマウスクリックをエミュレートするそれはできますが、キーボードのテンキー領域が犠牲になるため、これらのキーは通常の機能を果たせなくなります。私はテンキーを使用しているので、それを犠牲にするつもりはありません。

だから私は解決策を探していますのみメニューボタン(キーコード 135)をタッチします。

答え1

[注: 明らかに意図的に、これは"スワップ"キーボードのキーとマウス ボタンを関連付けます。キーボードのキーをマウス ボタンのように動作させるだけです。ただし、マウス ボタンがキーボードのキーのように動作するわけではありません。

xkbset m
xkbset exp =m  # keep the state unchanged after the AccessX timeout
xkbcomp "$DISPLAY" - |
  sed -e 's/ Menu / Pointer_Button3 /' -e '/interpret KP_/,/};/d' | 
  xkbcomp - "$DISPLAY"

コントロールを切り替えるために別のキーの組み合わせをバインドすることもできますMouseKeys。例Shift-Menu:

xkbcomp "$DISPLAY" - |
  sed -e 's/ Menu \| Pointer_Button3 / Pointer_Button3, MouseKeys_Enable /' -e '/interpret KP_/,/};/d' |
  xkbcomp - "$DISPLAY"

これは、Menuキーがすでに他のものに再バインドされていないことを前提としています。

xbksetとの代わりにxkbcomp、同じことを実行する小さなプログラムを簡単に作成できます (これらが実行するすべての操作は、通常の X11 クライアントで実行できます)。

これを、独自のルールに基づいて xkb 設定を自ら変更する厄介な「デスクトップ環境」と統合する方法については、読者の課題として残しておきます。

関連情報