imwheel
投稿日: | |
---|---|
タグ: |
本稿ではX11環境で多ボタンマウスを使用するのに使用するプログラムの一種,imwheelについて紹介する.
はじめに
一般的なマウス
多くのマウスでは,右ボタンと左ボタン,中ボタンがある.コンピュータのよっては中ボタンがないものもあるが,左右のボタンを同時に押すことで,中ボタンとして扱えるものがある.また,中ボタンはホイールになっているものが多く,そうでないノートPCの中にはタッチパネルで同様の操作をできるものがある.
多ボタンマウス
多ボタンマウスと呼ばれるマウスは,一般的なマウスよりも多くのボタンを持つ.imwheelはそのようなボタンやホイールをサポートするためのプログラムである.imwheelは動作するウィンドウとマウスのボタン(またはホイールの方向),修飾キー,入力するキーの組み合わせを結びつけることで,多ボタンマウスを利用可能にする.
imwheelを使用する場合,次の2つの設定が必要である.
- imwheel
- X11
imwheelの設定(imwheelrc)
imwheelの各要素は,次の4つの組み合わせからなる.
- フォーカスされたウィンドウ名
- 修飾キー
- 押したマウスボタンやホイールの向き
- 入力するキー
".*firefox"
None, Thumb1, Control_L|Tab
「フォーカスされたウィンドウ名」を除く3つの要素は,","で繋いで記述する.それゆえ,このテキストではそれぞれ次のように対応される.
- 文字列の末尾が"firefox"のウィンドウ
- 修飾キーなし
- Thumb1
Control_L +Tab
4 | Up |
5 | Down |
6 | Left |
7 | Right |
8 | Thumb1 |
9 | Thumb2 |
10 | ExtBt7 |
11 | ExtBt8 |
「入力するキー」については,同時に入力するキーは"|"で繋ぐことで記述する.
また,1つの「フォーカスされたウィンドウ名」に対して,複数の「修飾キー」と「押したマウスボタンやホイールの向き」,「入力するキー」の組み合わせを記述する.以下に実際に私が使用している設定ファイルの一部を紹介する.
".*firefox"
None, Thumb1, Control_L|Tab
None, Thumb2, Control_L|Shift_R|Tab
".*ファイル・ブラウザ"
None, Left, Control_L|Page_Up
None, Right, Control_L|Page_Down
None, Thumb1, Alt_L|Right
None, Thumb2, Alt_L|Left
".*Dolphin"
None, Left, Control_L|comma
None, Right, Control_L|period
None, Thumb1, Alt_L|Right
None, Thumb2, Alt_L|Left
デスクトップ上の操作
デスクトップ環境やウィンドウマネージャの背景のことをルートウィンドウという.ルートウィンドウの設定を記述したい場合,imwheel起動時に"-r"オプションが必要である.また,「フォーカスされたウィンドウ名」には,"\(root\)"を指定する. 以下にサンプルを示す.
"\(root\)"
None, UP, h
None, DOWN, l
None, Left, Super_R|h
None, Right, Super_R|l
None, Thumb1, h
None, Thumb2, l
X11の設定
多ボタンマウスを使用する場合,X11の次の2種類の設定ファイルを変更が必要かもしれない.
- xorg.conf
- xmodmap
xorg.conf
X11はxorg.confという設定ファイルで基礎的な設定を行う.X11で一般的なマウスにないボタンを認識する場合,設定ファイルに次のような記述が必要である.
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5 6 7"
EndSection
私の環境ではこの設定ファイルで8と9も認識されたが,これは実行環境に依存すると思われる.
xmodmap(ボタン番号)
マウスのボタンは,X11で認識してもユーザが意図したボタンとして認識されない場合がある.特に一般的なマウスにないボタンの場合は,なおさら期待できないだろう.
そのような場合,ボタン番号の割り当て(再割り当て)が必要である.X11では,xmodmapを使って"xmodmap -e"コマンドの引数に次の文字列を与えるか,設定ファイル(.Xmodmap)に次の行追加すれば良い.私の環境では,次のように指定した.
pointer = 1 2 3 4 5 6 7