AutoHotKey v2 で 令和の ThumbSense

Pocket

本記事は、 Windows Advent Calendar 2024 18日目 の記事だ。
思いっきり遅刻してしまって申し訳ない。

突然だが、 ThumbSense を覚えているだろうか?
2002年に SONY が発表した、ノートPCのタッチパッドを用いて、手をホームポジションから動かさずに、マウス操作や様々なショートカットを起動するユーティリティツールだ。
(本家, 窓の杜の紹介記事)

当時はその革新的な操作体験で大いに注目されていたと記憶している 1 し、 ThumbRemap や NewtonPad などのインスパイアされたツールがいくつも登場していた。

しかし、当時のこれらの実装は Synaptic または ALPS 製のタッチパッドのドライバーをフックして実装されていた。このため、令和となった現代、 Windows 10 や Windows 11 が入っているような PC では動かない。

現在流通しているノートPCのタッチパッドは、Windows 8.1 で追加され Windows 10 で強化された、 USB 等の HID プロファイルに基づいた実装になっている。

先日の記事 の通り、 RawInput で HID の情報を拾えばかなり細かくタッチパッドの状況がとれる。
AutoHotKey 使えば、 ThumbSense のような実装もそこまで難しくないのでは…?

…と思って AutoHotKey v2 で実装してみたのが、本日の記事になる。

ThumbReSense のインストール

GitHub の advanceboy/ThumbReSense-ahk のリリースページ から、最新の exe ファイルをダウンロードして、起動するだけ。

SmartScreen の警告が出る場合は、 exe ファイルを右クリックして、セキュリティのブロック (ZoneId) を解除しよう。

また、 AutoHotKey v2 用のソースもリポジトリにあるので、こちらをダウンロードしてインストール済みの AutoHotKey v2 で起動しても OK だ。

常用するなら、 Windows のスタートアップフォルダにでも突っ込んでおけば PC 起動時に自動で起動するようになる。

AutoHotKey の制限として、通常タスクマネージャなどの管理者特権で動くソフト上では機能しないのだが、 ThumbReSense の実行ファイル (またはスクリプトを起動する AutoHotKey) 自体を管理者権限として実行すればこの制限を回避できる。
自動起動させたい場合、タスクスケジューラを使って、ログオン時に管理者権限として起動する設定にしておくと良いだろう。

残念ながら、 Windows Sandbox やリモートデスクトップでは、ホットキーを機能させる方法がなさそうだ。

使い方

起動すると、タッチパッドで操作したマウスカーソルに慣性がつくようになる。
また、タッチパッドに触れている状態だと、各キーが次のようにリマップされる。

Default Scroll Key:

  • l

Default Remap:

  • j : Mouse L Button
  • k : Mouse R Button
  • h : Mouse M Button
  • f : Mouse L Button
  • d : Mouse R Button
  • g : Mouse M Button

Default Hotkey:

  • u : Double Click
  • r : Double Click
  • ; : Browser Back
  • : : Browser Forward
  • o : WheelUp
  • . : WheelDown
  • XButton1 : Home
  • e : Home
  • w : Ctrl+Home
  • XButton2 : End
  • c : End
  • x : Ctrl+End
  • z : Alt+Tab
  • Ctrl+q : アプリを終了する
  • F2, F3 : 設定サンプルのメッセージボックス

キーのリマップやホットキーを組み替えるカスタマイズをしたい場合は、 ThumbReSense.ini 書き換えて、 .exe や .ah2 スクリプトと同じフォルダに設置すれば OK だ。

ゲーマーの皆様なら、 W A S D キーに方向キーを割り当てたり、
Vimmer の皆様なら、 h, l, j, k キーに方向キーを割り当てたりすると良いかもしれない。

既知の不具合

マウスボタンにリマップした状態で、タッチパネルに触れたり離したりを素早く繰り返すと、一時的にタッチパネルでカーソルが動かなくなる。
これは、 AutoHotKey 側の問題なので本家側の修正を待つしかない。

数秒タッチパネルに触れたままにしておくとすぐ復活するので、それで回避して欲しい。

おわりに

コードこそ 1000行 前後だが、大半は構造体のパースであり、実質的なコードは割とシンプルながら、期待していた機能が実現できている。

当ブログで AutoHotKey を紹介するのは12年ぶりだが、 AutoHotKey v1, AutoHotKey L から AutoHotKey v2 となり、文法が洗練されたり vscode で補完やデバッグができるようになったりで、各段に書きやすくなったことには驚いたものだ。


  1. 筆者の偏った主観に基づく 

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください