Logicoolマウスのボタンにショートカットキーを割り当て、Ubuntu20でも使えるようにする


環境

Ubuntu20.04.2 LTS

背景

 LogicoolからMX ERGO MXTB1sのような複数のボタンを持つマウスが発売されており、ボタンごとに機能(例えば、戻るや進む)を割り当てることができる。

私の環境では、戻るや進むによってページを見失いたくないため、Google Chromeの拡張であるLink Blankerをinstallして、クリックすると別タブで開くようにしている。
そこで、快適にブラウザを使うために、
・ 開いている次のタブに移動する(ショートカットキー: Ctrl+Tab)
・ 開いている前のタブに移動する(ショートカットキー: Ctrl+Shift+Tab)
・ 現在のタブを閉じる(ショートカットキー: Ctrl+W)
・ 閉じたタブを再度開く(ショートカットキー: Ctrl+Shift+T)
の4つの機能をマウスのボタンに割り当てたい。

ボタンの割当は、WindowsやMacの場合、Logicool Optionsというソフトをダウンロードすることで、簡単に各ボタンに機能を割り当てることができる。ウィンドウの最小化等も割り当てが可能になっている。

しかし、Ubuntu20.04.2では、Logicool Optionsに対応しておらず、代わりにSolaarなるものがあるが、キー割り当て等の機能は見当たらない。

目的

Ubuntu20.04.2で「開いている次のタブに移動する(ショートカットキー: Ctrl+Tab)」等をマウスのボタンで実行できるようにする

方法

一言でいうと、
ショートカットキーをxdotoolで実行する形でxbindkeysの設定ファイル~/.xbindkeysrcに記載する。

install

$ sudo apt-get install -y xdotool xbindkeys

まず、マウスのボタン番号を調べる。

$ xev | grep button

を実行すると

のようなポップアップが表示されるので、その上でマウスのボタンを押す。
ボタンを押すと、ボタンの番号が表示される。下記の場合だとはボタンの番号は9になっている。

state 0x0, button 9, same_screen YES

これをxbindkeysの設定ファイル~/.xbindkeysrcに書き込む。

はじめに設定ファイルを作成

$ xbindkeys --defaults > ~/.xbindkeysrc

vimで~/.xbindkeysrcを開く、

$ vim ~/.xbindkeysrc

ショートカットキーと割り当てたいボタンの番号を末尾に記載する

書き方は

"xdotool key ショートカットキー"
  b:ボタンの番号

のような形式。

例えば、

~/.xbindkeysrc
"xdotool key ctrl+Tab"
  b:9
"xdotool key ctrl+Shift+Tab"
  b:8
"xdotool key ctrl+w"
  b:6
"xdotool key ctrl+Shift+t"
  b:7

設定したら一応プロセスを削除したあとに、再読み込みする。

$ killall xbindkeys
$ xbindkeys

これで、Ubuntu20.04.2でもマウスのボタンからショートカットキーを実行できる

参考
[linux]マウスボタンにキーボードのキーを割り当てる
xbindkeys + xdotoolを使い無変換キーを押すとAlt+Tabを実行
xdotool コマンド全26実例