[Mac] 使用 Control Plane 在特定情境執行特定動作

[Mac] 使用 Control Plane 在特定情境執行特定動作

身為工程師都是很懶的,總是希望事情可以自動化做好 😛

在 Android 手機上我用了 Llama 來幫我做事,

在 Mac 電腦上其實也有類似的需求,像是

「我想要電腦在連上家裡的 Wifi 後,就自動執行一個 shell script 連上公司的 VPN」

問題是,這要怎麼做到呢?

 

因為我都是關閉 Mac 螢幕後,帶回家打開螢幕,

Mac 醒來之後會自動連上 Wifi,我再手動連 VPN~

因此原本考慮的是如何在 Mac 休眠醒來之後自動做事,

結果在 Possible to run scripts on sleep and wake? 這篇看到更好的東西,

有人推薦了他自己寫的 ControlPlane 軟體,

試用了一下也真的是不錯,而且是免費軟體喔~

 

1. 安裝 ControlPlane

到 ControlPlane 的首頁,就可以下載軟體安裝~

 

2. ControlPlane 的一般設定

第一次執行時,會自動建立一個叫 Automatic 的 context…

先點選 Open Preferences 看看設定~

在 General 這邊,可以把 “Start ControlPlane at login” 勾起來~

Screen Shot 2015-01-28 at 上午12.08.30  

 

3. 建立情境 Context

ControlPlane 裡面的 Context 代表的是一個情境,

ControlPlane 會藉由觀察一些資料 (Evidence Sources),

經由規則 (Rules) 的判斷,來決定現在處於哪一種 Context 之下~

 

像下面我是把預設的那個 Automatic context 名稱改掉,

改成 Home network connected 這個名稱:

Screen Shot 2015-01-28 at 上午12.13.06

 

那麼什麼時候會進入這個 Context 呢?

這邊就要靠 Evidence Sources 裡的資料來源了,

像我只要連到家裡的 Wifi 就認為是進入 Home network connected 情境,

因此我選了 Nearby WiFi Network 這個資料來源:

Screen Shot 2015-01-28 at 上午12.13.14

 

在 Evidence Sources 這邊勾起來的東西,就可以在 Rules 這邊使用~

我加了一個 Nearby WiFi Network 的 Rule,

只要連到的 Wifi AP 的 SSID 是家裡的 WiFi AP 的話,

就代表進入 Home network connected 情境了:

Screen Shot 2015-01-28 at 上午12.19.47

 

這邊還可以調整這條 rule 的信心程度,

像我很確定連到家裡 Wifi 就代表進入 Home network connected 情境,

因此就調整成 100%~

(ControlPlane 只有在信心程度超過某個預設值時,才會認為情境確立,可以執行動作)

Screen Shot 2015-01-28 at 上午12.20.18

 

這邊要注意的是,Rules 這邊可以設定很多個 Rule,

但每個 Rule 其實是互相沒有關連的。

就算有一堆 Rule 都是用來設定同一個 Context,那也只是從那一堆 Rule 中,

找出較高的「目前是否為這個情境」的信心程度而已~

原本我沒有理解正確,以為它是像 Llama 一樣,多個 Rule 代表 (AND) 要同時成立,

結果一試才發現,只要有一條 Rule 中了就進入該情境了~

 

4. 設定情境要執行的動作

在 Actions 這邊可以設定進入或離開情境時,要執行的動作~

像我想要在進入 Home network connected 情境時,

執行我的 login_vpn.sh,因此就選擇 System Actions > Run Shell Script:

Screen Shot 2015-01-28 at 上午12.22.03

 

接著設定好在進入情境時 (On arrival),立刻 (Delay: None) 執行 login_vpn.sh~

Screen Shot 2015-01-28 at 上午12.46.18    

 

5. 測試設定好的情境與動作

如果情境設定正確的話,那麼在正確的環境下,

應該可以從 ControlPlane 圖示 > Active Context 下,

看到設定的情境被選擇了~

Screen Shot 2015-01-28 at 上午12.49.11  

 

不過 ControlPlane 不像 Llama 有「測試動作」這個功能~

(老實說 Llama 有 AND/OR 的條件設定以及測試動作,

還是比較方便,可惜它沒有 Mac 版本)

因此要測試動作的話,還是得自己試著離開情境再進入看看,

像我可能就是先關掉 Wifi,再打開 Wifi,

看看 ControlPlane 會不會正確的執行我設定的 login_vpn.sh~

 

雖然 ControlPlane 的設定在一開始不算很直覺,

但習慣了也就 OK 了~可以試試看~自動化可以省不少時間喔~^^

 

 

(本頁面已被瀏覽過 389 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料