Productivity Apps: Keyboard Maestro

keyboard_maestro_logoI’ve had this article on the back burner for almost three years now, but for the next thrilling instalment of my productivity app blogs, I’ll be turning to look at Keyboard Maestro.

Don’t let the somewhat dated website put you off, the app itself is unbelievably powerful. I have to admit to being wary when I first tried it out. The learning curve is steep, and the documentation pretty unclear – especially when compared to the other productivity apps that are available. However, after months years of sustained use, my feelings towards Keyboard Maestro have completely changed. It’s tough to get into, but so worth it. I honestly don’t know what I would do without it at this point.

So if Keyboard Maestro is so great, why did it take me so long to publish this? Well, there’s a few reasons. Firstly, there aren’t so many general use cases for Keyboard Maestro – at least not for me. Instead, it’s an app that’s best for repetitive tasks that are very specific to each user’s needs, which makes it difficult to give good examples. Secondly, it’s an app that you tend to set up and forget… before rediscovering it later on when your needs have changed, and you realise: “Oh! Keyboard Maestro could make this way easier!”. I’ve gone through that cycle a number of times, and after rediscovering just how awesome it is, I decided to finally complete this post.

What does it do?

Okay okay so Keyboard Maestro is great, but what does it actually do?. This is a good question, as it isn’t immediately obvious. Essentially, Keyboard Maestro allows you to take any task that you have to repeat, and automates it. If you’re familiar with Alfred, think of Alfred workflows, but on steroids. The key difference is that instead of having to write Applescript for every action you want to complete (which is still an option, by the way), there are a whole bunch of options baked in. Whether that’s telling the mouse to move and click on a certain point, displaying a popup message, getting an image size, filling in a field on a website, or whatever. You get a lot of control from the get go.

Keyboard Maestro Actions
Some of the ‘actions’ available.

 

The sheer power of Keyboard Maestro is also its undoing in a way. It’s easy to look at the list of actions and wonder when you will ever use any of them. The UI is not the most intuitive, and you’d be forgiven for giving up at the beginning purely on that basis alone.

If you want to carry out simple, general tasks, then there may well be a nicer app that lets you do those things. However, that isn’t the point of Keyboard Maestro. Keyboard Maestro is there to help you automate pretty much any task that you can think of.

In addition to the automation, there is a whole host of other cool features that you can do a deep dive into – such as an extensive multi clipboard manager, application switcher, and others – but for me the real glory lies in the macros.

What can it do for me?

 

One of the biggest hurdles to starting off with Keyboard Maestro is working out exactly what you’ll use it for. It takes a conscious effort to work out what tasks you could automate – which isn’t necessarily something you thought was possible beforehand. Once you do sit down and give it some attention though, you’ll soon come up with plenty. Do you have to fill out specific fields on a website more than once? Use a macro. Do you need to convert HTML to markdown? Use a macro. Need to extract URLs from a big block of text? Macro. The possibilities are endless.

As part of my job, I regularly have to review and respond to reports about different websites using a helpdesk system. Each one (generally) requires me to:

  1. Find the website URL in the e-mail and open it.
  2. Decide what to do.
  3. Note down the action taken in certain circumstances.
  4. Reply by copying a specific part of the original message, and quoting it back in a certain format before providing an appropriate response.
  5. Select a certain option to mark the issue as ‘Resolved’ or ‘On Hold’.

All of these steps are fairly straightforward, but a lot of time is taken up by clicking through the same tasks for each – even when I use a textexpander or snippet manager like Alfred. Sometimes the URLs are jumbled up and I need to fix them before opening or responding, or they are buried in huge blocks of text… etc. However, with Keyboard Maestro, I can reduce this all to a couple of key presses, with a couple of macros doing all of the following:

  1. Extracting all of the URLs from the messages, and opening them in new windows.
  2. Pasting the URLs in the correct quoted format at the top of the reply, along with the appropriate response.
  3. Adding whatever notes needed to track the action taken in a specific field.
  4. Marking the issue Resolved or On Hold as appropriate.

The only thing Keyboard Maestro doesn’t do is decide what action to take – which is just as well really, for a variety of reasons!

Like many of the examples, that one is very specific, but it demonstrates a bit of how granular and useful Keyboard Maestro macros can be – and will hopefully get you thinking about your own use cases. Here are some other more general tasks I regularly deploy macros for:

  • Inserting a URL wrapped in a href tags.
  • Pasting text with different styles of quotes depending on the situation.
  • Parsing blocks of text to extract URLs and/or e-mail addresses.
  • Getting ID numbers from long URLs.
  • Pasting items in a bulleted or numbered list automatically.
  • Filling out forms online.
  • Copying the current URL from my browser window (and doing stuff with it).

