バインド不可能なキーをバインド可能なキーに変換するにはどうすればよいですか?

バインド不可能なキーをバインド可能なキーに変換するにはどうすればよいですか?

私は(キーコード=135)(別名右クリック)について話していますMenu。私はそれを使いません

だから私はそれを無効にしたコンテキストメニューXmodmap ツールを使用したアクションでは、メニューが開かず、キーボード ショートカットが引き続き機能します*

また、繰り返しも無効にしました(などのキーは 押している間は繰り返し実行されないxset -r 135ため)Ctrl

* しかし問題は、 how CtrlShiftdoesなどの他のキーと組み合わせることができないことですAlt

たとえば、Shift+ Alt+のようなショートカットを作成できますSが、 +somekey ではそのようなことはできませんMenu。他のキーとバインドされません。キーの「コード」を作成することはできますが、それは私が探しているものではありません。

Xmodmap ではできないようです :/

実行すると、、などのxev -event keyboardキーで何が変化するかがわかりますCtrlShiftAltstate価値は、state 0x0押すと、state 0x4( の場合Ctrl L)離すと、Menuキーとその他のバインドできないキーではこのようなことは起こらず、すべてstate 0x0、これが問題なのでしょうか?

これをどうすれば解決できますか?

ありがとう

答え1

修飾キーを誤解しています。

修飾子が何であるかは で確認できますxmodmap

MenuF10は、(使用するソフトウェアに応じて)いくつかのコンテキスト メニューをトリガーできるにもかかわらず、デフォルトでは修飾子ではありません。

state 0x0の出力を見るとxev、それが修飾子に効果的に関連していることがわかります。複数の修飾子を同時に押すと、合計が表示されます。

効率的には、xmodmap必要なものを作成することはできません。Menu有効な修飾子名を使用して修飾子マップに効果的に追加し、xkbマップを変更してキーシンボルが送信されるようにすることはできますが、これはエレガントな方法ではありません。

代わりに、 という名前のソフトウェアxcape(Wayland と互換性のあるソフトウェアは他にもありますHyper_R) を使用して、このキーを他のキーと組み合わせて押したとき、および単独で押したときの修飾子をエミュレートすることをお勧めします (たとえば、これを mod マップに追加することを前提とします) Menu

のドキュメントは、xcapeこのような変更を実行するのに非常に簡単です。

関連情報