Wi-Fi等から現在のコンテキストを把握してアクションを実行できるControlPlane
iPodで音楽聴きながらカフェでMac広げてドヤリングしてたら、ミュートになってなくて派手に音を垂れ流して急いでミュートにし、帰宅すると音を鳴らすのにミュート解除しないと、とか面倒ですよね。
出先だったら勝手にミュートしてほしい、このアプリを開いてほしいといった操作を自動化するControlPlaneを利用しています。
今自宅なのか、職場なのか、はたまた出先のカフェなのか、環境を把握するのに使える材料として有用なのは無線LANのSSIDですが、それ以外にもコンテキストを判断するエビデンスとして、いろいろなものに対応しています。
- アクティブなアプリケーション
- オーディオ出力先 (スピーカー、ヘッドフォン)
- AC電源接続有無
- 接続中のBluetooth、FireWire、UBSデバイス、モニタ
- Bonjour、ネットワーク (検知しているWifi、接続中のLAN、DNS、IPアドレス等)
- OS XロケーションサービスのCoreLocation
- ライトセンサー
- 独自のシェルスクリプトでの定義
- Sleep、Wakeのタイミング
これらを組み合わせ、アプリを起動、終了させたり、ミュート、ミュート解除したり、いろいろできます。
たとえば、テザリングしているときはDropbox等を落とす、など可能性は無限大です。 Macなんで、cronでシェル走らせてもできるんですが、GUIで設定できて便利なのでオススメです。