Linuxでマウスのクリックボタンを変更| xinput set-button-map

スポンサーリンク

はじめに

今までキーボードの腱鞘炎対策は色々してきて、自分の手にフィットするキーボードを使い始めてから全く問題がなかったんだが、マウスについては全く無頓着で、右手右腕が腱鞘炎になってしまった。

トラックボールがいいぞって色々な人からオススメされて結構高いけど買ってみた。ヨドバシに行って一番手にフィットするやつを選んだ。値段は6000ちょいだったかな。色々ファンクションキーがついていて割当られるところも悪くないのだが、ubunt上での使用を考えているので少し面倒。忘れないように設定方法をメモしておく。

 

ちまみにだけど、元々はlogicoolのマウスを使っていたんだけど、これはこれで中々オススメ。

バイスの特定

トラックボールのデバイスidを特定していく。

$ xinput list

f:id:shangtian:20220208185959p:plain

これよりデバイスのidがid=9であることが分かる。

トラックボールのボタン配列を調べる

先程調べたデバイスのidを指定して、以下のコマンドを実行する。
この時知りたいボタンを押した状態で実行すると、押しているボタンはdown表示になって
現れるので、ボタンとボタンのidの対応関係がわかる。

xinput query-state 12 

f:id:shangtian:20220208190403p:plain

ちなみにDEFT proのボタンの対応関係は以下の通り

id key
1 左クリック
2 ホイール押し込み
3 右クリック
4 ホイール前
5 ホイール後
6 不明
7 不明
8 戻る(>)
9 進む(<)
10 Fn1
11 Fn2
12 Fn3

左クリックをFn1キーに割当

DEFT proの左クリックは親指で押す設計になっていて、スマホの使いすぎのせいか、結構痛いんので左クリックの位置を変更してみる。まずは現在のマッピングを表示してみよう。デバイスのidは9なので、

$ xinput get-button-map 9

Fn1キーが10番、左クリックが1番であることが分かっているので、10から1へ変更すればFn1が左クリックとして機能してくれそう。以下のコマンドで設定しみると、確かにFnが左クリックとして働いている。

$ xinput set-button-map 9 1 2 3 4 5 6 7 8 9 1 11 12

f:id:shangtian:20220208205844p:plain

設定を固定する

xinput set-button-map コマンドでボタンの割当を変更しても、再起動時に設定がリセットされてしまうので、起動時に設定を自動で再度実施してもらう

$ echo "xinput set-button-map 9 1 2 3 4 5 6 7 8 9 1 11 12" >> ~/.xsessionrc

参考文献

全てのマウスボタンを動作させる - ArchWiki

Linuxでマウス/トラックボールのボタン割当て変更 - がとらぼ

LinuxのX Window Systemでマウスボタンの割り当てを変更する - kakurasan

startup - Making xinput change permenant - Ask Ubuntu