Crevice 4 でエクスプローラをマウスジェスチャ操作可能に

apps.microsoft.com
私はGoogleChromeマウスジェスチャの拡張機能を導入済で、これが無い生活は考えられないくらいの必須級機能だと感じてます。
ChromeだけでなくWindowsエクスプローラもジェスチャ操作を実現したかったのでCrevice 4 を導入し、ほんの少しだけカスタムしてみました。

デフォルトで起動した場合は以下の機能が使えます。

マウスの右ボタンを押しながら:
 ホイール ↑      : 前のタブへ
 ホイール ↓      : 次のタブへ
 マウスを ↑ に動かす  : ページ先頭へスクロール
 マウスを ↓ に動かす  : ページ末尾へスクロール
 マウスを ← に動かす  : 履歴を戻る
 マウスを → に動かす  : 履歴を進む
 マウスを ↑↓ に動かす  : ページを更新する
 マウスを ↓→ に動かす : タブを閉じる

各ブラウザについて進む・戻る、タブクローズが実現されるだけでもオススメ出来ますが、このままだと以下の問題があるので自分用に少しカスタマイズします。

・既にマウスジェスチャを導入しているChromeと干渉する。

・筆者の要件はエクスプローラアクティブ時、マウス上で一つ親ディレクトリへ という動作。

設定ファイルであるdefault.csxを書き換えた部分だけ記載します。

// Gestures for standard browsers.
var Browser = When(ctx =>
{
    return 
           //gesture for google chromeと干渉するのでコメントアウト
           //ctx.ForegroundWindow.ModuleName == "chrome.exe" ||
           ctx.ForegroundWindow.ModuleName == "firefox.exe" ||
          // Firefox's ModuleName may be differ from normal ones in case waiting for restarting after it's upgrading.
          // In that case, it's name starts with `moz` and has the class name "MozillaWindowClass".
          (ctx.ForegroundWindow.ModuleName.StartsWith("moz") &&
               ctx.ForegroundWindow.ClassName == "MozillaWindowClass") ||
           ctx.ForegroundWindow.ModuleName == "opera.exe" ||
           ctx.ForegroundWindow.ModuleName == "iexplore.exe" ||
           ctx.ForegroundWindow.ModuleName == "msedge.exe" ||
          (ctx.ForegroundWindow.ModuleName == "ApplicationFrameHost.exe" &&
               ctx.PointedWindow.Text == "Microsoft Edge") ||
          (ctx.ForegroundWindow.ModuleName == "explorer.exe" &&
               ctx.PointedWindow.ClassName == "DirectUIHWND");
});

Browser.
On(Keys.RButton).
On(Keys.MoveUp).
Do(ctx =>
{
    //エクスプローラ用に変更
    //SendInput.Multiple().
    //ExtendedKeyDown(Keys.Home).
    //ExtendedKeyUp(Keys.Home).
    //Send(); // Scroll to top
    SendInput.Multiple().
    ExtendedKeyDown(Keys.Menu).
    ExtendedKeyDown(Keys.Up).
    ExtendedKeyUp(Keys.Up).
    ExtendedKeyUp(Keys.Menu).
    Send(); // Go parent folder
});

これでエクスプローラの操作が超快適になりました。
Chrome以外のブラウザを触っている時に上ジェスチャをやってしまうとALT+↑の信号が送られてしまいますが、そんなショートカットキーは無いのでまぁ良いでしょう。そもそも私は基本Chromeしか使いません。


GUIではカスタム不可能なので若干玄人向けのソフトですが、C#未経験の私でも単純操作くらいなら楽にカスタム出来そうです。
アプリ毎に機能を実装出来るので可能性は無限です。別PCへ環境を移す場合はdefault.csxを移動するだけで良いのもGoodですね。