A pretty clever guy called Newton once said, “for every action there is an equal and opposite reaction.” – the same is now true for Ubuntu with the use of Cuttlefish.

Cuttlefish allows you to create events that only happen under certain circumstances.

For example, I like to keep my audio muted as I don’t like system sound to be played out to me. However, I have Cuttlefish setup to automatically un-mute my sound when I open Rhythmbox or Totem Movie Player. Then when I exit either application, the sound is muted again.

Cuttlefish is very powerful in what it can do, you can do things like opening your browser when Ubuntu connects to your wireless LAN, or automatically lock your screen when a USB stick is unplugged (this is a great idea for computers in public places like in work).

I managed to catch up with the developer of Cuttlefish recently, where I asked him what the future holds for Cuttlefish. Here is what he had to say:

I have two bigger ideas for cuttlefish as a system:

First, reflexes will be extended by conditions. Currently you can define something like “Lock my screen, when I disconnect my smartphone”. But that might only be a valid reflex at the office. With conditons you could create a reflex like: “Lock my screen, when I disconnect my smartphone if I’m connected to office-wlan”.

The second idea is data exchange. Stimuli should provide the data they watch for and reactions should accept data to work with. Let me give an example:

Assume there is a “Watch Folder for new Files” which is set to watch your downloads folder for mp3-files. The stimulus should provide the complete path to created files, whenever it fires. A reaction could be “Queue a file in music player” that takes a path to queue. If everything works out like I plan, you would be able to create a reflex like:

“Whenever there is a new mp3 file in my download folder, queue it into my favorite music player”.

If the growing list of events and actions that are listed in Cuttlefish isn’t enough then the developers have you covered. Cuttlefish has a plugin system that allows users to create their own events and actions. Alex, Cuttlefish’ creator went on to explain:

[Cuttlefish has] a brand new plugin system. By this users can become contributers easily and create their own events and actions in just a couple of minutes — if they know a bit of python programming. I posted a coding tutorial on youtube (http://www.youtube.com/watch?v=zYUItu_dO0I).

Cuttlefish also has an indicator applet that allows you to run any rule that you have in place on demand. This is a great way of using Cuttlefish as a shortcut for system processes like enabling bluetooth, locking your screen or changing a default printer.

I tend to review a lot of applications and tools across the various blogs that I write for but not many keep a regular spot on my machine. Cuttlefish is an exception to this rule and it’s an application that I think a lot of users will definitely find useful.

Install Cuttlefish in Ubuntu 12.04

Cuttlefish is available to install straight from the Ubuntu Software Center – no PPAs needed. At present it is only available for Ubuntu 12.04.

Download Cuttlefish from the Ubuntu Software Center