Compare · Checked on 30 September 2026

How Deskmap compares.

Thirteen capabilities, nine tools, checked against each product’s own documentation. Where a cell says “partly”, the notes below say why.

  • 13 capabilities
  • 9 tools
  • Sources for every product

The table

Thirteen capabilities, nine tools.

Deskmap’s column is highlighted. Select a product’s name to read its note.

  • Built in
  • Partly, or with a limitation (see the notes)
  • Not available
  • Does not apply (the tool does not move windows between desktops)

Scroll the table sideways. The first two columns stay in place.

Deskmap compared with eight other tools on thirteen capabilities
CapabilityDeskmapmacOSRectangle ProMoomStayShiftPlusyabaiAeroSpaceHammerspoon
Rules match the window title, not just the appBuilt inNot availableBuilt inPartly, or with a limitationBuilt inNot availableBuilt inBuilt inPartly, or with a limitation
Sends a window to a chosen native desktop (Space)Built inPartly, or with a limitationNot availableNot availableNot availablePartly, or with a limitationBuilt inNot availablePartly, or with a limitation
…with System Integrity Protection left onBuilt inBuilt inDoes not applyDoes not applyDoes not applyPartly, or with a limitationBuilt inDoes not applyPartly, or with a limitation
Separate targets per display setupBuilt inNot availablePartly, or with a limitationBuilt inBuilt inNot availableNot availableNot availablePartly, or with a limitation
Re-places windows when a display is plugged in or unpluggedBuilt inNot availableBuilt inBuilt inBuilt inNot availablePartly, or with a limitationPartly, or with a limitationPartly, or with a limitation
Routes new windows as they openBuilt inPartly, or with a limitationBuilt inNot availablePartly, or with a limitationNot availableBuilt inBuilt inPartly, or with a limitation
Size and position per ruleBuilt inNot availableBuilt inPartly, or with a limitationBuilt inPartly, or with a limitationBuilt inPartly, or with a limitationPartly, or with a limitation
Map of every display and desktop; drag a window to assign itBuilt inPartly, or with a limitationNot availableNot availableNot availableNot availableNot availableNot availableNot available
Temporary pin for one windowBuilt inNot availableNot availableNot availableNot availableNot availablePartly, or with a limitationNot availablePartly, or with a limitation
Timed free move for a pinned windowBuilt inNot availableNot availableNot availableNot availableNot availableNot availableNot availablePartly, or with a limitation
Switchable profilesBuilt inNot availableBuilt inPartly, or with a limitationPartly, or with a limitationBuilt inNot availablePartly, or with a limitationPartly, or with a limitation
Automation from outside (URL, AppleScript or CLI)Built inPartly, or with a limitationBuilt inBuilt inPartly, or with a limitationPartly, or with a limitationBuilt inBuilt inPartly, or with a limitation
No config file or script to writeBuilt inBuilt inBuilt inBuilt inBuilt inBuilt inNot availableNot availableNot available
  1. Rules match the window title, not just the app

    • Deskmap: Built in
    • macOS: Not available
    • Rectangle Pro: Built in
    • Moom: Partly, or with a limitation
    • Stay: Built in
    • ShiftPlus: Not available
    • yabai: Built in
    • AeroSpace: Built in
    • Hammerspoon: Partly, or with a limitation
  2. Sends a window to a chosen native desktop (Space)

    • Deskmap: Built in
    • macOS: Partly, or with a limitation
    • Rectangle Pro: Not available
    • Moom: Not available
    • Stay: Not available
    • ShiftPlus: Partly, or with a limitation
    • yabai: Built in
    • AeroSpace: Not available
    • Hammerspoon: Partly, or with a limitation
  3. …with System Integrity Protection left on

    • Deskmap: Built in
    • macOS: Built in
    • Rectangle Pro: Does not apply
    • Moom: Does not apply
    • Stay: Does not apply
    • ShiftPlus: Partly, or with a limitation
    • yabai: Built in
    • AeroSpace: Does not apply
    • Hammerspoon: Partly, or with a limitation
  4. Separate targets per display setup

    • Deskmap: Built in
    • macOS: Not available
    • Rectangle Pro: Partly, or with a limitation
    • Moom: Built in
    • Stay: Built in
    • ShiftPlus: Not available
    • yabai: Not available
    • AeroSpace: Not available
    • Hammerspoon: Partly, or with a limitation
  5. Re-places windows when a display is plugged in or unplugged

    • Deskmap: Built in
    • macOS: Not available
    • Rectangle Pro: Built in
    • Moom: Built in
    • Stay: Built in
    • ShiftPlus: Not available
    • yabai: Partly, or with a limitation
    • AeroSpace: Partly, or with a limitation
    • Hammerspoon: Partly, or with a limitation
  6. Routes new windows as they open

    • Deskmap: Built in
    • macOS: Partly, or with a limitation
    • Rectangle Pro: Built in
    • Moom: Not available
    • Stay: Partly, or with a limitation
    • ShiftPlus: Not available
    • yabai: Built in
    • AeroSpace: Built in
    • Hammerspoon: Partly, or with a limitation
  7. Size and position per rule

    • Deskmap: Built in
    • macOS: Not available
    • Rectangle Pro: Built in
    • Moom: Partly, or with a limitation
    • Stay: Built in
    • ShiftPlus: Partly, or with a limitation
    • yabai: Built in
    • AeroSpace: Partly, or with a limitation
    • Hammerspoon: Partly, or with a limitation
  8. Map of every display and desktop; drag a window to assign it

    • Deskmap: Built in
    • macOS: Partly, or with a limitation
    • Rectangle Pro: Not available
    • Moom: Not available
    • Stay: Not available
    • ShiftPlus: Not available
    • yabai: Not available
    • AeroSpace: Not available
    • Hammerspoon: Not available
  9. Temporary pin for one window

    • Deskmap: Built in
    • macOS: Not available
    • Rectangle Pro: Not available
    • Moom: Not available
    • Stay: Not available
    • ShiftPlus: Not available
    • yabai: Partly, or with a limitation
    • AeroSpace: Not available
    • Hammerspoon: Partly, or with a limitation
  10. Timed free move for a pinned window

    • Deskmap: Built in
    • macOS: Not available
    • Rectangle Pro: Not available
    • Moom: Not available
    • Stay: Not available
    • ShiftPlus: Not available
    • yabai: Not available
    • AeroSpace: Not available
    • Hammerspoon: Partly, or with a limitation
  11. Switchable profiles

    • Deskmap: Built in
    • macOS: Not available
    • Rectangle Pro: Built in
    • Moom: Partly, or with a limitation
    • Stay: Partly, or with a limitation
    • ShiftPlus: Built in
    • yabai: Not available
    • AeroSpace: Partly, or with a limitation
    • Hammerspoon: Partly, or with a limitation
  12. Automation from outside (URL, AppleScript or CLI)

    • Deskmap: Built in
    • macOS: Partly, or with a limitation
    • Rectangle Pro: Built in
    • Moom: Built in
    • Stay: Partly, or with a limitation
    • ShiftPlus: Partly, or with a limitation
    • yabai: Built in
    • AeroSpace: Built in
    • Hammerspoon: Partly, or with a limitation
  13. No config file or script to write

    • Deskmap: Built in
    • macOS: Built in
    • Rectangle Pro: Built in
    • Moom: Built in
    • Stay: Built in
    • ShiftPlus: Built in
    • yabai: Not available
    • AeroSpace: Not available
    • Hammerspoon: Not available

