作業場のメモ

家電などの設定記録や修理記録などの雑記帳

AutoHotkeyを使いタブブラウザのタブをホイール操作で切り替える

私はタブブラウザのタブを大量に開きマウスホイールでタブをくるくる切り替えたい派の人間です。

しかしFirefoxChromeなどのブラウザ側が対応していません。

その昔はかざぐるマウスを使っていましたがいつの頃からか使えなくなりました。

アドオンはブラウザのバージョンアップによって使えなくなったり、できれば余計なアドオンを入れたくない派の人もいます。

Firefoxはconfig弄ればできるようですが、バージョンアップ等で初期値に戻されそうな内部設定は出来るだけ触りたくない、それにChromeでもホイールでタブくるくるしたい。

その結果、現在使用しているのがAutoHotkeyというスクリプトで任意のホットキーexeファイルを作成するソフトを使った方法です。

 

手っ取り早く試してみたい方はこちらのexeファイルをお試しください。

https://www.dropbox.com/s/26t4j6ivhjhj1fn/tab_wheel2.zip?dl=0

 

こちらのexeはシンプルさを追求したため終了するにはタスクマネージャーでKILLするかPCを再起動する必要がありますのでご注意下さい。(適当)

 

よくわからん個人サイトのexeファイルなんて実行出来るかという方、至極真っ当なご意見です、下記スクリプトを参照しご自分でexeにコンバート下さい。

 

やり方

各ブラウザにはキーボードでタブを切り替えるためのショートカットキー(Ctrl+Pageup、PageDownなど)が設定されています。

そこで現在アクティブになっている指定したブラウザの特定のエリアでホイール操作を行うという条件に対し、Ctrl+Pageup or PageDownのキーを割り当てるという荒業を用いたのが以下のスクリプトです。

 

#NoTrayIcon

;;hotkeyinterval
#HotkeyInterval 500
#MaxHotkeysPerInterval 100

;; Wheel Scroll Tabs for Firefox

#IfWinActive ahk_class MozillaWindowClass
 ~$WheelDown:: 
 ~$WheelUp:: 
    MouseGetPos,, yaxis 
    IfGreater,yaxis,40, Return 
    IfEqual,A_ThisHotkey,~$WheelDown, Send,^{PgDn} 
                                 Else Send,^{PgUp} 
Return 


;; Wheel Scroll Tabs for Google Chrome 

#IfWinActive ahk_class Chrome_WidgetWin_1
 ~$WheelDown:: 
 ~$WheelUp:: 
    MouseGetPos,, yaxis 
    IfGreater,yaxis,40, Return 
    IfEqual,A_ThisHotkey,~$WheelDown, Send,^{PgDn} 
                                 Else Send,^{PgUp} 
Return 

 

このスクリプトFirefoxChromeのウィンドウがアクティブであり、ホイール操作をしたときのマウスポインタの位置がアドレスバーよりも上(40という数値がだいたいタブとアドレスバーの境界)にあるとき、Ctrl+Pageup or PageDownを入力するホットキーです。

この書き方だとマウスポインタがタブよりも更に上、ブラウザウインドウの外にあっても動作しますが、それはそれで便利なためそのままとしています。

hotkeyintervalは高速でホイールするとAutoHotkeyのソフトが処理落ちするため設けたものです。

 

メリット・デメリット

このソフトのメリットは一度exeを作ってしまえば、AutoHotkeyをインストールしていないパソコンでも使える(AutoHotkeyはあくまでスクリプトをexeにコンバートするソフトである)という点と、ahk_classの名前を変えることでショートカットキーが使えるソフトであればなんでも対応できるという点です。

 

デメリットとしてはタブくるくるのためだけに存在するソフトが常に裏で常駐する必要があるということですが、メモリ消費が2MB程度であること、なにより利便性からこの方法を取りました。

 

スタートアップ

あとは適当な場所に保存して以下のスタートアップにショートカットを入れておけば完成です。

C:Users\(ユーザー名)\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup