StackWM Documentation

How to use StackWM

Everything you need to master zones, stacks, and scenes — from first install to advanced multi-display setups.

🚀

Getting Started

Install StackWM, grant permissions, and place your first window in under five minutes.

Installation

  1. Download StackWM from stackwm.org.
  2. Open the .dmg file and drag StackWM.app into your Applications folder.
  3. Launch StackWM. A menu-bar icon will appear in the top-right corner of your screen.

StackWM includes a 7-day free trial with full functionality. No credit card is required. After the trial you can purchase a license from the app or the website.

Required Permissions

StackWM needs two macOS permissions to manage your windows. You will be prompted on first launch.

PermissionWhy it's neededHow to grant
AccessibilityMove, resize, and stack windows across zonesSystem Settings → Privacy & Security → Accessibility → enable StackWM
Screen RecordingDetect window positions and display the Scene Card Switcher overlaySystem Settings → Privacy & Security → Screen Recording → enable StackWM

Both permissions are mandatory. If either is missing, StackWM will show a reminder dialog on launch.

First Zone Setup

Once permissions are granted, StackWM activates with a default zone layout. Try this:

  1. Focus any window and press 1 to push it into Zone 1.
  2. Focus a different window and press 2 to push it into Zone 2.
  3. Press Tab to cycle windows inside the currently focused zone.

That's it. You now have two zones, each with its own window stack. Read on to learn about layouts, scenes, and multi-display.

Core Concepts

Understand Zone, Stack, and Scene — the three building blocks of StackWM.

Zones

A Zone is a named region on your screen. StackWM divides each display into up to 9 zones. Each zone acts as an independent container for application windows.

You define zone positions and sizes in the Layout Editor. Zones can tile the entire screen (like a grid) or overlap however you prefer. Each connected display can have its own independent zone layout.

Push any window into a zone with 19, or drag it while holding (via SDP).

Stacks

Every zone maintains a LIFO (last-in, first-out) window stack. When you push multiple windows into the same zone, they layer on top of each other. The most recently pushed window sits on top.

Press Tab to cycle through the stack in the currently focused zone. Each press brings the next window to the front. You can also hold and scroll the mouse wheel to cycle windows in the zone under the cursor (requires SDP to be enabled).

This lets you keep multiple windows in the same screen area and flip between them instantly, without reaching for the Dock or Mission Control.

Scenes

A Scene is a saved workspace snapshot. It records:

  • Which zone layout to use on each display
  • Which apps belong in which zones

When you switch scenes, StackWM parks windows that don't belong in the target scene (moves them off-screen) and restores the target scene's windows to their assigned zones. Apps are never quit or hidden — they're simply moved out of view.

Think of scenes as virtual desktops with memory: “Coding,” “Design,” “Communication” — each with its own layout and app arrangement, switchable in an instant.

How They Work Together

The three concepts form a hierarchy:

Scene
  └─ Display 1 → Layout A
  │   ├─ Zone 1 → [App A, App B] (stack)
  │   ├─ Zone 2 → [App C]
  │   └─ Zone 3 → [App D, App E]
  └─ Display 2 → Layout B
      ├─ Zone 1 → [App F]
      └─ Zone 2 → [App G]

A Scene ties one Layout to each display. Each layout defines Zones. Each zone holds a Stack of windows. Switch scene and the entire tree swaps atomically.

⌨️

Hotkey Reference

Full list of default shortcuts and how to customize them.

Zone & Stack Shortcuts

ShortcutAction
19Push the active window to zone 1–9
QPush window to the left neighboring zone
WPush window to the right neighboring zone
TabCycle windows forward in the current zone's stack
TabCycle windows backward in the current zone's stack
ZMove window to the previous display
XMove window to the next display
QFocus the left neighboring zone
WFocus the right neighboring zone

Switcher & Scene Shortcuts

ShortcutAction
AOpen the Windows Switcher (full-screen Cmd-Tab style picker)
COpen the Scene Card Switcher (visual card UI)
SSave the current window layout as a new scene

Customizing Hotkeys

Every shortcut in StackWM is customizable.

  1. Open Preferences from the menu-bar icon.
  2. Select the Shortcuts tab.
  3. Click on any shortcut field and press your desired key combination.
  4. To clear a binding, click the field and press Delete.

There is also an “Update Active Scene” action available in the Shortcuts tab. Assign it a shortcut to quickly re-save the current window arrangement over the active scene.

🖱

Stack Direct Protocol (SDP)

Mouse-driven window management: drag, swap, scroll-cycle, and right-click to switch.

What is SDP?

SDP (Stack Direct Protocol) is StackWM's mouse-driven control layer. When SDP is enabled, holding modifier keys lets you move windows, swap them between zones, cycle stacks with the scroll wheel, or open the Windows Switcher — all without touching a keyboard shortcut.

Toggle SDP on or off in Preferences → General (under the Stack Direct Protocol section).

SDP Actions

