Skip to content


Repository files navigation

Switch, Window-Based Context Switching

Switch is a window-based (as opposed to application-based) context switcher. By default it is bound to using ⌥⇥ and ⌥⇧⇥ to cycle through the visible windows on the current space. When the interface is active, ⌥W can be used to close windows and ⌥, used to show a preferences window. The main interface looks like this:

Interface Screenshot

This project is functional, but not finished. That said, I've been using it every day.

Patches and issues are welcome. If a window is being improperly shown or omitted from the interface, please include a snapshot.

Getting Started

Download the latest release, put the application bundle in your /Applications or ~/Applications directory, and run it! It will check for updates automatically so you can stay up to date as the project develops.

Switch requires Mac OS X version 10.14 or newer and is still in development. For a list of known issues, check out the bug tag for general badness and the quirk tag for windows being improperly shown or omitted from the interface.


Build Status

To check out the project, its submodules, and open in Xcode:

git clone git://
cd Switch/
rake deps
open Switch.xcworkspace

At this point, ⌘R should have you up and running!

The release process uses the project Rakefile; if you have a Developer ID certificate installed, you should be able to run rake release without any issues. Without a Developer ID, the analyze, test, and app targets (and their dependencies) should succeed.


Switch relies on a number of external frameworks, either as submodules or pods. Thanks to the people responsible for them, you've saved me time and tears.


A window-based context switcher for the Mac