/home/amgsk

ブラウザ以外でもスクロールズームしたい

· amgsk

Notion や Slack のアプリ版でも、ブラウザのようにCtrl+Scrollでズームイン or ズームアウトするための方法。
Electron 等のアプリではズームするには Ctrl+(+|-)がデフォルトのキーバインドになっていて、キーボードで 2 キー同時押しの必要があるし、何よりスムーズさに欠ける。

スクロールという行為に対するキーバインドのツールとしてimwheelxkeybindingsなどが存在するが、imwheelは以下のような指定のアプリケーションに対してのみ作用するように設定が可能。

~/.imwheelrc に設定ファイルを作成する。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
"(slack|notion|DBeaver|postman)"
    Control_L, Up, Control_L|equal
    Control_L, Down, Control_L|minus

"(kitty)"
    Control_L, Up, Control_L|Shift_L|equal
    Control_L, Down, Control_L|Shift_L|minus
    None, Up,   Button4, 3
    None, Down, Button5, 3

".*"
    Shift_L,   Up,   Shift_L|Button4
    Shift_L,   Down, Shift_L|Button5
    Control_L, Up, Control_L|Button4
    Control_L, Down, Control_L|Button5
    Shift_L|Control_L, Up, Control_L|Shift_L|Button4
    Shift_L|Control_L, Down, Control_L|Shift_L|Button5
    None, Up,   Button4, 1
    None, Down, Button5, 1

条件指定に使用するのはWM_CLASSで、以下のようにして取得可能。

1
xprop WM_CLASS | grep -o '"[^"]*"' | head -n 1

i3wm からの自動起動は-k(kill running process)付きで以下のようにした。
こうしておけばi3wm restartに合わせてプロセスを再起動できる。

1
exec_always --no-startup-id imwheel -k -b "45"

勿論 i3wm 以外の WM でも使用できる。 その場合はimwheel -k -b "45"だけをターミナルから実行すれば良い。

お試しあれ。