GestureAction
+ dragMove window from anywhere (not just the title bar)
+ dragSwap the dragged window with the top window in the target zone
+ scrollCycle through the stack in the zone under the cursor
+ right-clickOpen the Windows Switcher

An “Invert scroll direction” option is available in Preferences if your scroll direction feels reversed.

Layout Editor

Draw and save custom zone layouts for any screen size or aspect ratio.

Opening the Editor

To open the Layout Editor:

  • Open Scene Manager from the menu-bar icon, select a display in the Displays section, then click Edit Grid.
  • Open the Scene Card Switcher (C), then click the edit button in the top-right corner of a scene card.

The editor opens as a full-screen overlay showing a scaled representation of your display.

Creating & Editing Zones

  1. Add a zone — press V for a vertical split or H for a horizontal split, then click the zone you want to divide.
  2. Resize — drag any edge or corner handle.
  3. Move — drag the zone body to reposition it.
  4. Delete — select a zone and press Delete or click the remove button.

You can create up to 9 zones per display. Zones can overlap if you want layered areas.

Saving & Using Layouts

Click Save to store your layout. Give it a descriptive name (e.g., “Ultrawide 3-col”). Saved layouts appear in the layout picker whenever you create or edit a scene.

Each display can use a different layout. For example, your main monitor might use a 3-column layout while a vertical side monitor uses a 2-row layout.

Scene Management

Create named workspaces that remember which app goes in which zone.

Creating a Scene

  1. Arrange your windows the way you want them across your zones.
  2. Press S (or use the menu-bar → Save Current Scene...).
  3. Name the scene (e.g., “Coding,” “Design,” “Writing”).

StackWM opens a save dialog showing the current window arrangement. You can review and adjust zone assignments before naming and saving the scene.

Switching Scenes

There are multiple ways to switch:

  • Scene Card Switcher — press C to open a visual card UI. Click a card or press 19 to switch.
  • Scene Manager — click the menu-bar icon → Scene Manager. Select a scene to browse and configure its layout.

When you switch, StackWM parks windows that don't belong in the target scene (moves them off-screen) and restores the target scene's windows to their assigned zones. No apps are quit or hidden.

Updating a Scene

After rearranging windows, you can re-save the current layout over the active scene:

  1. Open Preferences → Shortcuts.
  2. Assign a shortcut to the Update Active Scene action.
  3. Press that shortcut whenever you want to overwrite the active scene with the current arrangement.

Parked Windows & the Windows Switcher

Windows that are parked (belong to a different scene) are not lost. Press A to open the Windows Switcher, a full-screen Cmd-Tab style picker.

The switcher shows both active and parked windows. Selecting a parked window moves it back on-screen to the center of your display.

🖥

Multi-Display

Configure independent zone layouts for each connected monitor.

Per-Display Layouts

Each connected display gets its own independent zone layout. A scene stores one layout reference per display, so switching scenes can change layouts on all monitors simultaneously.

To configure, open Scene Manager from the menu bar (or use the edit button on a scene card in the Scene Card Switcher), select the target display in the Displays section, then click Edit Grid.

Moving Windows Between Displays

ShortcutAction
ZMove the active window to the previous display
XMove the active window to the next display

The window is placed into the same-numbered zone on the target display (or Zone 1 if the target layout has fewer zones).

Hot-Plug Support

When a new display is connected while a scene is active, StackWM detects it and shows a toast notification offering one-click apply. Click the toast to extend the active scene onto the newly connected display using its assigned layout.

If the current scene has no layout assigned for the new display, the toast offers to open Scene Manager so you can configure one.

🔧

Troubleshooting

Common issues and how to resolve them.

App Compatibility

Some apps have limited compatibility with macOS Accessibility APIs, which may affect how StackWM detects or snaps their windows. Known examples include Telegram, Brave Browser, Obsidian, and Arc Browser.

If an app's window does not respond as expected, try adding it to the App Compatibility list in Preferences → General. This lets StackWM bypass title-bar detection and improves drag-to-zone behavior for that app.

For a full breakdown of known issues and workarounds, see the App Compatibility article in the blog.

Permissions Not Working

If StackWM cannot control windows after granting permissions:

  1. Open System Settings → Privacy & Security → Accessibility.
  2. Remove StackWM from the list (click the “−” button).
  3. Re-add it (click “+” and select StackWM from Applications).
  4. Repeat for Screen Recording if needed.
  5. Restart StackWM.

macOS sometimes caches stale permission grants after app updates. Removing and re-adding the entry forces a refresh.

Windows Not Restoring on Scene Switch

If some windows don't return to their zones after switching scenes:

  • The app may have been quit. StackWM can only restore windows for apps that are currently running. Re-launch the app and switch scenes again.
  • The app may not support Accessibility. See the App Compatibility section above.
  • The window may be minimized. StackWM will attempt to unminimize windows during scene restore, but some apps resist this. Manually unminimize the window and try again.

Can't find what you need? Contact support

← Back to StackWM