Spaceman is an application for macOS that allows you to view your Spaces (Virtual Desktops) in the menu bar. Spaceman allows you to see which space you are currently on (or spaces if you are using multiple displays) relative to the other spaces you have. Naming these spaces is also an option in order to organise separate spaces for your workflow.
Also, the menu and menu bar icons enable switching between spaces.
Spaceman requires macOS 13 Ventura or greater.
For switching spaces, Spaceman requires Accessibility and Automation permissions (see below).
Go to the releases tab and download Spaceman.dmg from the latest release. Double-click the dmg file and drag Spaceman.app to the Applications folder.
$ brew install --cask ruittenb/tap/spacemanWhen launching Spaceman, you may run into this message. Open the System Settings β Privacy & Security and click "Open Anyway".
You can choose between Dimmed or Boxed view:
Fullscreen spaces have square corners, regular spaces rounded corners.
You can assign colors to each space button:
You can choose variable width icons or mostly-equal width icons:
You can choose to display just numbers instead of the entire names, or even just rectangles:
For ultra-compact mode, choose the Two Rows layout:
You can choose to display all spaces or just a few neighboring ones; and to hide Fullscreen spaces entirely.
Spaceman's preferences are organized into four tabs: General, Appearance, Spaces, and Shortcuts.
- Launch Spaceman at login: Automatically start Spaceman when you log in to macOS
- Refresh spaces in background: If enabled, Spaceman will update the view when your space configuration changes
- Restart space numbering by display: For each display, Space numbering starts at 1, instead of using continuous numbering
- When displays are side by side: Use macOS display order or reverse it
- When displays are stacked: macOS standard is to sort displays by the X coordinate of their center. This option enables sorting by Y coordinate
- Open System Settings β Displays: Opens the System Settings panel for Displays. Click [Arrange] to adjust the arrangement of the displays
- Backup Preferences: Saves all your preferences to
~/.spaceman/app-defaults.xml(old copies are preserved) - Restore Preferences: Loads preferences from that file
- Layout: Adjusts icon and font sizes for the menu bar
- Dual Row fill order: When using Dual Row layout, choose whether to fill rows first or columns first:
- Icon text: Selects one of the five visual icon styles shown in What It Looks Like
- Inactive style: Choose between dimmed (reduced opacity) or bordered (outlined) inactive spaces
- Icon widths: Switches between:
- roughly equal icon widths (short names are padded to match the longest, but fullscreen names are disregarded), or
- variable widths (each icon sized to its own content)
- Spaces shown: Selects which spaces are shown in the menu bar: all, a few, or just the current one
- Nearby range: With "Nearby spaces", this determines how many spaces will be shown
- Hide fullscreen spaces: Hides fullscreen app spaces from the menu bar
- Space names: Assigns custom names of any length to individual spaces
- The menu displays full names regardless of length
- Menu bar icons truncate names to 10 characters for compactness
- Optionally, for each Space icon, a color can be selected.
- Shortcut for manual refresh: Defines a shortcut key to tell Spaceman to update the space information
- Shortcut to open preferences window: Defines a shortcut key to open the preferences window. The preferences window can be closed with βW
- Switching keys and Modifiers: Tell Spaceman which shortcut keys have been defined in Mission Control for switching spaces.
- Open System Settings β Mission Control Shortcuts: Opens the System Settings panel for the Keyboard. Click [Shortcuts] and [Mission Control] to define these.
Spaceman provides multiple ways to switch between spaces quickly and efficiently.
For space switching to work, you need to configure three things:
1. Accessibility and Automation Permissions
- Go to System Settings β Privacy & Security β Accessibility
- Add Spaceman to the list of allowed applications.β
- Enable the checkbox next to Spaceman
- Go to System Settings β Privacy & Security β Automation
- Add Spaceman to the list of allowed applications.β
- Enable the checkbox next to Spaceman
β If you are updating from a previous version, you may need to remove and re-add Spaceman to grant permissions to the new version.
2. Mission Control Shortcuts
- Go to System Settings β Keyboard β Keyboard Shortcuts β Mission Control
- Assign keyboard shortcuts to "Switch to Desktop 1", "Switch to Desktop 2", etc.
- Make sure shortcuts are enabled for the spaces you want to access
3. Spaceman Shortcut Configuration
- Open Spaceman preferences and go to the Spaces tab
- Under "Switching Spaces", select your preferred shortcut scheme:
- Number keys on top row: Uses keys 1-9, 0 for spaces 1-10
- Numeric keypad: Uses numpad keys
- Add the modifier keys (Shift, Control, Option, Command) that Mission Control has been configured to use
Menu Bar Clicking
- Click directly on any space icon in the menu bar to switch to that space
- Current space is highlighted and cannot be clicked
- Clicking an unavailable space flashes the menu bar
Menu Selection
- Right-click the Spaceman icon to open the context menu
- Select any space from the list to switch to it
- Menu shows full space names and indicates the current space with a checkmark
Some appearance settings are also available directly from this menu.
Keyboard Shortcuts
- Spaceman does not do the space switching itself, but sends shortcut keystrokes to Mission Control.
- Switching between spaces is then handled by Mission Control directly.
- The first 10 regular spaces will send shortcuts with numbers (1-9, 0)
- Spaces beyond the first 10 cannot be switched to via keyboard shortcuts
- Mission Control doesn't have the capability to switch to fullscreen spaces
- Space switching will fail without proper Accessibility permissions
Spaceman supports AppleScript commands for remote control:
$ osascript -e 'tell application "Spaceman" to refresh' # Refresh the Spaces Icon $ osascript -e 'tell application "Spaceman" to open preferences' # Open Preferences Window $ osascript -e 'tell application "Spaceman" to restore preferences' # Restore Preferences from BackupIt also exposes read-only properties for querying the current space:
$ osascript -e 'tell application "Spaceman" to get current space number' # e.g. 3 $ osascript -e 'tell application "Spaceman" to get current space name' # e.g. "Mail"With multiple displays, these return the current space on the frontmost display.
These commands and properties can be used in automation tools like Alfred, Keyboard Maestro, or custom scripts. For details on how to maximize usefulness of 'refresh', see MikeJL's Comments
- If Spaceman does not start, or does not run correctly, after an upgrade: you may need to delete the application defaults:
$ defaults delete dev.ruittenb.Spaceman- If Spaceman assigns the desktop names wrong: Spaceman is not compatible with the setting System Settings β Desktop & Dock β Mission Control β Automatically rearrange Spaces based on most recent use. You should turn this setting off.
- This project was forked from Sasindu Jayasinghe
- This project is based on WhichSpace
- This project uses Sparkle for update delivery
- This project makes use of LaunchAtLogin
- This project makes use of KeyboardShortcuts
- Authors:
- Contributions by:























