マウスの設定用のメーカー製アプリは、Windows用やMac用があっても、Linux用がない場合が多いです。
私が使用しているトラックボールマウスもメーカー製のアプリがなかったため、調べて設定アプリなしで設定できたので、その方法を紹介したいと思います。
せっかくマウスにボタンがいくつもあるのに設定できないなんて、もったいないですよね。
初心者でも安心して設定できるように、コマンド操作のキャプチャ画像も掲載しています。
Linuxユーザーで、マウスボタンの割り当てを設定したいけど方法がわからないという方のお役に立てたら幸いです。
今回設定したマウスと設定の目的について
今回設定したマウスは、Kensington Orbit Fusion ワイヤレストラックボールK72362JPです。
これはトラックボールマウスというもので、トラックボールの右側に右クリックのボタンがあり、反対の左側には左上から「進む」「戻る」。
グレーのボタンが「中クリック」で、その下に大きな「左クリック」のボタンがあります。
このマウス、私の手の大きさなのか、置き方が悪いのか、時々「右クリック」がうまく押せない時があります。
そして、私は「中ボタン」を普段まったく使っていません。
そこで、
「中クリック」のボタンに「右クリック」の機能を割り当てる」
ことを目的に、これから紹介する方法で設定しました。
Linuxでマウスボタンに機能を割り当てる設定方法
今回紹介するLinuxでマウスボタンに機能を割り当てる設定は、
1.システムに認識されているマウスの名称とID番号を確認(xinput list)
2.1.で確認した情報をもとに、ボタンを押すとどのボタン番号が反応するのか確認(xinput query-state)
3.2.で確認した情報をもとに、ボタンの割り当てを変更(xinput seet-button-map)
4.3.のコマンドを保存して起動時に自動的に読み込むようにする
という手順で行います。
1. システムに認識されているマウスの名称とID番号を確認(xinput list)
マウスの割り当てを変更するには、システム(X Window System)にマウスがどのように認識されているかを確認する必要があります。
確認方法は以下の通り。
ターミナルを起動して、以下のコマンドを実行
xinput list
上記のコマンドを実行すると、以下のように表示される
表示の中の「Virtual core pointer」がマウスのことなので、その下の行から自分の使用しているマウスの名称を探し、そこに表示されている(デスクトップ環境で認識されている)名称と、ID番号を確認する
今回の場合は、以下の通り
名称:Kensington Orbit Fusion Wireless Trackball
ID番号:9(id=9の部分で判別)
上の画像を見ると、同じマウスの名称がID番号10でも認識されています。
同じマウスが複数認識されていることで、この後の設定方法が変わりますので、具体的な違いは次の章で説明します。
2. 1.の情報をもとに、ボタンを押すとどのボタン番号が反応するのか確認(xinput query-state)
それぞれのマウスボタンには、以下の通りボタン番号(デバイスID)が割り当てられています。
1:左クリック
2:中クリック(ホイール押し込み)
3:右クリック
4:ホイール前
5:ホイール後
6:不明
7:不明
8:戻る
9:進む
10:Fn1
11:Fn2
12:Fn3
これがわかっていれば設定は可能なのですが、念のため実際にボタンがどのように設定されているか確認しておきましょう。
確認するのは、
・割り当てを変更する予定の「中クリック」のボタン
・もともとの「右クリック」のボタン
の2つです。
確認方法はマウスボタンを押しながらxinput query-stateコマンドを実行するのですが、ちょっとテクニックが必要なので、「中クリック」→「右クリック」の順に具体的に紹介します。
先ほど起動したターミナルの続きに、以下のコマンドを入力
xinput query-state ‘Kensington Orbit Fusion Wireless Trackball(確認したマウスの名称)'
xinput listコマンドで同じマウスの名称が複数表示されている場合、上記のコマンドでは
「同じ名称が複数あるので特定できないのでID番号を使ってください」
というエラー(英語)が表示されて止まってしまいます。
その場合は、最初に確認したID番号を使ってコマンドを実行してください。
今回の場合では、コマンドは以下のようになります。
xinput query-state 9
このため、以降の画像ではコマンドでID番号の「9」で表示されていますが、ID番号はパソコン起動時に変わってしまう可能性があるため、エラーが出ないならマウスの名称で実行しましょう。
その際は、マウスの名称の前後に「’(シングルクォーテーション)」をお忘れなく。
入力したコマンドをマウスでコピー
入力したコマンドを削除
ターミナルの点滅しているカーソルの近くにマウスカーソルを移動させて「中クリック」ボタンを押しっぱなしにする
先ほどコピーしたコマンドがコマンドラインに貼り付けられるので、「中クリック」ボタンをおしっぱなしのまま「Ent」キーを押す
そうすると以下のように表示されるので、ボタン番号の何番に「down」と表示されているか確認
button[2]にdownが表示されているので、「中クリック」ボタンのボタン番号が2だと確認できた
再度、先ほど同じ以下のコマンドを入力
xinput query-state ‘Kensington Orbit Fusion Wireless Trackball(確認したマウスの名称)'
今度は削除せずにそのまま右クリックを押しっぱなしにする
そうすると右クリックのメニューが表示されるので右クリックは押したままで「Esc」キーを押して右クリックのメニューを消し、そのまま「Ent」キーを押す
以下のように表示されるので、ボタン番号の何番に「down」と表示されているか確認
button[3]にdownが表示されているので、右クリックのボタン番号が3だと確認できた
前の章で同じマウスの名称が、私の場合は2つ表示されていました。
上記の手順をID番号10でも行いましたが、反応がなかったので、以降の作業もID番号9で行っています。
3. 2.で確認した情報をもとに、ボタンの割り当てを変更(xinput seet-button-map)
今回の設定は、
「中クリックのボタンに右クリックの機能を割り当てる」
のが目的です。
これまでに調べた情報をもとにより具体的にいうと、
「「中クリック」ボタンに設定されているボタン番号を2から3に変更する」
ということになります。
まずは設定する前に、マウスのボタンマップを確認します。
以下のコマンドを実行
xinput get-button-map 9
そうすると以下の画像の通り表示される
1から12まで順番通りに設定されていることがわかる
ここで表示された1から12までの番号を並び替えることで、割り当てが変更できます。
今回は「ボタン番号を2から3に変更する」ので、番号の並びを
1 3 3 4 5 6 7 8 9 10 11 12
に設定すればいい訳です。
ボタンマップの設定の変更は、以下のコマンドで行います。
xinput set-button-map 9 1 3 3 4 5 6 7 8 9 10 11 12
先ほどのコマンドではgetだった部分がsetになっているので、間違わないように注意しましょう。
これでボタンマップの設定が変更になったはずなので、再度ボタンマップを確認しましょう。
xinput get-button-map 9
すると、以下の画像のように表示され、設定が変更になったことが確認できました。
実際に「中クリック」ボタンを押すと、右クリック時のメニューが表示されたので、設定成功です。
4. 3.のコマンドを保存して起動時に自動的に読み込むようにする
ここまででマウスの設定は完了したのですが、このままだとパソコンの電源を切ると設定が消えてしまいます。
このため、パソコン起動時に毎回設定を反映させなくてはなりません。
設定を反映させるには、「起動時に読み込まれる既存のファイルに追記する」方法が手順が少なく簡単です。
方法は、homeディレクトリにある.profileというログイン時に読み込まれるファイルをテキストエディタで開き、末尾に以下の通り追記して上書き保存するだけです。
# Kensington Orbit Fusion Wireless Trackball button settings
xinput set-button-map 9 1 3 3 4 5 6 7 8 9 10 11 12
#の行はただのコメントなので、自分がわかりやすいように自由に変更して問題ありません。
試しにパソコンを再起動して「中クリック」ボタンを押すと、設定した通り右クリックのメニューが表示されました。
もう「中クリック」ボタンではなく、「右クリック」ボタンですね。
まとめ
今回は、実際に私が行った「Linuxでマウスボタンに機能を割り当てる方法」を紹介しました。
Windowsにはメーカー製のマウスボタンを設定するアプリがあっても、Linux用がないことが多く、せっかくボタンがたくさんあるマウスを持っていても、十分に活用できない場合があります。
Linuxユーザーで、マウスボタンの割り当てを設定したいけど方法がわからないという方のお役に立てたら幸いです。
なお、今回私が設定するにあたり、以下のサイトを参考にさせていただきました。
ありがとうございました。
私の説明がわかりづらかった方は、リンク先の記事を参考にしてみてください。