Macで(Windows風に)アプリをキーボードで切り替えるJXAを書いた
したいこと
Windowsでは以下の操作が簡単にできますがデフォルトのMacでは実現できません。
- Win+0~9 キーで数字の対応するタスクバー(MacでいうDock)の位置のアプリの起動/切り替え
- Win+↑でアプリの画面最大化
- Win+←→ でアプリを画面の右(左)半分にフィットさせる
Win+←→キーなどは、shiftltなどのアプリを入れることでも再現することができますが、 それではDockをキーボードで簡単に操作することはできません。 また、SplitViewを使う手もありますが、他のアプリとの切り替えがめんどうなのであれはダメです。 以上の操作を実行するAppleScriptを書いてキーボードショートカットに割り当てて爆速開発環境にしたいわけです。
具体的には、
- Ctrl + 0~9キーで対応するDockの位置のアプリを起動/切り替え
- Ctrl + ↑キーで現在のアプリの画面を最大化する
- Ctrl + ←→キーで現在のアプリを左右に寄せる
- Ctrl + ↓ キーで隣のアプリと切り替え
- Ctrl + _ キーでiTunesと切り替え
の操作ができるようにしたいわけです。
手順
$brew cask install karabiner
で、キーバインドのために Karabiner を入れる。$brew install cliclick
で、shellからクリック操作をエミュレートできるcliclickを入れる。(/usr/local/bin/cliclick
にcliclickが配置されているようにする)- Karabinerを開き、private.xml(キーバインド割当設定)を生成する
- gist.github.com をprivate.xmlに書く。
- gist.github.com を
~/.mv_windows.js
に書く。 - Karabinerで先程生成したキーバインドを設定する。
- うまく動作しない場合はKarabinerのアクセシビリティが正しいかを確認する。
- キーバインド完成!!
感想
初めてAppleScriptを書いてみようとして文法がアレだったのでJavaScriptで書きました。 JXAの日本語情報(特にDock周り)がとても少なかったのでなかなかめんどかったです。