In short

The short version.

Rectangle Pro and Stay come closest, but neither moves a window to another desktop. yabai does, from a shell script. The map, temporary pins and timed free move are built into none of them.

Closest

Rectangle Pro and Stay

Both match window titles and re-place windows when a display is plugged in or unplugged, but neither moves a window to another desktop.

With a script

yabai

It does send windows to another desktop, with System Integrity Protection on since 7.1.25 on recent macOS. Re-placing on display changes is a script you write, and everything is configured from the command line.

Only in Deskmap

The map, temporary pins and timed free move.

None of the other eight tools has them built in.

Notes · Sources

Notes and sources.

Checked on 30 September 2026 against each product’s own documentation.

macOS

Dock › Options › Assign To pins a whole app, not a window, to the desktop you are on; you cannot choose a desktop by number, and a new window follows only its app's assignment. Mission Control shows one desktop's windows at a time and a drag there is a one-off move. Shortcuts has Move Window and Resize Window actions, but there are no rules to trigger.

Sources

Rectangle Pro

Layout entries match by title and can apply when a window opens or when a chosen display connects or disconnects. Those are triggers per display event, not setups stored side by side. It does not move windows between desktops.

Moom 4

Saved layouts are snapshots: windows are matched by title only when a layout is applied, the geometry is the saved frame, and a window opened later is not routed. Layouts can trigger on a display configuration. Several named layouts exist, but no profiles that group rules.

Stay

Stores window frames per display combination and restores them when displays change; titles are matched with regular expressions. Windows are restored when their app launches, but a window opened later in a running app is not routed. The stored sets follow the display setup; there are no profiles you switch yourself. Automation is basic AppleScript and hot keys.

ShiftPlus

A workspace is restored by hotkey: apps are launched on their assigned Space, and an app already on the wrong Space is quit and relaunched after asking; open windows are not moved. Arrangement presets are per app, applied on restore. Automation is a Raycast extension.

yabai

Rules match titles by regular expression and send windows to a Space with a grid position. Moving windows between Spaces works with System Integrity Protection on since 7.1.25 (May 2026) on recent macOS; older systems need the scripting addition. Display signals fire, but re-placing is a script you write. --one-shot rules apply once to the next matching window; they are not tied to one window. Everything is configured from the command line.

Sources

AeroSpace

Uses its own virtual workspaces instead of native desktops. on-window-detected rules match titles and run for every new window, in a TOML config. Workspaces are re-assigned to monitors on reconnect; single windows are not re-placed. Rules choose tiling or floating, not a size or position (#714). Binding modes switch key sets, not window rules.

Sources

Hammerspoon

A scripting framework: every “partly” mark means "possible if you write the Lua". Nothing here works out of the box, and moving windows between Spaces is reported unreliable on macOS 15 and later in released builds (#3889).

Out of date?

Products change. If something here is out of date, open an issue.