iMWheel
関連記事
imwheel はマウスホイールの挙動をプログラムごとに調整するツールです。マウスホイールの入力をキーボードの入力にマッピングしたり、マウスホイールの速度を上げたりすることができます。修飾キーもサポートしています。
目次
インストール
imwheel は AUR の imwheel パッケージや sourceforge のページ から直接インストールできます。
設定
公式の HTML ドキュメント (manpage) が公式ウェブサイトに存在します。
imwheel はウィンドウクラスの文字列が正規表現でマッチするかどうかで調整を適用するウィンドウを決定します。
ウィンドウクラスの文字列を取得
クラスの文字列を取得するには xprop を実行してください。ウィンドウをクリックするとプログラムが終了します。
$ xprop WM_CLASS | grep -o '"[^"]*"' | head -n 1
例えばドキュメントビューアの zathura なら、以下のように返ってきます:
"zathura"
設定ファイルの編集
~/.imwheelrc
を作成・編集してください。マウスホイールの挙動を変更したいプログラムごとに設定ファイルに設定を追加します。以下の例ではドキュメントビューア zathura のマウスホイール速度を向上させます:
"^zathura$" None, Up, Button4, 4 None, Down, Button5, 4
(".*" を使用して) 全てのプログラムに設定を適用すると一部のプログラムで問題が起こる可能性があります。imwheel はユーザーによる実際の操作に対して複数のスクロールアクションをエミュレートするので、マウスホイールによるアクションが設定されているプログラムでは実際に操作した回数よりも多くのアクションが実行されます。
例えば、ターミナルエミュレータで履歴からスクロールでコマンドを選ぼうとしたとき、直前のコマンドが選べなくなる可能性があります。
imwheel はマウスボタンの修飾キーを取得してプログラムに渡すので明示的に設定が必要です。例えば以下の設定の場合、Left Control
を押しながらマウスホイールを動かしてズームするときはスクロール量を倍加しません:
# Speed up scrolling for chromium and pass unchanged for zoom "^chromium$" None, Up, Button4, 4 None, Down, Button5, 4 Shift_L, Up, Shift_L|Button4, 4 Shift_L, Down, Shift_L|Button5, 4 Control_L, Up, Control_L|Button4 Control_L, Down, Control_L|Button5
imwheel の実行
imwheel は以下のように実行します:
$ imwheel
プログラムは PID を出力してバックグラウンドで実行します。スタートアップスクリプトで imwheel を実行すると良いでしょう。
サービスを使用して起動時に IMWheel を実行する
systemd のサービスとして起動時に IMWheel を実行します。
例:
~/.config/systemd/user/imwheel.service
[Unit] Description=IMWheel Wants=display-manager.service After=display-manager.service [Service] Type=simple Environment=XAUTHORITY=%h/.Xauthority ExecStart=/usr/bin/imwheel -d ExecStop=/usr/bin/pkill imwheel RemainAfterExit=yes [Install] WantedBy=graphical-session.target
上記を作った後:
systemctl --user daemon-reload systemctl --user enable --now imwheel journalctl --user --unit imwheel
起動時にシェルスクリプトを使用して IMWheel を実行する
また、/etc/profile.d に startup.sh スクリプトを作成することもできます。
#!/bin/sh imwheel
その後、再起動時にファイルが自動的に読み込まれて実行されます。スクリプトを /etc/profile.d に置く前に、必ず手動でテストしてください。
トラブルシューティング
戻る/進むボタンが機能しない
IMWheel を使用していると他のマウス入力 (戻る/進むボタンなど) が壊れる場合があります。これを防ぐには、-bオプションを使用します。
imwheel -b 45