AutoHotkey: ホイール・スクロールを加速

ロジクールのマウス・ユーティリティのSetPointにはホイールによるスクロールを加速するオプションが無い(モデルによって違うのかもしれない)。加速だけするソフトウェアというのもあまりなく、いくつか見つけたものは常用しているソフトウェアと干渉したりFirefoxでうまく動かなかったりしたので、単純なAutoHotkeyスクリプトを書いて誤魔化してみた。

WheelUp::
WheelDown::
  wheeltype := A_ThisHotkey

  if (wheeltype <> A_PriorHotkey || A_TimeSincePriorHotkey > 250) {
    wheelcount = 1
  } else if (wheelcount < 8 * 5) {
    wheelcount++
  }

  count := (wheelcount // 8 * 3) + 1
  ; ToolTip, %count%`, %wheelcount%
  MouseClick, %wheeltype%, , , %count%

  return

最初はユーティリティ等で設定している行数でスクロールし、ホイールを250ms以内に回し続けると段々と4倍→7倍→10倍→13倍→16倍(最大)と加速していく。ホイールを8回回すごとに加速が成されるので、普通にたらたら回した場合は設定行数でスクロールすると思う。

最初はホイールを回した回数=スクロールする行数という形で書いていたが、それだと普通にゆっくりとスクロールさせるのが難しくなってしまったので、段階的に加速していくようにした。AutoPagerizeなページの時など若干スクロールする時に負荷がかかる場合は意図したように動かないのをどうにかしたい。


そういえば(g)Vimでは<A-Enter>にマッピングすることができなくて、FuzzyFinderから<A-Enter>で新しいタブで開くことができなかったのもAutoHotkeyで誤魔化した。

; Redirect Alt + Enter => Ctrl + L for gVim
!Enter::
  WinGet, process_name, ProcessName, A

  if (InStr(process_name, "gvim.exe") > 0) {
    Send, ^L
  } else {
    Send, !{Enter}
  }

  return

Firefoxと挙動を合わせたかっただけ。Vimを使い始めて20種類くらいから6種類に減ったAutoHotkeyによるキー割り当てが、徐々に増えて12種類まで戻ってしまった……。