leonardoaguiar.com Workspace

Workspace

Workspace is a menu bar app for macOS that snaps windows into zones, opens each app in the zone you give it, and saves the position of every window as a session you can restore later. It runs entirely on your Mac.

Until version 1.2.2 the app was called Workspace Manager.

Requirements and installation

Requirements

ItemRequirement
SystemmacOS 13 Ventura or later
ProcessorApple silicon (M1 or later); Intel Macs are not supported
SpaceAbout 12 MB
PermissionAccessibility, to move and resize windows
PriceFree

Installing

  1. Download the .pkg installer from leonardoaguiar.com/workspace.
  2. Open it and follow the installer. It puts the app at /Applications/Workspace.app.
  3. At the end, Workspace opens by itself as an icon in the menu bar.

Installing a newer version over an older one keeps your layouts, sessions, shortcuts and settings. If the app is open, the installer closes it and opens it again at the end.

Note: Workspace is not notarized by Apple yet. If macOS stops the installer, open System Settings › Privacy & Security, find the message about Workspace and click Open Anyway. This is only needed for the first installation.

Where your data lives

Layouts, saved sessions, shortcuts and the apps given to template zones are kept in ~/Library/Application Support/WorkspaceManager:

Settings are kept in the app's system preferences. Settings › Data › Show in Finder opens the data folder.

Uninstalling

Workspace has no uninstaller.

  1. To delete your layouts and sessions too, first use Settings › Data › Erase All… (or delete ~/Library/Application Support/WorkspaceManager after quitting).
  2. Quit the app: open the menu bar panel and click the power button (Quit Workspace).
  3. Drag Workspace from Applications to the Trash.

Getting started

First launch

Workspace lives in the menu bar. It has no Dock icon while its window is closed; with the window open, it shows in the Dock and in ⌘Tab. The installed copy turns on Launch at login the first time it runs; you can turn it off in Settings.

Only one copy runs at a time. Opening the app again while it runs (from Finder, Spotlight or Applications) brings up the main window.

Accessibility permission

macOS only lets an app move and resize other apps' windows with the Accessibility permission. Without it, drag-to-snap, Apply and the global shortcuts do not work.

  1. On first launch, the app asks for the permission.
  2. Turn on Workspace in System Settings › Privacy & Security › Accessibility.
  3. The app notices the change within a couple of seconds and starts snapping and shortcuts; no restart is needed.

The Dashboard (Grant Access) and Settings › Permissions (Grant Access…) ask again if the permission is off.

The menu bar icon

The icon is four tiles framed by four brackets. Click it to open the menu bar panel, which lists the layouts and the saved sessions (see Menu bar panel). Click it again, click anywhere outside the panel or press Escape to close the panel.

The panel's gear button (Open Workspace) opens the main window. The icon can be hidden in Settings; the app then opens from Spotlight or Applications, or with Open App (⌃⇧Space).

The main window

The main window is a metal bar near the top of the screen with the tabs Dashboard, Layouts, Sessions, Shortcuts and Settings. It opens with just the bar, every tab closed. Clicking a tab slides its page down under the bar; clicking the open tab again folds the page away.

While the window is open, the menus at the top of the screen are the app menu - About Workspace, Documentation, Check for Updates…, Stack Windows (see With the other Mac apps), Report a Bug… and Quit Workspace (⌘Q) - and Help, with Workspace Documentation, Changelog and Report a Bug….

Search on the bar, or ⌘F anywhere in the window, opens a page with one field over everything in the app: every setting, every shortcut, the Dashboard's sections and quick actions, the templates and your saved layouts and sessions, and the help pages.

Snapping in three steps

  1. Pick a layout: in the Dashboard click Choose Layout, or click a layout card in the menu bar panel.
  2. Drag any window. The zones light up as the pointer passes over them.
  3. Release over a zone. The window takes the zone's position and size.

Dashboard

The Dashboard with live instruments and the display map

