AppleScript
主にウィンドウの大きさを変えたりするのにAppleScriptで色々作って、 それをキーボードショートカットで呼び出しています。
ウィンドウを決まった大きさにするだけのアプリは色々ありますが、 細かい大きさの指定(微妙に全画面より小さくする)とか 徐々に縮めたり広げたりするとか、 後外部ディスプレイをつなげた時に適時配置をするとか、ということを 自分の好きな様に設定出来る物は無いので作ってしまえば便利です。 (ホントはSwiftとかで作ってアプリっぽくしたいけども。。。)
AppleScriptはメニューバーから実行できる様にすることも出来ますが、 やはりキーボードでパッと使用出来る方が便利です。
これまでの設定
最初は Spark というHot-key managerを使っていましたが、 BetterTouchTool を本格的に使い始めてこちらにもキーボードショートカットキーの 割当が出来る事からBetterTouchToolに全て移行しました。
それはそれで良いのですが、 今回KarabinerでもAppleScript等を割り当てられることを知り、 Karabinerは設定ファイルがXMLでそのファイルをDropbox & GitHubで管理してたり するので、 色々設定するにはKarabinerの方が都合が良いので Karabinerに移行することに。
Karabinerでの設定方法
Documentが充実してるので見れば分かります。
private.xml Reference Manual - Karabiner - OS X用のソフトウェア: https://pqrs.org/osx/karabiner/xml.html.ja#vkopenurldef
前見た時よりもまた大分充実してる。
簡単に説明すると、
<vkopenurldef>
<name>KeyCode::VK_OPEN_URL_APPLESCRIPT.close</name>
<url type="shell">
<![CDATA[ osascript ~/Library/Scripts/close.scpt ]]>
</url>
</vkopenurldef>
みたいな設定を書いておくと、
VK_OPEN_URL_APPLESCRIPT.close
というKeyCodeが作成され、
<item>
<name>Cmd-4 to Window close</name>
<identifier>private.cmd_4_to_win_close</identifier>
<autogen>
__KeyToKey__ KeyCode::KEY_4,
VK_COMMAND|ModifierFlag::NONE,
KeyCode::VK_OPEN_URL_APPLESCRIPT.close
</autogen>
</item>
の様に通常のキー割り当ての様に機能を割り当てられます。
vkopenurldef
の中で、name
では必ず
KeyCode::VK_OPEN_URL_
から始まる必要があります。(その後は自由。)
url
のtype
をshell
にすることでシェルコマンドの実行を行うのですが、
ここではコマンドラインからAppleScript等スクリプトを実行するosascript
1を使う事で
AppleScriptを実行しています。
勿論上のDocumentにあるように
/bin/date | /usr/bin/pbcopy
といった(今日の日付を出してそれをクリップボードにコピー)通常のコマンドも実行できます。
open -a /Applications/Firefox.app
などとしておけば
アプリを立ち上げる事も出来ます。
shell
の設定の際には
url
にはCDATAセクション2を使って記述します。
type
を指定しないで通常のURLをurl
に書いておけば
ブラウザで特定のページを開くことも出来ます。
/…の様なファイルパスを書いておけばファイルを開くことも可能です。
(どちらもshell
でopen
を使っても出来ますが直接書けて便利。)