Repository navigation
0.5.0 (30 September 2026) was the first release with a download. 0.6.0
collects everything since: desktop names that follow their desktop, a second
external monitor with its own role, pin groups, your own layouts, multi-step undo,
automatic backups, a scriptable CLI, and a website. Nothing here needs a new permission; the
Accessibility permission you already granted keeps working as long as the app
is signed the same way (see Upgrading).
Install
- Download
Deskmap-0.6.0.zip(or the.dmg) below, unzip it and dragDeskmap.appto/Applications. - The app is not notarized, so macOS blocks the first launch. Open it once, then go to System Settings › Privacy & Security and click Open Anyway.
- Click Grant Access and turn on Deskmap under Accessibility.
Universal build (Apple silicon and Intel), macOS 13 or later. After updating, macOS asks for the Accessibility permission again. Desktop moves use a private macOS API, so a macOS update may break them until Deskmap catches up.
Highlights
- A second external monitor keeps its own layout. Each monitor is known by
its display UUID, not by where it stands, so swapping cables or display
arrangement no longer moves pins to the other monitor. - Desktop names belong to a desktop, not a number. A name follows its
desktop across displays, reordering and plug/unplug; pins can target a name. - Pin groups: collect pins under a name and move, open or close them as
one. - Your own layouts in Settings › Layouts, drawn on the grid and named.
- Undo as many steps as you like (⌘Z / ⇧⌘Z), with a change history.
- Automatic backups of profiles, pins and names, with restore in Settings.
deskmapcommand line tool,status.jsonanddeskmap://commands for
scripts and agents.- Open or close a whole workspace from the map with one click.
- Desktop moves start off on macOS 15 and 26.0–26.3 until you choose
Try Anyway, because they are not verified there yet.
Upgrading from 0.5.0
Permissions. No new permission. Accessibility is still the only one. macOS
ties the grant to the code signature: with the same ad-hoc signing as 0.5.0 it
is asked again after each update (as before); if 0.6.0 is the first build
signed with a Developer ID, it is asked once more and then stays.
First launch. Unless the release is notarized, macOS blocks the first
launch as with 0.5.0: open the app once, then System Settings › Privacy &
Security › Open Anyway. See the download page
or the README.
Data files. rules.json moves from schema 4/5 to schema 6 on first
launch. The old files are saved to Backups/pre-migration/ (never pruned);
names are matched to desktops by where their pinned windows are; wrongly
created deleted-desktop rows are removed and their pins restored. A card
reports the result and offers Remove N empty desktops and Undo
upgrade. Nothing is moved or removed during the upgrade. An older Deskmap
opens the new file read-only, so keep 0.5.0 around only if you want to go
back, and go back through the pre-migration copy. Runtime desktop facts moved
to desktop-state.json. Profile export is version 5 (pin groups included);
version 3 and 4 files still import. rules.json gets an optional displayRoles field (older versions
ignore it).
New settings.
| Setting | Where | Default | What it does |
|---|---|---|---|
| Try Anyway (desktop moves) | card in the main window, status.json desktopMoves |
off on macOS 15.x and 26.0–26.3, on elsewhere | turns desktop moves on; remembered |
| Backups | Settings › Backups | on, automatic | hourly / daily / weekly copies, restore |
| Monitor roles | second monitor card menu, deskmap screen-role |
learned from the first monitor | which physical monitor is Extra monitor / Monitor 2 |
Behaviour changes to expect.
- A new monitor asks once. After your first monitor has been learned, a
monitor Deskmap has not seen in that role is on hold: the card says layout
on hold and you choose Use as Extra monitor. Before 0.6.0 the layout went
there at once. - Windows keep their rule. A window stays with the pin that placed it even
when its title later matches another pin; only a strictly more specific pin
may still take it. Before 0.6.0 the newest matching title won. - Desktop moves card. On macOS 15.x and 26.0–26.3 the main window opens
with an orange card and desktop moves off until you click Try Anyway. - Names are per profile and per desktop. A name no longer has a number; a
new profile starts without names; plugging or unplugging a monitor applies
the setup's plan and may create desktops or remove empty leftover ones
beyond the plan. - Undo is no longer a 10-second link; ⌘Z steps back through this session's
changes, URL/CLI changes included. - Removing a desktop with windows asks first.
profile-backup.shis gone; backups are built in.
Full list: release notes · CHANGELOG.
SHA-256 of the zip: 54d9979424176235bac92ffcd183ff23c90c526f5f14d31247f3ad5b3c4cec62
This is a vibe-coded project: written by AI coding agents in Claude Code, directed by me.