rutoの日記: LinuxでMX Airはどう見えるか
今までOrbit Optical使ってたんだけど、ボタンがへたってきたのでポインティングデバイスを買い替えることにした。
またOrbit Optical買ってもいいんだけど、もうちょっと冒険してみようと思って、空中マウスの一種であるMX Airを買ってみた(腕のねじれないデバイスが欲しかった)。
で、繋いでみたところ、専用ドライバの無いLinuxでもある程度は使えた。以下詳細。
- デスク上での移動
→ 通常のマウスの動き - 左右ボタン
→ 左右ボタン - 空中での移動
→ 通常のマウスの動き - ホイールをゆっくり撫でる
→ ホイールイベント - ホイールをすばやく動かして話す
→ 連続したホイールイベント(手を離した後も発生)。音もマウスからでる。 - ホイール上の上下ボタン
→ ホイールイベント(オートリピート有り) - BACKボタン
→ サイドボタン(input.hで言うところのBTN_SIDE) - BACKボタンを2秒以上押す
→ 空中でのカーソル移動停止 - SELボタン
→ 左クリック(BTN_LEFT) - 再生/一時停止ボタン
→ 出力無し(ただし、押しながらジェスチャをすると本体から音は出る)(追記: 別デバイスファイルで、クリック時に再生/一次停止(KEY_PLAYPAUSE)イベントを出力、ジェスチャで次の曲/前の曲(KEY_NEXTSONG/KEY_PREVIOUSSONG)イベントを出力。) - VOLボタン
→ 出力無し(ただし、押しながらジェスチャをすると本体から音は出る)(追記: 別デバイスファイルで、クリック時にミュート(KEY_MUTE)イベントを出力、ジェスチャで音量調節(KEY_VOLUMEDOWN/KEY_VOLUMEUP)イベントを出力)
SELが左ボタンと同じイベントなのと、再生/一時停止ボタンやVOLボタンが認識されてないのが痛い。それ以外はまぁまぁ。
さらに自作ツールでevdevを調べてみたところ、以下のイベントを発生させると宣言している。
Event type 0x00 (Sync Events)
Report Config
Event type 0x01 (Keys or Buttons)
Mouse Button Left Mouse Button Right Mouse Button Middle Mouse Button Side Mouse Button Extra Mouse Button Forward Mouse Button Back Mouse Button Task Unknown 0x118 Unknown 0x119 Unknown 0x11a Unknown 0x11b Unknown 0x11c Unknown 0x11d Unknown 0x11e Unknown 0x11f
Event type 0x02 (Relative Axes)
X Y Horizontal Wheel Wheel
以下追記
音量調節ボタンなどは別のデバイスファイルに割り当てられる。それらは以下のイベントを出力すると宣言している。
Event type 0x00 (Sync Events)
Report Config
Event type 0x01 (Keys or Buttons)
Mute Volume Down Volume Up Pause Stop Props Undo Copy Paste Find Cut Help Calc Sleep File WWW Mail Bookmarks Back Forward Eject CD Next Song Play/Pause Previous Song Stop CD Record Rewind Config Homepage Refresh Scroll UP Scroll DOWN Unknown 0xb5 Unknown 0xb6 Play Fast Forward Bass Boost Print Unknown 0xe7 Unknown 0xe8 Unknown 0xe9 Unknown 0xea Unknown 0xeb Button 0 Program Radio Channel Up Channel Down
Event type 0x02 (Relative Axes)
Horizontal Wheel
Event type 0x03 (Absolute Axes)
Volume value 0 minimum 1 maximum 652 fuzz 0 flat 0
同梱されているWindows用のユーティリティー(SetPoint)で設定した設定はハードウェアに保存されるわけではないらしく、Linuxでは有効にならない。ただ、前述のプログラムの出力を見ると、キーのカスタマイズはソフトウェアによる変換ではなく、ハードが直接別のイベントを出力しているのだと予想できる。おそらく、なんらかのコマンドを送るとハードウェアが別のイベントを送信するようになるのではないかと思う。
LinuxでMX Airはどう見えるか More ログイン