Overview
macOS calls every desktop "Desktop 1", "Desktop 2" and so on, and renumbers them whenever you add, remove or reorder one. SpaceNamer gives each desktop a real name that stays with it. You see the name in the menu bar and in Mission Control, and you can jump to any Space without the slide animation.
What it does
- Names follow their Space when you reorder desktops, and are forgotten only when that desktop is closed.
- Mission Control's Spaces bar shows your names in place of "Desktop N", and they move with the bar as it opens and expands.
- The menu bar shows the current Space's name the moment a switch starts.
- ⌃⌥Space opens a searchable switcher. ⌃⌥1 to ⌃⌥0 jump to desktops one to ten, and ⌃⌥Tab goes back.
- A
spacenamer://URL scheme for Shortcuts, Raycast, Alfred and shell scripts.
SIP stays on
The older free tool for this, Spaces Renamer, needed System Integrity Protection switched off so it could inject into the Dock. SpaceNamer asks for Accessibility access and nothing else. Nothing is injected into other apps and no system files change.
It reads the layout of your Spaces from the window server, read-only. macOS doesn't let apps rename desktops, so SpaceNamer draws the names itself, in a click-through layer over the Dock's own labels, and follows the Dock's animations. It makes no network connections and collects nothing.
The catch is that it leans on undocumented macOS behaviour. A macOS update can break part of it until it's updated.
Install
You need the Xcode Command Line Tools (xcode-select --install) or Xcode, with Swift 5.9 or later.
git clone https://github.com/AlexanderCollins/spacenamer.git
cd spacenamer
make signing # once: a local signing identity, so macOS remembers the permission
make install # builds the app, copies it to /Applications and opens it