Super fast application switching

As I spend a lot of time working on my computer, as developers do, I look for ways to improve my workflow. One of my favorite ways of navigating OSX nowadays came from disliking Alt + Tab-bing to switch applications.
(It's "Command + Tab" on OSX of course.)

It's slow. It takes me out of what I'm doing and makes me think about where in the list the application is that I want to open.

Instead I use shortcuts to open applications:

Losing focus

I'm editing a file and want to commit a change.

Alt + Tab quickly to Oh I used Chrome last, not iTerm. Better Alt + Tab again. Oops! Pressed Tab three times, better go round the entire list or Shift + Tab to go back.

What did I want to do in iTerm again?

Example of Command + Tab UI on OSX
Example of Command + Tab UI on OSX

Especially when I'm working with more than two applications Alt + Tab gets in the way. The order of the Alt + Tab list is based on their last use. There's not a very high chance I need to switch back to the previous application all the time.

My development environment usually includes having iTerm, MacVim, iA Writer Pro, Photoshop and Chrome open at the same time. Switching becomes a pain.

So I wanted something else..

Application shortcuts

It was actually Microsoft Windows that got me used to these kinds of shortcuts. It started with Windows + E to open Explorer and Windows + R to open the "Run" window.

In Windows 7 (maybe even in Vista) they added support for numbered shortcuts for applications on the task bar. Windows + 1-9 opened the application on the 1-9th position on the task bar. I loved this feature and when switching to OSX years ago it was one of the things I really missed.


Example of Quicksilver triggers
Example of Quicksilver triggers

Luckily I found an alternative in Quicksilver's triggers. It has a very nice UI that allows you to set up almost any kind of shortcut combination to open an application of choice.

Hammerspoon logo
Hammerspoon logo

I wasn't entirely happy with it so I gave a Mjolnir fork, Hammerspoon, another go recently. With Hammerspoon you can set up the same shortcuts as Quicksilver. However, this tool can do a lot more than just shortcuts. I also use it for window management now, something which previously I used the awesome for.

There's no UI in Hammerspoon like in Quicksilver and Spectacle, instead you write all your config in Lua.

I actually like Hammerspoon more since I can do a lot more than defining application shortcuts. This means I'm now in the process of moving all my configuration over from Quicksilver and Spectacle to Hammerspoon. You can see my configuration in my dotfiles.

My setup (an example)

This setup saves me time switching between applications every day, but more importantly, I can continue concentrating on whatever I'm working on.

The full list of shortcuts can be found in my dotfiles as well.

But what about Spotlight?

I realized I never really use OSX's Spotlight to look for anything.

It doesn't help with quickly switching between applications. I first have to open spotlight with ⌘ + Space, then type a part of the application name, but it might conflict with something else, so I have to type more and... it just doesn't work for me.

I pretty much only use spotlight as shortcut for a calculator and currency converter.

Example of OSX Spotlight converting currency
Example of OSX Spotlight converting currency

What about the Dock/a mouse?

There are enough reasons why I consider a mouse to be even worse for switching applications.

For me the main reason is RSI complaints.


The downside to this setup? It overrides some shortcuts set up by applications, but I can work around that or remap them in the application itself.

The big thing is that you need to remember what application is under what shortcut, because there's nothing on screen that tells you what is what. It takes a bit of practice, but nowadays it's more muscle memory than having to think about what I want to open.


My Alt + Tab process is like this:

- Alt + Tab
- Find application
- Tab
- Tab again
  - Repeat until found
- Release

Or I just use a very specific shortcut to go directly to the application I need.

- Ctrl + 1
- Release

Optimize your workflow!

Maybe this setup is nothing for you, but I hope this post makes you think about better and faster ways to work on your machine. There are plenty of other ways to switch between applications.

Maybe you think I'm overthinking it and I'm optimizing just to optimize, but it works for me!