The Dashboard shows what is on your screens and the state of snapping. Its readings refresh every 2 seconds, only while the Dashboard is open.

Status

The top plate shows one of three states:

StatusTitleWhat it means
access neededWindow snapping is offlineThe Accessibility permission is off. Grant Access asks for it.
standing byPick a layout to arm snappingNo layout is active.
snappingSnapping to layout nameDragged windows snap to this layout's zones.

A layout chosen here is active on the main display, or on the display it was already active on.

Dials

Display Map and Telemetry

Display Map draws your displays as they are arranged, each labeled with its number, resolution and window count, with every window to scale in its app's color and the active layout's zones dashed over them. Hover a window to see its app's name.

Telemetry shows the last 3 minutes of Windows, CPU and Memory. These numbers come from your own Mac and are not sent anywhere.

Quick Actions

App Distribution and Session Log

App Distribution lists the six apps with the most windows on screen, with each app's share; the rest are grouped as "more apps".

Session Log charts the window count of the last 14 saved sessions and lists the three most recent, each with a Restore button (Partial mode). Show All opens the Sessions tab.

Layouts

The layout editor with a layout of three zones

A layout is a set of zones drawn on a screen, in percentages of its usable area (the area inside the menu bar and the Dock), so the same layout fits any display. A layout has up to 16 zones. Each zone has a name, a position and size, a priority, a color and, optionally, apps.

Templates and saved layouts

The list at the left has two parts:

TemplateZones
Half SplitLeft, Right (50% each)
IDE LayoutEditor (65%), Sidebar and Terminal stacked at the right
ThirdsLeft, Center, Right
Thirds + RowThree tall zones on top, three short zones below
Quad GridFour quarters
Grid 3×3Nine equal cells, named by row and column
Tall + StackLeft half, three zones stacked at the right
Focus + AuxFocus (70%), Auxiliary (30%)
Ultrawide DevReference (25%), Editor (50%), Tools (25%)

Click a template or a saved layout to open it in the editor. The open one stays highlighted.

Templates cannot be redrawn: their zones, names, positions, sizes, priorities, colors and spacing are locked. You can give their zones apps, which are kept with the template. Save Copy (⌘S) saves the template as a new layout with the same name (numbered if the name is taken, for example "Thirds 2"), which you can then change.

Editor bar

