iMWheel

提供: ArchWiki
2021年3月26日 (金) 12:49時点におけるKgx (トーク | 投稿記録)による版 (→‎設定: サービスを使用して起動時に IMWheel を実行するを翻訳して追加)
ナビゲーションに移動 検索に移動

関連記事

imwheel はマウスホイールの挙動をプログラムごとに調整するツールです。マウスホイールの入力をキーボードの入力にマッピングしたり、マウスホイールの速度を上げたりすることができます。修飾キーもサポートしています。

インストール

imwheel は AURimwheel パッケージや 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