web-dev-qa-db-ja.com

使用されているデバイス/キーコードを特定するにはどうすればよいですか?

LogitechG700マウスのボタンの機能を再割り当てしようとしています。 xinput --listを使用すると、これは2つのデバイスとしてカウントされることがわかります(有線/無線の違いを含めると4つ)。

48 will@will-laptop ~]$xinput --list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Microsoft Natural® Ergonomic Keyboard 4000        id=10   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=15   [slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver                     id=17   [slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver                     id=18   [slave  pointer  (2)]

問題は、ボタンにデフォルト以外の割り当てがあるため、xevは「ボタン12」などを表示せず、ボタンに割り当てられたキーストローク(つまり、KeyPress Ctrl_L、KeyPress "w"、KeyRelease Ctrl_L)を表示するだけです。 、KeyRelease "w")。デバイスが表示されないため、キーの処理方法を再割り当てする方法がわかりません。また、私が知る限り、オンボードメモリプロファイルのハードウェアリセットを行う方法がないため、マウスをリセットして実際に「ボタン7」などを表示することはできません。

Ubuntu13.10を使用しています。

「ホイールを左に傾ける」ボタンを試してみると、xevから得られるものは次のとおりです。

KeyPress event, serial 40, synthetic NO, window 0x4a00001,
root 0x90, subw 0x0, time 13142771, (115,109), root:(2844,1831),
state 0x10, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes: 
XmbLookupString gives 0 bytes: 
XFilterEvent returns: False

KeyPress event, serial 40, synthetic NO, window 0x4a00001,
root 0x90, subw 0x0, time 13142771, (115,109), root:(2844,1831),
state 0x14, keycode 25 (keysym 0x77, w), same_screen YES,
XLookupString gives 1 bytes: (17) ""
XmbLookupString gives 1 bytes: (17) ""
XFilterEvent returns: False

KeyRelease event, serial 40, synthetic NO, window 0x4a00001,
root 0x90, subw 0x0, time 13142935, (115,109), root:(2844,1831),
state 0x14, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes: 
XFilterEvent returns: False

KeyRelease event, serial 40, synthetic NO, window 0x4a00001,
root 0x90, subw 0x0, time 13142935, (115,109), root:(2844,1831),
state 0x10, keycode 25 (keysym 0x77, w), same_screen YES,
XLookupString gives 1 bytes: (77) "w"
XFilterEvent returns: False`
2
William Everett

これをしばらく遊んで読んだ後、G700が実際にマウスのボタンプロファイルを保存していることを発見したので、ボタン12をクリックすると、文字通りCtrl + Wショートカットが送信されました。 WindowsマシンとLogitechsGamingソフトウェアを使用してボタンをデフォルトのステータスに復元すると、xevで「ボタン12」などのレポートが開始されました。

2
William Everett

Logitechの「ユニバーサル」USBワイヤレスプラグを使用してLogitechデバイスをプログラムするアプリケーション solaar もあります。同様の機能があり、プラグをプログラムしてデバイスとペアリングし、デバイス構成の一部を実行します。私の14.04セットアップでは、双方向通信をサポートしています---たとえば、ペアリングされた各デバイスのバッテリー残量をアナウンスします。

0
Frank M