Navigate OSX Lion desktops as if they were a 2D grid of spaces
Objective-C C Ruby
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
Change Space.xcodeproj


Change Space

Navigate OSX Lion desktops as if they were a 2D grid of spaces


This code is no longer maintained, my re-written replacement app is here: TotalSpaces

TotalSpaces (formerly called ReSpaceApp) is on all fronts a better approach and solution, but Change Space app may continue to work for you.

The problem

In OSX Lion Apple dispensed with the simple and effective 2D spaces grids many people loved and relied on.

In its place, there is the more dynamic concept of ‘Desktops’, which can be created by the system on the fly, for instance when running a full screen app. Also, the system can re-order the desktops according to your use.

These dynamic features are of little use to power users, who know where their apps and windows are, and like to navigate fast between them. A common layout is a 3×3 grid – then from the central space you can reach 4 others with just one keypress. Very useful for flicking between your code editor, and the browser, and perhaps mail, or iTunes for instance.

The solution

Change Space solves this problem.

It allows you to navigate between the desktops as if they were in a grid, using the cursor keys and a control key combo.


Download the latest version from here then double click to unzip, and drag it into your Applications folder.

BEFORE YOU LAUNCH THE APP make sure you have the right number of desktops set up (eg 9 if you wish to have a 3×3 grid).

In order to make sure you have the right number of spaces (e.g. 9 for a 3×3 grid), add desktops using the left hand side + button when in Mission Control.

In Lion you can turn off the feature ‘Automatically rearrange spaces based on the most recent use’ in the Mission Control system preferences pane, and I recommend this heartily.

When you first start the app, the preferences window will show. You should select the kind of grid you wish to have (eg 3×3)

When the app is set up you can safely add it to your login items so it starts every time your mac does.


Change Space has a preferences window, and here you should select the kind of grid you use.

3×3 is the default, but if you use another setting you must of course have the correct total number of desktops set up.

The default keys to change spaces are ctrl-shift arrow keys. You can configure the keys that will be used in the preferences panel.

NOTE: DO NOT BE SURPRISED when your machine starts to cycle through every desktop. This is normal, and it is because the app is working out the numeric identity of each of the desktops. It’s quick, and it only has to do this once each time your mac is restarted.

You can assign your applications permanently to a particular desktop by dragging them onto the right desktop, and then right clicking on the app icon in the task bar, and choosing Options→Assign to this desktop.

Known issues

Change Space cannot change to desktop 1 without sending ctrl-1 to the system. Unfortunately this doesn’t work when if you are holding the shift key down at the time. So sometimes if you do not release the shift key quickly this does not work. This only affects desktop 1, I recommend you seldom use this one for this reason.

If you change the key mappings of Change Space to ctrl-arrows, please be sure to change the mappings for mission control (in System Preferences→Keyboard→Mission Control) so they do not use the same keys. You will likely get inconsistent behaviour when moving around the horizontal ends of your grid if they are the same.

I have once seen the mapping getting mixed up, and it cycling through the desktops on every space change. If this happens, try deleting ~/Library/Preferences/net.sdsykes.Change-Space.plist and restart the app. At any rate, please report any issues like this in github issues.


Stephen Sykes
Twitter: @sdsykes

Special thanks to Harry Groover for the grid graphics code, and for supporting this project.
Thanks to LaC, see stack overflow for the original space id and part of the move space code.
Thanks to Dachaz for the hi-res icons.


Click here to donate


© Stephen Sykes 2011

Non-Profit Open Software License 3.0 (NPOSL-3.0)