The most powerful and useful ones are those that have very specific, work related use cases. With a bit of imagination, you’ll come up with your own, so I’d encourage you to give it a bash.

Triggers

To wrap this up, I wanted to highlight one more feature of Keyboard Maestro that makes it stand out from other productivity apps. For those veterans amongst us who regularly make use of workflow improvements, it’s easy to run out of hotkey assignments, and Keyboard Maestro has a bunch of different ways to solve that problem. First off is the use of ‘palettes’, which lets you assign the same hotkey to different macros – and then select them from a menu – or to activate different hotkey sets depending on what you’re working on that day.

If you already use Alfred, Keyboard Maestro is a brilliant complement, rather than a replacement in this way too. There is a specific Alfred workflow that lets you search and trigger Keyboard Maestro macros from the Alfred search bar, which is incredibly useful for those that you may use occasionally, but don’t want to dedicate a precious hotkey to: Alfred Maestro.

Finally, triggers aren’t just confined to mere hotkeys. Oh no. Pretty much any event you can think of can kick off a macro. If you want certain changes to happen when you connect to a particular WiFi, you can make that happen. Execute commands remotely by running Keyboard Maestro on a server? Why not. Run certain checks when a USB device is plugged in? Easy. You can even have Keyboard Maestro react to MIDI notes and values, which opens up a whole world of interesting hardware controllers aside from the keyboard… something I’ll be exploring in the next post.

In the meantime, go forth, and automate!

 

Productivity Apps: Bookmarking with Shiori

Shiori

Bookmarking

Bookmarking. It’s something I’ve always struggled to find a good solution to. The in-browser features don’t really make it easy to quickly find common URLs, and I’ve tried to use other websites in the past, but they just didn’t seem to stick in my mind.

What I’ve Tried Before

The closest I’ve come to finding an answer is in Alfred, which I’ve blogged about before. There are a few different ways you can bookmark with Alfred, but I didn’t quite find that any of them matched what I was looking for.

First, I tried using the ‘web search’ feature to associate bookmarks with particular keywords. The problem with doing this though, is that you need to remember the exact keyword to call up the site you want. As as a result, it isn’t all that great for keeping track of lots of different locations.

Another solution was to use the Alfred Snippet Manager. This could be a really good solution, as you would be able to search by the title and description that you enter, as well as the content of the actual URL itself. However, if you already use the Snippet Manager for predefined replies – more like a clipboard manager – then having a large number of bookmarks in there could pollute the results, increasing the time it takes to find the things you need effectively.

I set out to find an alternative, and made use of my old Delicious account to create a workflow that could search through my bookmarks by making use of the private RSS feed. It worked, but was a bit clunky, and not as intuitive as I’d have liked. That meant that I didn’t ever really make use of it.

The real solution came in the form of a different app altogether…

Shiori

I stumbled upon Shiori completely by chance, and was surprised I hadn’t seen it mentioned anywhere before.

Both the website and the app itself are beautifully simple, and easy to use. You simply set it up to connect to a Delicious (free), Pinboard ($11 annually) account, or both. Personally, I use the latter – as Delicious keeps making changes to their service which break things. The $11 is worth the money. Call up the interface with a hotkey, and you can search through all of your bookmarks in an interface that is awfully similar in feel and operation to Alfred.

shiori_main

The similarity isn’t a criticism, as Alfred is amazing. You can search via tag, words, or even abbreviation. Like Alfred, the more you use the app, the smarter it gets – picking up on the type of searches you use most commonly to find particular bookmarks. Because it uses your login details (and doesn’t just pull it from the RSS like my hacky method above), it’s really fast too.

There’s also a hotkey that can be set to bookmark new websites quickly from the browser. If you have Keyboard Maestro installed, Joseph Schmitt has created a pretty sweet workflow which you can assign to an additional hotkey. It takes the highlighted text and automatically adds it into the ‘notes’ field. More on Keyboard Maestro in a later post.

This type of bookmarking is often called ‘social bookmarking’, as they are largely designed to be public, to share with friends etc. I’m not really into that, and prefer to keep my URLs private. Shiori makes it easy to automatically tag new bookmarks as private, to avoid having to do it manually yourself every time.

You can add in certain domains (if you want to keep particular – ahem – websites – private), but if you stick in an asterix, it will capture them all.

Screen Shot 2015-02-10 at 13.23.14

