iMWheel

提供: ArchWiki
2022年2月19日 (土) 14:31時点におけるKgx (トーク | 投稿記録)による版 (→‎トラブルシューティング: 対象ウィンドウにカーソルを合わせてもスクロール速度に変化がないを翻訳して追加)
ナビゲーションに移動 検索に移動

関連記事

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

起動時にシェルスクリプトを使用して IMWheel を実行する

また、/etc/profile.d に startup.sh スクリプトを作成することもできます。

#!/bin/sh

imwheel

その後、再起動時にファイルが自動的に読み込まれて実行されます。スクリプトを /etc/profile.d に置く前に、必ず手動でテストしてください。

トラブルシューティング

戻る/進むボタンが機能しない

IMWheel を使用していると他のマウス入力 (戻る/進むボタンなど) が壊れる場合があります。これを防ぐには、-bオプションを使用します。

 imwheel -b 45

こちらを参照

対象ウィンドウにカーソルを合わせてもスクロール速度に変化がない

IMWheel がウィンドウのスクロール速度に影響を与えるためには、そのウィンドウにフォーカスが当たっている必要があります。フォーカスされていないウィンドウのスクロール速度は変更されません。