xev認識できないマウスボタンを再マップする方法

xev認識できないマウスボタンを再マップする方法

Logitech M720には親指ボタンがありますが、ボタン識別子は次の場所には表示されませんxev

親指ボタン付きロジクールM720トライアスロン

このサムボタンの結果はCtrl + Alt + Tabです。

私はFedora 28を使用していますが、Ubuntuでも同じ問題が報告されました。https://askubuntu.com/questions/956484/logitech-mouse-thumb-button-not-showing-in-xev

Logitech差動マウスに関する追加の質問:MXマスターの質問そしてMXエブリウェア2S、 を使用して一部のボタン名を取得したようですが、親指ボタンevtestの出力にはevtestボタン名がないようです。

Event: time 1538277331.280194, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e0
Event: time 1538277331.280194, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 1
Event: time 1538277331.280194, -------------- SYN_REPORT ------------
Event: time 1538277331.288214, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e2
Event: time 1538277331.288214, type 1 (EV_KEY), code 56 (KEY_LEFTALT), value 1
Event: time 1538277331.288214, -------------- SYN_REPORT ------------
Event: time 1538277331.296210, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7002b
Event: time 1538277331.296210, type 1 (EV_KEY), code 15 (KEY_TAB), value 1
Event: time 1538277331.296210, -------------- SYN_REPORT ------------
Event: time 1538277331.304218, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7002b
Event: time 1538277331.304218, type 1 (EV_KEY), code 15 (KEY_TAB), value 0
Event: time 1538277331.304218, -------------- SYN_REPORT ------------
Event: time 1538277331.312212, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e2
Event: time 1538277331.312212, type 1 (EV_KEY), code 56 (KEY_LEFTALT), value 0
Event: time 1538277331.312212, -------------- SYN_REPORT ------------
Event: time 1538277331.320218, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e0
Event: time 1538277331.320218, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 0
Event: time 1538277331.320218, -------------- SYN_REPORT ------------

CTRL ALT TABを実行するためのボタンは実際に配線されていますか?

親指ボタンを再マップできますか?

ベストアンサー1

このボタンはカーネル入力階層レベルでシーケンスを生成しますLeft Ctrl Left Alt Tab。つまり、デバイス自体がシーケンスを生成します。これが他のLogitechデバイスと異なることは意味がありません。

このシーケンスがどのように「固定」されているかはわかりません。おそらく、このデバイス用に特別にLogitechツールを使用して変更できます。簡単ではありません。そのようなツール(おそらくWindows用)を見つけて、Windowsで送受信するUSB​​コマンドをUSBスニファーとして記録し、Linuxでそれを模倣するための小さなプログラムを書く必要があります。これの利点は、オープンソースにすることでデバイスを所有している他の人も使用できるため、誰かがすでに使用している可能性があることです(知っているには、インターネット検索に時間を費やしてください)。

別のオプションは、Xレベルでこの特定のシーケンスをキャプチャし(WMなどを使用してxbindkeys)、自分のイベントなどをここに添付することです。もちろん、これはキーボードでも同じシーケンスを検出します。

3番目のオプションは、入力レイヤーレベルでシーケンスを検出することです。これを行うには、デバイスを新しい入力層ソースとして使用し、それらを「キャッチ」して特定のキーシーケンスを/dev/input/eventX変換し、他のすべてを渡すCプログラムを書くことができる必要があります。uinput

4番目のオプションはおそらくhwdb一種の翻訳を実行することですが、私が知っている限り、シーケンスを翻訳することはありません(しかし、まだ詳しくは見ていません)。

おすすめ記事