In summary, I love Shiori. The design is as nice as Alfred (and it works just as well), it arguably works better for bookmarks, and it helps keep things compartmentalised. Snippets are now assigned to one hotkey, Alfred another, and Bookmarks another.

Where can I get it?

You can download Shiori for free (yes, completely free) here.

How Alfred Changed (Ruined?) My Life

From day one when I started working at Automattic, there was a strong focus put on different tools and apps that would help out with our daily tasks. Everybody is a power user, with their own tips and tricks, which means there are plenty of different things to explore.

One of the tools that was used by a few people, and championed by my pal Bryan is Alfred (If you don’t use a Mac, sorry, you may as well stop reading now). At first I was suspicious. I installed the app, but was never all that convinced. It didn’t fit neatly into my existing workflows, and it felt more like a hinderance than a help. In the past couple of months though, Alfred has become indispensable… so much so that I find myself lost when I use other people’s Macs.

Note: Some of the functionality I am describing requires the PowerPack, which currently costs £17, but you can try out the core features for free. The PowerPack has definitely been worth it for me, but bear that in mind.

What is Alfred?

There are plenty of other articles online to explain exactly what Alfred is, so I’ll be brief.

Alfred is the ultimate quick controller tool for your Mac. It’s like TextExpander, OSX Spotlight, Clipboard manager, and multi-search toolbar all rolled into one… but even better than that.

You start by assigning a hotkey to bring up the Alfred search box. It looks something like this:

I experimented with a bunch of different key combinations until I settled on ⌘+K. This might seem like a weird choice, but it felt like the best option given the way my hands naturally sit on the keyboard.

This unassuming search box has the power to become the command centre for your whole Mac.

Web Searches

How many times do you search Google, Facebook, IMDB, Wikipedia, or anywhere else a day?

To borrow Bryan’s advice: Whenever you search a website, consider adding it as a custom search in Alfred.

This is what the screen looks like:

I have a whole pile of custom searches, but most of them are for work, so I’ve only shown those that will be common for most folk.

Setting these up is pretty straightforward, so I won’t go into details – instructions can be found on the Alfred site itself. What’s important is how it works. Say I want to search IMDB for a particular movie. I would call up the Alfred box with my hotkey, and then type IMDB, followed by the movie title. Like so:

Hit enter and I get taken straight to the search results, rather than having to go to imdb.com first. The same sort of setup can be used for almost any site that has search.

Snippets

One of the features I use most often is the ‘Snippets’ feature. This has two main functions: a clipboard manager, and a storage for commonly used pieces of text that you don’t want to have to type out over and over again. You can access this through the main Alfred box, but of course you can assign a specific hotkey if you use it frequently. For me, that’s ⌘+O.

If you are familiar with tools like TextExpander, you’ll find the concept familiar: you input all of your predefined texts into Alfred, and then you can recall them at will through the use of a short phrase. I used to use TE and really liked it, so was hesitant to move over to Alfred’s way of doing things. It seemed counter-intuitive to press a key combination to bring up a window and then type in the keyword for my predef, rather than just typing in the predef directly.

Whilst it takes a bit of getting used to, where Alfred really wins is its fuzzy search matching for predefs. Whilst before I would have to remember the exact phrase, in Alfred it will show you all of the similar responses. This means you can have far more variations than you could remember, and find them easily through the use of a common word. When dealing with DMCA takedown notices, I use the word DMCA in the title. Start typing one, and the list narrows down to the relevant ones. Combine this with the clipboard history (which you can set the retention duration for, or disable altogether), and you have everything you need for working in support at your fingertips.

What’s even cooler is that Alfred will remember the selections you make most frequently, and float them to the top of the list, which is a major time saver. This is something that applies for all of the app’s actions, and is difficult to explain just how helpful it is without trying it for yourself.

Workflows

Workflows are one of the more sophisticated parts of Alfred. Here, you can create complicated recipes that do all sorts of things (or use ones already created by other people).

Here are some examples of the sort of Workflows I have set up:

Alfred Logo

Launch Alfred Preferences – I am constantly modifying or updating the snippets I use in Alfred. As a result, I’ve set up a hotkey (⌘+;) to bring up the preferences panel. You can download this here.

Connect to VPN – I have a number of VPN services that I use to connect to different countries for testing and anonymity purposes. Rather than have to manually connect up to these through the Mac task bar, I have it set up so I can hit one key combination to connect to London, one to connect to the USA, one to Romania, and so on.

