低精度タッチパッドでもwindows10のジェスチャを使いたい

windows10になってタッチパッドのmacライクな操作がサポートされました。

しかし、多くのパソコンに導入されているであろうsynapticsのタッチパッドはその多くが高精度タッチパッドではありません(脳内調べ)

かくいう私のラップトップvaio pro11も高精度タッチパッドではないです...

sonyあたりが対応してくれるかなと待っていたんですが対応してくれなさそうなので調べてみました。

何かしらすれば有効にできるんじゃないかと思ってたら

できました

なのでまとめておきます。(自己責任で)

やりたいこと

やっていることは単純で、synapticsのタッチパッドの入力はキーボードのコマンドとして処理されていることを利用して、Autohotkeyで制御してやろうというものです。

synapticsのドライバは、windows10対応のWindows 10 PS/2 and SMBus Devices v19.0.19.1を使用しています。(たぶんこれ以外でもできる?)

このとき、デフォルトでは、

ジェスチャ 認識されるキー
三本指swipe up NumpadPgUp
三本指swipe down NumpadPgDn
三本指swipe left Alt+Left
三本指swipe right Alt+Right

という風に認識されています。

つまり、これにあわせてAutohotkeyのマクロを書いてあげれば動くかなと思いました。

さらに本家とは違い柔軟にジェスチャーを定義できます。

しかし、

現実は甘くありません。一部のアプリケーションでしか動きません...

なぜ動かないかというと、アプリケーションごとにジェスチャに対する挙動が定義されていることがあり、それが邪魔しているようです。

ならば、アプリケーションごとの固有の動作を消せばいいわけです

アプリケーションの固有の動作はレジストリに記述されているため簡単にいじれます←

これでアプリケーションごとの固有の動作を削除したら動くようになりました

操作手順

  1. Autohotkeyのインストール
  2. Autohotkeyのマクロの設定
  3. レジストリの削除

Autohotkeyのインストール

省略

Autohotkeyのマクロの設定

前回の記事 admjgptw1357.hatenablog.com

で定義したマクロを使います。

最終的には、

ジェスチャ 操作
三本指swipe up Win+Tab
三本指swipe down Win+D
三本指swipe left 仮想デスクトップ切り替え
三本指swipe right 仮想デスクトップ切り替え

という動作にします。

プログラム

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
#InstallKeybdHook

!Left::
    Sleep 30
    Send ^l
    return

!Right::
    Sleep 30
    Send ^h
    return

NumpadPgUp::
    send #{Tab}
    return

NumpadPgDn::
    send #d
    return

;;前回までで登録したマクロ
^l::
    Send ^#{Right}
    Sleep 50
    WinGetTitle, title, A
    If (title = "")
    {
    Send !{Esc}
    }
    return
^h::
    Send ^#{Left}
    Sleep 50
    WinGetTitle, title, A
    If (title = "")
    {
    Send !{Esc}
    }
    return

はいとても単純ですね。

左右のスワイプを連続して行ったときに面倒なことになったので、Sleep 30をはさんで緩和させています。

これで基本的に動作するようになりました。

レジストリの削除

みんな大好きレジストリです。

言う迄も無いですが、ここを誤っていじると起動しなくなります

システムの復元ポイントを作るなりしてすべて自己責任でお願いします。

レジストリには、三本指swipeの上下と左右で別な箇所で管理されているようです。

スワイプ レジストリ位置
左右 HKEY_LOCAL_MACHINE\SOFTWARE\Synaptics\SynTPEnh\PlugInConfig\TouchPad\AppProfiles
上下 HKEY_LOCAL_MACHINE\SOFTWARE\Synaptics\SynTP\Defaults\AppProfiles

という対応となります。

これらのフォルダの中に、定義ファイルが存在するようなので、フォルダごと消してあげます←

たとえば、Microsoft Outlookなどというフォルダが存在すると思うので、これを右クリックで消すわけです。あまり多く消すのは怖いので操作を実行したいアプリケーションだけ消してあげた方が安全です。

レジストリエディタはwin+Rでファイル名を指定して実行で、regeditと打ち込んで起動してください。

レジストリは削除しなくても変更でもいけるかも知れませんが、めんどくさかったので削除しました。

以上です。

それでは快適なwindows10ライフを