環境
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:ボタンの番号
のような形式。
例えば、
"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実例