Windows で Natural Scrolling
Windows で natural scrolling を実現する方法はいろいろあるようですが、私は AutoHotKey で以下のようなスクリプトを書いて実現していました。
WheelUp:: Send {WheelDown} Return WheelDown:: Send {WheelUp} Return
これで最近までは特に問題なく使用できていたのですが、最近利用し始めた Synergy との組み合わせで困ったことになりました。
私は Ubuntu を Synergy のサーバ、Windows を Synergy のクライアントにして利用しています。
つまり、Ubuntu のマシンにつながっているキーボードやマウスを使って Windows マシンの操作ができるようにしています。
そして Ubuntu では Ubuntu Tweak を使って natural scrolling になるようにしています。
すると、Ubuntu(Synergy サーバ)がマウスホイールのイベントを Windows(Synergy クライアント)へ送信するときにすでに Up/Down が逆転しているものを、Windows 側では AutoHotKey が拾ってさらに逆にしてしまうので結局元に戻ってしまっていたのでした。
AutoHotKey による Up/Down の逆転を無効にすると、Synergy 経由での操作は解決するのですが、Windows マシンに物理的に接続されているマウスを使用しての操作は natural scrolling ではなくなってしまいます。
これを解決するには、Windows マシンに物理的に接続されているマウスからのイベントだけ Up/Down を逆転するようにしなければなりません。
その解決方法を見つけました。レジストリをいじる必要があります。
以下、設定手順です。
- Windows マシンに物理的に接続されているマウスの ID を調べる
- コントロールパネルを開く
- [マウス] を開く
- [ハードウェア] タブを開く
- [デバイス] の一覧の中から、変更対象とするマウスを選択する
- [プロパティ] ボタンを押す
- [詳細] タブを開く
- ドロップダウンリストから [ハードウェア ID] を選択する
- その HID\VID_xxxx&PID_xxxx という文字列をメモしておく
- レジストリエディタでレジストリを書き換える
これで AutoHotKey スクリプトを動かさなくてもマウスホイールが反転するはずで、しかもその設定したマウスのイベントしか反転させないので Synergy 経由の時はサーバ側で反転されたイベントがそのまま届くことになるので Synergy 経由でも、直接操作でも、どちらの場合でもうまく動くようになるはずです。
マイクロソフト ブルートラック 有線 マウス Comfort Mouse 6000 S7J-00014
- 出版社/メーカー: マイクロソフト
- 発売日: 2012/10/12
- メディア: Personal Computers
- 購入: 1人 クリック: 5回
- この商品を含むブログを見る