Shorten URL with bit.ly – By typing in ‘bit into the Alfred box, I can paste a URL and have it automatically shortened using the bit.ly service. What’s even cooler is that this works with your custom shorteners. In my case, it shortens using http://allmy.fr – which I own.

Control PopClipPopClip is an awesome wee tool for the Mac that another colleague and friend Mark introduced me to. It pops up a whole host of configurable actions you can take on text when you select it. I wasn’t a big fan at first, as it was popping up at inappropriate times, but it did have a lot of potential to be really useful. I created a workflow to toggle PopClip on or off using a keyword, or to bring up the menu with a hotkey when you want it. You can download that here.

Check if a site is down – To check if a website is down globally, or if it’s just me experiencing problems, I type ‘down’, followed by the URL. Alfred checks with http://downforeveryone.com/, and displays the result.

Add a task or appointment to Things or Fantastical – Quickly add a new task or appointment to the Things task manager, or the Fantastical calendar app, rather than fire up the apps themselves.

Open apps with a hotkey or short phrase – e.g. typing ‘sn’ into the Alfred box to open Simplenote. (More detail on the hotkey part in a section below)

Search for and play songs from Spotify – Self explanatory. (#)

Randomise your MAC address – for when you need a new MAC address to bypass time restrictions on the WiFi in hotels/airports/cafes.

IP Address Check – Quickly check your internal and public facing IP addresses. I use this to confirm if I’m properly connected to a VPN or proxy.

Show Workflow Commands – Remembering these workflows is hard. This workflow creates an on-screen list of all the commands with details of what they do. Very handy!

There is a whole pile of different examples over on Packal.org, so that’s a good place to start if you are looking for inspiration.

1Password Integration

If you aren’t using a password manager yet, stop reading and go install one. Seriously. You remember a master password, and these applications both generate strong passwords as well as storing and filling them in on websites automatically.

I used to swear by LastPass, and was perfectly happy with it thank you very much. Then I discovered that Alfred integrates with 1Password.

As well as being able to trigger the 1Password application with a hotkey or phrase, I can search for stored logins from the Alfred box, hit Enter, and get taken straight to the website and automatically logged in.

This means you need to spend a bit of time tidying up your stored URLs to ensure that they are correctly set to the login page rather than the signup page, but it’s worth it. I’ve now completely switched over to 1Password as a result.

Hotkey Trickery

One of the more complicated tricks (in terms of setup) I’ve found with Alfred relates to the use of Hotkeys.

Hotkeys are awesome things. They let you fire up apps, or specific workflows without having to search for anything in the Alfred box. The problem is, a lot of the key combinations that are available are already used up by system commands in OSX.

A guy called Daniel Setzermann has come up with a novel solution to this. It essentially involves installing a couple of tools to re-map your Caps Lock key to the unusual key combination CMD + ALT + CTRL + SHIFT – aka the ‘Hyper Key’. This kills the use of your Caps Lock key, but really… when do you ever actually use that anyway? Never. That’s when. At least, you shouldn’t be. If you need to change text to all caps, you can always get a workflow to do that for you.

This takes a wee bit of time to set up, and even I was hesitant to go through the steps, but stick with it; it’s well worth the initial effort.

The beauty of this is that you can now set up really great hotkeys like CAPS + S to launch Spotify, or CAPS + C to launch Chrome, etc. Here’s an idea of what my workflow for this currently looks like, though I’m still adjusting it to find what combos stick best in my memory:

Daniel explains how to set this up really well on his site over here. (Scroll down a wee bit till you find the relevant bit)

But… this sounds awesome. Why has it ruined your life?

It is awesome. At first, I was reluctant. Changing habits and your engrained workflows is difficult, and I didn’t really get how Alfred would be all that useful at all, even despite the explanations of some really smart people.

Having stuck at it though, I don’t think I could live without Alfred (ok, maybe a slight exaggeration). Alfred is like the gateway drug to productivity.

One of the results of using Alfred more is that I’ve finally reduced the size of my dock, and hidden it completely (until I mouseover). I no longer need to launch things from the dock, and I can quickly see what’s open by Command Tabbing, so I’ve opened up a whole extra bit of screen real estate that I was previously chained to.

Whenever I use somebody else’s Mac, it’s a nightmare. It feels unbelievably clunky and old. I’ve switched from a personal approach based heavily on clicking and moving the mouse about to one that is primarily hotkey based. I haven’t even really scratched the surface of what’s possible in this post… and I’m still discovering new things every day. Alfred lets me launch things quickly and smoothly, to concentrate on what I’m actually meant to be doing. No more trying to remember where that particular network admin page is located… Alfred knows.

Alfred knows.