ControlWhat it does
Sidebar buttonHides or shows the layout list (⌃⌘S).
DisplayShown with more than one display: picks the display whose shape the canvas shows and where Apply places windows.
SpacingOpens the gaps of the layout: Between windows (gutters) and Screen edges (margins), 0 to 32 pt in steps of 2, with a preview. Disabled for templates.
Grid (#)Shows a 12 × 8 grid on the canvas (⌘G).
ApplyOpens each zone's apps and puts their windows in the zones (see Apply). Disabled until a zone has an app.
ClearRemoves every zone from the layout. Disabled for templates.
SaveSaves the layout (⌘S). Lit only when there are unsaved changes. For a template, this button is Save Copy.

Spacing applies when windows snap to the layout; click Save to keep it. Saving the active layout updates snapping immediately.

Canvas

The canvas shows the selected display in its real proportions, with the layout's name, the zone count ("N / 16 zones", plus "template" or "unsaved") and the display's resolution and scale above it.

Each zone shows its name, its size in percent and, if it has apps, their icons with the name of the one on top.

The column at the right of the canvas has three switches:

Below the switches, Preview shows the layout in miniature with the display's type and resolution.

Zone properties

With a zone selected, the panel under the canvas shows its properties. With none selected, it shows tips.

PropertyDescription
NameThe zone's name, shown on the canvas and in the snap overlay.
DuplicateCopies the zone, offset by 5%, with the same color and apps (⌘D). Disabled at 16 zones.
DeleteRemoves the zone.
Position X, YThe zone's top-left corner, in % of the screen's width and height. Press Return to apply.
Size W, HThe zone's width and height, in % of the screen (5 to 100). Press Return to apply.
Priority1 to 99. Where zones overlap, the lower number gets the window. Also sets the zone order for Apply and for the zone shortcuts.
ColorBlue, Purple, Green, Orange, Pink, Teal, Yellow, Red, Indigo, Cyan, Mint or Brown.
AppsThe apps whose windows go in this zone when the layout is applied.

For a template, only Apps can be changed, and the panel shows a Template badge.

Apps in a zone

Click the Apps field (it reads "Pick apps" when empty) to open the zone's app list:

There is no limit to the number of apps in a zone. An app that is not installed on this Mac shows a dashed icon and is skipped by Apply.

Apply

Apply puts each zone's apps in their zones on the display picked in the editor:

  1. An app that is not running is opened.
  2. A window already in its zone (covering at least 80% of the zone, and the zone at least 80% of the window) stays where it is.
  3. The app's other windows on that display go to the zones nearest them.
  4. Zones still empty get new windows, through the app's ⌘N menu item, or by typing ⌘N when it has none.
  5. An app that will not open another window gives up one of its windows from another display.
  6. Windows in the same zone are stacked: the first app in the zone's list ends up on top.

Zones are filled in order of priority. While one Apply is running, the Apply buttons are disabled.

Sessions

Sessions, with a saved session across two displays

A session remembers where every window was on every display. Sessions are only saved when you ask; nothing is saved automatically.

Saving a session

A session includes the windows visible on screen at that moment: minimized windows and Workspace's own windows are not included.

Saved Sessions

The list at the left shows every saved session, newest first, with its name, when it was saved ("Today, 17:40", "Yesterday, 09:12" or a date) and its window count. Click a session to see its details.

Session details

Restore modes

ModeWhat it does
FullOpens the apps that are not running, waits two seconds, then moves and resizes all windows. The default in the Sessions tab.
PartialMoves and resizes only the windows of apps that are open. Used by the menu bar panel, the Dashboard and the Restore Last Session shortcut.
Position OnlyMoves windows to their saved positions without resizing them.

Each saved window is matched to an open window of the same app: first one still exactly at the saved position, then one with the same title, then the one closest to the saved position. Each open window is used once, so apps with several windows get each one back in its place.

Shortcuts

Shortcuts, with the window actions and their keys

The Shortcuts tab lists 23 global keyboard actions, grouped as Window, Layout, Session and App. They work in any app and need the Accessibility permission. Window actions act on the focused window of the app in front, using the active layout's zones on that window's display.

Default shortcuts

ActionDefaultWhat it does
Move Window to Next Zone⌃⌥→Moves the window to the next zone, going round. From outside any zone, to the first.
Move Window to Previous Zone⌃⌥←Moves the window to the previous zone, going round. From outside any zone, to the last.
Move Window to Next Monitor⌃⌥MMoves the window to the next display, left to right. Into the same zone there if it is in one; otherwise at the same relative place and size.
Move Window to Zone 1 … 9⌃⌥1 … ⌃⌥9Puts the window in that zone.
Float WindownonePuts the window back where it was before a shortcut first moved it. A window no shortcut moved is centered at 60% × 70% of the screen.
Maximize in Zone⌃⌥FFills the zone the window is in, or the whole usable screen when it is in no zone.
Center in Zone⌃⌥CCenters the window in its zone (or the screen), keeping its size, no bigger than the zone.
Reapply Layout⌃⌥RIf the active layout has apps, applies it again (same as Apply). Otherwise, moves every window on screen back into the zone it mostly covers.
Cycle Next Layout⌃⌥LMakes the next template or saved layout the active one, in the order of the menu bar panel.
Cycle Previous Layout⌃⌥⇧LMakes the previous layout the active one.
Save Session⌃⌥SSaves a new session named "Session N".
Restore Last Session⌃⌥⇧SRestores the most recent session in Partial mode.
Open Menu Bar⌃⇧WOpens or closes the menu bar panel. With the icon hidden, opens the main window.
Open App⌃⇧SpaceOpens the main window.
Toggle Overlay⌃⌥OShows or hides the active layout's zones on screen.

Zones are numbered by priority (lower first), and in the layout's order where the priority is the same.

A short notice near the top of the screen confirms what a shortcut did (the layout it switched to, the session it saved) or why it could not act: "No layout active", "No zone N", "No saved sessions". When the focused window cannot be found, or Workspace itself is in front, the Mac beeps.

Changing a shortcut

  1. Double-click the keys of an action (or RECORD… for an action with no keys).
  2. When the row shows PRESS SHORTCUT…, press the new combination.
  3. To stop without changing it, press Escape or click Cancel Recording.

A shortcut needs at least one modifier key (⌃, ⌥, ⇧ or ⌘). ⌘Q, ⌘W, ⌘H, ⌘M and ⌘Tab are reserved by the system. A combination already used by another enabled action is refused with the name of that action. Recording a shortcut also turns the action on.

Other controls

Settings

Settings with General, Snapping, Permissions and Data

General

SettingDescription
Launch at loginStarts the app in the menu bar when you log in. On by default. Only available for the copy installed in Applications.
Show icon in the menu barShows or hides the menu bar icon. When it is hidden, open Workspace again from Spotlight or Applications to get to the window.

Check for updates automatically (with Check Now) and Install updates automatically are described under Updates below; Send anonymous usage statistics under Usage statistics and privacy.

Snapping

SettingDescription
Show zonesAlways: the active layout's zones stay drawn on screen. While dragging: they appear only while a window is being dragged. Default: Always.
Snap distanceHow far outside a zone (in a gap between zones or by the screen's edge) a window can be dropped and still snap into it. 0 to 60 pt in steps of 5; 0 is Off. Default: 20 pt.

Permissions

Accessibility shows Granted or Not granted. When not granted, Grant Access… asks for the permission and opens System Settings at Privacy & Security › Accessibility.

Data

About

The About page, a technical drawing of the app

The About page opens from the i button on the bar or from About Workspace in the app menu. It shows the version and build, a nameplate with the model, version, system and maker, and a link to leonardoaguiar.com.

The menu bar panel with templates and sessions

The panel opens under the menu bar icon and works on the display where you clicked it: previews, snapping and Apply happen on that display.

The logo, the app's name, the name of the display and the version. The gear button (Open Workspace) opens the main window; the power button (Quit Workspace) quits the app.

Layouts

Every template and saved layout appears as a card with a miniature of its zones.

Sessions

The saved sessions, newest first, by name (five are shown; the rest scroll).

Snapping windows

Drag to snap

With a layout active, drag any window by its title bar. Once the pointer has moved about 10 pt, the zone under the pointer lights up and shows "Release to place here". Release, and the window takes the exact position and size of the zone, with the layout's spacing; the zone flashes.

Showing the zones

With Show zones set to Always, the active layout's zones stay drawn on the display where it was chosen, as dashed outlines with their names. With While dragging, they appear on the display of the drag and disappear after the drop. Toggle Overlay (⌃⌥O) shows or hides them at any time.

Turning snapping off

Snapping stays on until you turn it off. Any of these turns it off:

Quitting Workspace moves nothing. Snapping and the shortcuts stop until it is opened again.

Keyboard shortcuts

The global shortcuts are listed under Shortcuts. These keys work inside the app:

KeysWhereAction
⌘WMain windowClose the window
⌘FMain windowSearch the app
↑ ↓ ReturnSearchMove through the results, open one
EscapeSearchClear the field, then close the page
⌘QMain windowQuit Workspace
⌃⌘SLayoutsHide or show the layout list
⌘GLayoutsShow or hide the grid
⌘SLayoutsSave the layout (Save Copy for a template)
⌘DLayoutsDuplicate the selected zone
DeleteLayoutsDelete the selected zone
EscapeLayoutsDeselect the zone
ReturnName and number fieldsConfirm the name or value
EscapeRenaming a layoutCancel
EscapeShortcutsCancel recording
EscapeMenu bar panelDrop the session name being typed, or close the panel
EscapeAny app, with a layout activeTurn snapping off
⌘X ⌘C ⌘V ⌘A ⌘Z ⇧⌘ZText fieldsCut, copy, paste, select all, undo, redo

Troubleshooting

Accessibility is on, but nothing snaps

The permission in System Settings can belong to an older copy of the app. Open System Settings › Privacy & Security › Accessibility, select Workspace, remove it with the − button, then add /Applications/Workspace.app again with + (or click Grant Access… in Settings) and turn it on. The app picks up the permission within a couple of seconds.

A dragged window does not snap

A shortcut does nothing or beeps

A new shortcut is not accepted

It needs at least one modifier key, cannot be ⌘Q, ⌘W, ⌘H, ⌘M or ⌘Tab, and cannot be the same as another enabled action. The message under the keys says which.

Apply is greyed out or leaves a zone empty

A session restore misses some windows

The template cannot be changed

Templates cannot be redrawn; only their zones' apps can be set. Click Save Copy to make an editable layout from it.

A layout cannot be renamed

The name is empty or another layout already has it (ignoring case). Choose a different name.

The menu bar icon is gone

Show icon in the menu bar is off. Open Workspace from Spotlight or Applications (or press ⌃⇧Space), go to Settings and turn it on.

Launch at login cannot be turned on

The switch only works for the copy installed in /Applications. Install the app with the .pkg from the website.

Import says the file isn't a backup

Import only reads files made by Export… in Settings › Data.

With the other Mac apps

Workspace, Manager, Clipboard and Network work as one when more than one is installed.

Updates

Workspace checks leonardoaguiar.com for a new version once a day. This is on from the start; turn it off in Settings › Check for updates automatically.

Help and bug reports

The Help menu and the Help plate on About have:

Report a Bug

FieldWhat goes in it
KindBug, Crash or Suggestion.
How oftenEvery time, Sometimes or Once (not for a suggestion).
TitleA few words about the problem, up to 140 characters.
What happenedWhat you were doing and what you saw (for a suggestion: what you'd like the app to do).
Steps to reproduce · optionalHow to make it happen again, one step per line.
What you expected · optionalWhat should have happened instead.
Email · optionalTo hear back by email; never published or shared.
AttachmentsUp to 5 files of up to 10 MB each: drop them on the field or click Add Files…. Screenshots, screen recordings and logs help the most.
Include system informationOn by default: the app's version and build, the macOS version, the Mac's model, processor and memory, and the language. Show displays exactly what goes.

Send Report (⌘↩) is ready once there's a title and a description; until then the line beside it says what's missing. It sends everything as one report and shows its number; Clear empties the form. Sending takes a moment of the Mac's work first, which keeps the site from being flooded with automated reports.

Your Reports

The reports sent from this Mac are listed next to the form, with their status - received, confirmed, in progress, fixed (with the version that fixes it) or closed - and an orange lamp when there's a reply you haven't read. Click a report to read the conversation and add more details. Remove from This List takes it off this Mac's list; the report stays with the developer. The list is refreshed each time the page opens, or with the button next to its title.

Usage statistics and privacy

Workspace sends anonymous usage statistics to leonardoaguiar.com once a day. They're on by default and help decide what to fix and improve. Settings › Send anonymous usage statistics turns them off, and whatever was waiting to be sent is discarded.

What goes: the app's version, the macOS version, the Mac's model identifier (such as Mac15,3), the processor type, the language, a few settings that are on or off (such as checking for updates on its own), how many times the app was opened, the minutes its window was open, and how many times each tab and function was used, counted per day. With it goes an identifier that is random, made by the app and used only for this.

What never goes: names, window titles, app names, layouts or sessions, files, and anything you type. The site records the country the statistics come from, not the IP address.

Besides the statistics, Workspace connects to leonardoaguiar.com only to check for and download updates, to show the changelog, and to send a bug report when you write one and to check its replies.