Computers should be so smart today, and yet, it feels like we have to babysit them, performing menial tasks, instead of putting the computer’s own power to work. We’re blown away by voice command apps like Siri, and yet our MacBooks that are far faster take more effort to use. There should be a way to automate it more.
ControlPlane is an open-source context-sensitive automation application. In short, what this means is actions can be triggered based on where you are, what you’re doing or when you’re doing it. There’s a vast number of ways you could put it to use, and it’s limited only by your imagination. So if your curiosity is already piqued, read on while I take you on a small tour.
The Building Blocks
ControlPlane can be thought of as having two main blocks: Contexts and Actions. A context can be a place, a time or even a running application. It all depends on what your needs are and what rules you later define. Actions are what is executed once a context is triggered.
Once you get to know it, ControlPlane is rather simple and easy to use. However, it does have a few “moving” parts that will help to break it down into its various components. Let’s take a look first at all of the main features and parts of ControlPlane, and then we’ll look at ways you can put it to use to simplify your own life.
Creating a context is a simple matter of deciding upon a name, and hierarchy if so desired. Click the + and type in a name. Drag to reorder or nest to create a folder-like hierarchy. Once created, you use Evidence Sources and Rules to define when they are activated. It is possible to have more than one context active at the same time, thus allowing for great granularity in terms of triggering actions.
There are many available Evidence Sources with which to define rules and due to constant updates by the developer and community the list of both Evidence Sources and Actions keeps growing. Having said that however, it is possible to disable Sources you don’t need or use in order to unclutter the list of available options when creating new rules (Owners of Macs without FireWire can disable that source, for example). Another advantage of disabling Sources that aren’t needed or used is that ControlPlane won’t “scan” them looking for context triggers which should lower the performance hit (which is already very minimal).
Rules are how you tell ControlPlane what,where or when your context is. You can use any enabled Evidence Source to define a Rule. Simply choose what type you wish to create, fill in the available configuration parameters, choose the context and finally the confidence level. A Context is only triggered when the Confidence Level is higher than that of the threshold defined in the General tab. One rule can have a very high Confidence Level (say Current Location, provided by Apple’s CoreLocation) while other rules may have a lower Confidence Level (assigned IP for example).
Actions, as the name rightfully implies, this is where all the action takes place. This is where you define what you want to happen when a specific Context is triggered. At the time of writing, there are over 30 available actions, one of which is the ability to trigger scripts (AppleScript or shell) vastly increasing what can be done with ControlPlane. The full list is available on the site but here’s a little glimpse of what’s possible:
- Change the default printer
- Change the display brightness
- Change Incoming/outgoing servers in Mail.app
- Mount/Unmount external and network drives
- Open any file, including starting Applications
- Run a script, such as AppleScript or shell script
- Change Time Machine backup destination
- Enable/Disable Notification Center (Mountain Lion only)
- Enable/Disable Bluetooth
- Enable/Disable WiFi
- Start or stop a VPN connection
To create a new action, click the + and choose the action you want. Depending on what type you choose, the configuration parameters will vary. There are however a few that are global to all actions, namely:
- Context that should trigger the action;
- When you want to trigger the Action, on Arrival, Departure or Both;
- Delay before triggering the Action;
- Description for your Action.
Putting ControlPlane to Good Use
Now that you know the building blocks and how they piece together you can start putting this to good use. You may or may not be feeling overwhelmed or not quite sure what you could do with this so I’ll give you a few personal examples to get you started.
My Time Contexts
I’m fortunate enough to be a telecommuter and therefore, some days I work from home and some days I work from the office. Regardless of where I am though, during the weekdays I always have a set few apps that I need for work.
That’s where my “Weekdays” Context comes into play, opening all apps I’m going to need for work. Now if I so happen to use my MacBook on the weekends, none of these apps open up and bother me.
A “Work Hours” context opens my Work Tasklist in TaskPaper and an “After Work Hours” Context opens my Projects & Hacks Tasklist. Having this automated is a boon for focus because until it opens I know it’s all work and no play.
Although I’m a user of F.lux I also have a “Late Night” context that automatically dims the display brightness so as not to strain my eyes when working late hours.
My Places Contexts
As said earlier, I move around a lot and this is where my Places Contexts shine. A “Work” context sets my default printer to the one closest to me at the office, turns off Bluetooth and Wifi (no need for either at work) and finally connects to my most used network drives.
A “Home” context sets the default printer to my own and turns on Bluetooth and Wifi. It also changes my Adium status message so that my colleagues know immediately that I working from home that day.
As you can see from these few examples, the granularity that I mentioned earlier allows for a great deal of customisation with regards to actions. You can mix and match Contexts to fit your needs. You can find other interesting ways of using ControlPlane on its Wiki Page.
I’ve been using this application for quite some time now and have yet to have had any problems. Having said that, when bugs are found, the developer and community are quick to come out with bug fixes and new features. While not as feature rich as apps such as Keyboard Maestro, you can’t beat the price and feature set it already has.
If you enjoy automating and tweaking your system then I strongly urge you to give ControlPlane a try. I’m confident you will be thankful you did.
Let me know in the comments what interesting ways you’re using ControlPlane and how its changed your workflow.