Bantamware★Every byte weighs in
◂ Back to TopSnap
TopSnap app icon

TopSnap · Version 1.19.3

TopSnapUser guide.

Showing TopSnap for

On Windows, TopSnap works the same way: keys show as Ctrl+Alt, Command is Ctrl, Option is Alt, the yellow button is the minimize button, and the menu bar menu is TopSnap’s menu in the notification area. Where the Mac needs a permission, Windows needs nothing.

TopSnap gives every window a place. You pick a layout for each display, drop windows into its regions, and TopSnap keeps them there: shared edges resize together, several windows can share one spot, and whole arrangements, apps included, come back with one shortcut.

This guide covers everything TopSnap does, as of version 1.19.3.

★ 01

Getting set up

Video: getting started, from the permissions to placing windows, stacks and layouts
  1. Download TopSnap from the TopSnap page, open the ZIP, and move TopSnap.app to Applications. It needs macOS 26 or later on Apple silicon.
  2. Open it. TopSnap lives in the menu bar; there’s no Dock icon. Getting Started opens on first launch with a short video (Skip or Esc ends it, and Watch the Video plays it again), and Take the Tour walks through everything else in five short pages (also in the menu bar, and after updates from What’s New).
  3. Click Enable Window Control and turn TopSnap on in System Settings (Privacy & Security → Accessibility, called Device Control and Data Access on macOS 27). This is what lets TopSnap move and resize other apps’ windows.
  4. Turn off macOS’s own tiling: System Settings → Desktop & Dock → Windows, turn off Drag windows to screen edges to tile and Drag windows to menu bar to fill screen. Otherwise macOS can retile a window right after TopSnap places it. TopSnap shows Turn Off macOS Tiling… at the top of its menu while either is on.
  5. Optional: Settings… → General → Enable Window Previews… (Screen Recording) shows window previews in pickers and the switcher and powers the 3D Cards, Genie, Tornado, Melt and Disintegrate transitions. Everything else works without it; Getting Started offers it too.
  6. Optional, in Settings… → General: Start TopSnap at login, and Check for updates automatically.

★ 02

The four ideas

IdeaWhat it isHow you reach it
RegionOne slot of a display’s layout.Drag to the top of the display, drop onto a region, ⌃⌥P, Snap Assist
StackSeveral windows sharing one region, one in front.The badge under the traffic lights, the yellow button, the scroll wheel, ⌃⌥S, ⌃⌥] and ⌃⌥[
SpanOne window covering several regions, with the others stacked behind it.⌘-drag a window’s edge; Move Spanning Window Behind (⌃⌥B)
LayoutA display’s whole arrangement, optionally with the apps that live in each region.Choose a Layout, the gallery (⌃⌥Z), ⌃⌥1–9, Switch Layout

Each display has its own layout. Snapping a window into a region that already has one makes a stack; TopSnap never closes or hides a window.

★ 03

Placing windows

Drag to the top

Drag a window by its title bar to the top center of a display. The layout picker drops down with every layout and its regions. Keep holding, move onto a region (a full-size outline shows exactly where the window will go), and release.

Then Snap Assist opens in every empty region: each shows the other windows on that display. Click one to put it there; it disappears from the other regions’ choices. Leave empty skips a region, and Done or Escape closes the rest.

In the picker, 1–9 jump to a layout and the arrow keys pick a region.

Video: dragging to the top, choosing a spot, filling the rest with Snap Assist, then Put Back

Drag onto a region

Once a display has a layout, you can drag a window straight onto its regions.

  • An empty region takes the window anywhere inside it. Rest there briefly and release.
  • An occupied region shows the drop menu: big tiles in the middle of the region, floating above the window you’re dragging. Rest briefly for them to appear, drag onto a tile (it highlights, then fills in when it’s ready), and release.
TileWhat happensWhen it’s offered
Add to StackYour window goes in front of the region’s stack.Always
Left Half / Right HalfThe region splits side by side; your window takes that half and the region’s windows move to the other half.When the region is wide enough for two windows
Top Half / Bottom HalfThe same, one above the other.Full-height columns, and cells tall enough to split
Whole Column / Whole Row / Rejoin HalvesThe split this region is part of becomes one region again; your window takes it and the other half’s windows stack behind.When the region is half of a split
Span Column / Span Row / Span HalvesYour window covers the whole split, in front; the halves keep their windows and stay split behind it, as a span. ⌃⌥B sends it to the back.When the region is the top or bottom half of a split
Swap (Swap Window when stacks are involved)Your window and the region’s front window trade places, each taking the other’s size.When your window came from another region
Swap StacksEvery window in your window’s spot and every window in this region trade places, each stack keeping its order and its front window.When your window came from another region and either spot holds a stack

Releasing anywhere other than a tile does nothing special: the window stays where you dropped it.

Video: the drop menu: a half, Span Column, rejoining a column, and Swap Stacks

Your window’s own region

Drag a snapped window out of its region and back, and its own region shows a menu too: Put Back, the halves that make room beside it, and the rejoin tile when it’s half of a split. That’s how to get the full column back after splitting it, whichever way you split it. Releasing there off the tiles still puts the window back.

Side-by-side halves are offered back only when they came from a split you made, so a layout’s own columns (like the middle and right of Three Columns) never merge by accident. Top and bottom halves can always be rejoined.

Put it back where it was

Drag a snapped window away and its old region shows as Previous position. Bring the pointer back into it, or line the window back up with the outline, and it says Release to return.

Let go of it somewhere else and it still remembers its spot for the rest of the session. The next time you drag it over that spot, the spot’s menu comes up with Put Back first, so you don’t need to line it up. Pulling a window out of a stack works the same way.

Shortcuts for the quick

  • Display corners: drag to a screen corner. With no layout, that’s quarters; with a layout, the outside column splits in place, your window taking the half you chose and its occupant moving to the other.
  • The top edge over a column: push a window up against the top of the display (the pointer can go into the menu bar) over any column and rest for Release to fill column. A split column becomes one region again.
  • Place Focused Window (⌃⌥P): pick a region for the window you’re in, without dragging.
  • Fill Screen with Focused Window (⌃⌥F): the window covers the whole usable screen. Over an arrangement it sits in front of every region, like a span, and the arrangement stays behind it: press ⌃⌥F again (or ⌃⌥H) to put it back in its spot, or ⌃⌥B to send it behind. It isn’t macOS full screen: no separate Space, and the menu bar and Dock stay. The Whole screen layout in the picker does the same for a window dropped on it.
  • Put Back Focused Window (⌃⌥H): put a window you dragged out of its spot back there, in front of that spot’s stack, without dragging it.
  • Restore Focused Window (⌃⌥R): put a window back to the size and place it had before TopSnap moved it.

Hold Option while dragging to move a window freely, with no snapping. Escape while dragging puts away the menu or outline but keeps the drag going: move on and the choices come back, or let go right there and the window stays where you left it. When you’re not dragging, Escape closes a picker.

Choose a whole layout

Choose a Layout in the menu bar lists every layout with a diagram; choosing one arranges the windows on that display into it at once, all moving together. Open Layout Gallery… (⌃⌥Z) shows the same choices as large cards. TopSnap keeps windows that already fit where they are, gives each window its own region (several windows from one app stay separate), and leaves extra windows where they were. If an app refuses a region’s size, TopSnap tries another window there.

Layouts you’ve adjusted by dragging dividers also appear as Adjusted: variants, so you can choose either the standard proportions or yours.

★ 04

Resizing together

Drag the edge a window shares with its neighbor and they resize together; blue outlines preview the result. The layout remembers the new proportions for later.

Video: resizing two windows together, spanning with Command, then splitting the span

Adjust Shared Dividers (⌃⌥A) shows every divider on the display for dragging. Double-click a divider, or select it and click 50/50, to make that split equal again; only that split changes.

Hold ⌘ while dragging an edge to make a span instead (see Spans).

★ 05

Window stacks

When two or more windows share a region, they form a stack: one in front, the others behind.

Video: building a stack with Add to Stack, then the badge, the switcher and the keyboard

The badge. On the front window, a small, faint strip shows icons for the windows behind it (up to six, then a count). Move the pointer near and it grows, spreads its icons out and highlights the one you’re on; click an icon to bring that window forward. It lists only the windows in that window’s own spot: over a span, the span and the region’s other windows, never the windows of the span’s other regions. On a spanning window, the windows in front in the regions under it sit together on a shared backing, and the grown badge puts a button between them that brings them all forward at once, like Bring Both Forward in the switcher. The badge reorganizes itself as you switch windows, hides when another window covers that corner, and hides during drags. Settings… → Window Stacks → Show stack badges turns it off.

Video: the badge on the window’s edge, growing and switching windows, then moved to the title bar

Spanning windows. When a window behind spans more than this spot, its icon sits on a blue bar a little wider than the icon: ↔ when it spans several columns, ↕ when it covers both halves of a split column. Click it, and it comes forward over everything it spans. Hover to see how far it reaches.

Dock badges. When an app shows a badge on its Dock icon (Mail’s unread count, say), its icons in the badge show it too: a red dot at rest, the count once the badge grows. The switcher’s cards show it beside the app’s name. It’s the app’s badge, so every window of that app shows it.

On the window’s edge. By default the badge stands on the window’s left edge, its icons running down, half in the gap beside the window and half in the margin left of the traffic lights, starting just below the close button. Against the screen’s edge it stays on screen. It covers almost nothing of the window, and it stays in one place for the stack. Turn off Settings… → Window Stacks → Stand badges on the window’s edge to put it in the title bar instead, as below.

In the title bar. With Settings… → Window Stacks → Place title-bar badges automatically on (the default), TopSnap puts each stack’s badge in an empty part of the window’s title bar, tab strip or toolbar, clear of its buttons, tabs and title: in Chrome, just past the last tab; in Mail, between the traffic lights and the Sidebar button. It picks a spot that’s clear in every window of the stack, so it stays put as you switch, and glides somewhere else when tabs open or close or the toolbar changes. Apps that don’t describe their controls to macOS (Slack and other Electron apps), or windows with no room, keep it under the traffic lights.

Moving the badge. If the badge covers something you need, move the pointer onto it and drag it by its handle (the dots at its left end) anywhere inside the window. The position belongs to the stack: whichever of its windows is in front shows the badge in the same place. It’s measured from the nearer side, so it stays put as the spot resizes, and it’s remembered across restarts. Your position wins over automatic placement. Option-right-click the badge and choose Place Badge Automatically (or Move Badge Back Under the Traffic Lights with automatic placement off) to undo it. Place All Badges Automatically, there or in the Window Stacks menu, undoes every moved badge at once.

The stack overview. Right-click a stack’s badge, or press ⌃⌥O, and every window in the stack appears as a live picture inside the stack’s own spot, each as large as it fits, with the window in front first and its title in bold. Click one to bring it forward with the usual transition, or use the arrow keys and Return, or 1–9. Escape, a click between the pictures or anywhere else, or the same shortcut again closes it without changing anything. The pictures follow their windows while the overview is open, and hold still while a video plays. Without Window Previews it shows each app’s icon. Give Show Stack Overview the middle button in Settings… → Shortcuts to open the stack under the pointer with a click.

Their order. Settings… → Window Stacks → Order windows by sets the order of the badge’s icons and the overview’s pictures: Last Used (the default: the window you were in most recently first) or Name (by app, then window title). The arrows and ⌃⌥] / ⌃⌥[ still go round the stack in the order its windows joined.

The switcher. Rest the pointer on the front window’s yellow button for about half a second and the stack pops out of it, a card per window (with a thumbnail if Window Previews is on). Hover over a card and that window comes forward in its spot for a look; move off the cards and the window that was in front comes back. Click a card to switch to it, with the full transition from where things were. Clicking the yellow button itself still minimizes.

The scroll wheel. With the switcher open, each wheel notch, or short trackpad swipe, brings the next or previous window forward and leaves the switcher up, so you can go back and forth before deciding. While the switcher is open the wheel belongs to it wherever the pointer is.

The keyboard. ⌃⌥S opens the focused window’s stack in a panel that takes keys while your app stays active: 1–9 pick a card, arrows move, Return or Space chooses, B sends a span to the back, Escape closes. ⌃⌥] and ⌃⌥[ cycle forward and back through the stack without opening anything.

The Layouts row. The switcher also lists your layouts for the display; click one to switch to it.

Transitions. Settings… → Window Stacks → Transition picks how switching looks: Slide (the default and the quickest: the real window slides out and back, about half a second), 3D Cards (the windows play as 3D cards, the chosen one sliding out from the deck and landing on top as the other sinks back; snapshots come first, so it takes about a quarter second longer), or Genie, Tornado, Melt and Disintegrate. All but Slide are drawn over the windows and need Screen Recording; without it, or while a video plays, TopSnap uses Slide. Every window the chosen one will cover plays the effect together. With Reduce Motion on, switching is a simple fade.

Stacks are found from window positions, so they come back after a relaunch and include windows you arranged before TopSnap started. Drag a window out of its region to take it out of the stack. Settings… → Window Stacks → Use window stacks turns the whole feature off.

★ 06

Spans

Drag a window onto a spanning window and its drop menu acts on the whole span: Add to Stack stacks it there across the same columns, and Top Half or Bottom Half splits every column under the span, the spanning window keeping the other half across all of them (with the windows behind it).

To span a column that’s split top and bottom, drag a window over either half and choose Span Column from the drop menu.

Hold ⌘ while dragging a snapped window’s edge across its neighbors. The preview snaps to whole regions (any region the window covers by at least half), always forming a clean rectangle of the layout. Release to snap the window over them. The windows that were there stay put, stacked behind the spanning window, and each can be brought forward into its own region from the badge or switcher.

Video: a window across three regions; its badge brings the windows under it forward, then the switcher's map, a peek and a switch

Over a span, the switcher is a map: the spanning window across the top, then a box for each region it covers, placed the way the regions are, holding that region’s windows. Windows spanning the same regions (say Xcode and Cursor across both columns) share the top box. Point at a card under the span and Stretch across (the ↔ button in its corner) spans that window over the same regions, in front. At the right end of the regions’ row, Bring Both Forward (or Bring All n Forward) names the windows it brings, say Claude + Chrome: choose it (or press B there, or ⌃⌥B anywhere) and those windows come forward together, each column keeping its own order, while the spanning windows go beneath; hover over it to peek at them first. A spanning window then shows only where nothing covers it; choose it in the switcher to bring it forward again. ⌘-drag the edge back over one region to un-span it; moving or plainly resizing it also releases the span. Let go of ⌘ before releasing to resize shared dividers instead.

★ 07

Your layouts

Create, edit and delete

Choose a Layout → Create Custom Layout… (or the button in the gallery) opens the layout editor. Start from a blank canvas, a built-in layout or one of yours, then click a region and split it left/right or top/bottom. Drag dividers to set proportions, double-click a divider for 50/50, and merge a selected pair back together. Undo and Redo work throughout. A layout can have up to sixteen regions.

To change a layout you’ve saved, use Choose a Layout → Edit Layout, or the Edit button on its card in the gallery. Save Changes updates it in place; Delete Layout… removes it (windows arranged with it stay where they are).

Save Layout keeps your windows where they are; Save & Apply arranges them right away.

Apps in a layout

Under the canvas, App in Region N chooses the apps that live in the selected region: pick a running app to add it (pick it again to take it out), Other App… to choose from Applications, or No App to clear. Several apps in one region stack there, the first in front. The canvas, the menu and the gallery show each region’s apps, and a layout with apps describes them left to right, like Mail · Slack + Messages · Chrome.

When you apply the layout:

  • Each app’s window goes to its region, brought over from another display if needed, in the same move as the rest.
  • Apps that aren’t running are launched, and running apps without a window are asked to open one. Each new window takes its spot once it has settled. A just-launched app often moves its window back to where it was last time, so TopSnap waits for it to sit still, and tries twice at most, for up to 20 seconds.
  • If an app’s window won’t fit its region, that region opens up for another window.
  • The other regions fill with your other windows, as with any layout.

Switch between layouts

Your layouts are numbered on each display in the order you made them. ⌃⌥1 through ⌃⌥9 switch the display you’re working on to that layout, apps and all. Stacks move as one: each goes to its new region with its front window, the rest of the stack behind it in the same order. Switch Layout in the menu bar lists them with the one in use checked, and the stack switcher’s Layouts row does the same.

Video: the layout gallery, then switching layouts and their apps

Move layouts between Macs

Choose a Layout → Export Layouts… saves one layout, the current arrangement, or all your layouts to a .topsnap.json file. On another Mac, Import Layouts… adds them without moving any windows; duplicates are skipped and name clashes get an “(imported)” copy. Files hold proportions, not pixels, so layouts fit the destination display. They don’t include apps or monitor IDs.

Reset Layouts on [display]…, at the bottom of Choose a Layout, returns the built-in layouts’ proportions on that display to standard; your own layouts are kept.

★ 08

Shortcuts and mouse buttons

ShortcutAction
⌃⌥PPlace the focused window: pick a region
⌃⌥ZOpen the layout gallery
⌃⌥AAdjust shared dividers
⌃⌥SOpen the focused window’s stack
⌃⌥OShow the stack overview for the focused window (again: close it)
⌃⌥] / ⌃⌥[Next / previous window in the stack
⌃⌥BSend the focused window’s span to the back
⌃⌥FFill the screen with the focused window (again: put it back)
⌃⌥HPut the focused window back in its spot
⌃⌥RRestore the focused window
⌃⌥1–9Switch to your first through ninth layout
EscapeClose a picker; while dragging, put away the menu until you move on
Option while draggingMove freely, no snapping

Settings… → Shortcuts changes any of these: click a shortcut and press new keys, press Delete to turn it off, or Restore Defaults. Shortcuts another app already owns are flagged. (⌃⌥1–9 are fixed.)

Each action can also have a mouse button: click its Mouse box, then click the middle (wheel) button or a side button over the window, with any modifier keys you want. Plain left and right clicks can’t be used. A bound click is kept from the app under the pointer (so a middle click bound to Show Window Stack won’t also open a link in a new tab), and every other click passes through. Stack actions from the mouse use the window under the pointer, so middle-clicking a stacked window opens its stack. TopSnap watches the mouse only while at least one button is bound.

★ 09

The menu bar menu

From top to bottom:

  • Needs attention (shown only when it applies): Enable Window Control…, Turn Off macOS Tiling…, Resume Snapping, and TopSnap X Is Available… when an automatic check found an update.
  • Choose a Layout ▸: every layout, Open Layout Gallery… (⌃⌥Z), Create Custom Layout…, Edit Layout ▸, Import / Export Layouts…, Reset Layouts on [display]…
  • Switch Layout ▸: your layouts (⌃⌥1–9), the one in use checked, and Create Custom Layout…
  • Focused Window ▸: Place… (⌃⌥P), Fill Screen (⌃⌥F), Put Back (⌃⌥H), Restore (⌃⌥R), Adjust Shared Dividers (⌃⌥A)
  • Window Stacks ▸: Show Window Stack… (⌃⌥S), Show Stack Overview (⌃⌥O), Next Window (⌃⌥]), Previous Window (⌃⌥[), Move Spanning Window Behind (⌃⌥B), Window Stack Settings…
  • Pause Snapping: pauses dragging, shortcuts and stack controls until you resume
  • Settings… (⌘, while the menu is open)
  • Help ▸: Getting Started…, Take the Tour…, User Guide, What’s New, Send Feedback…
  • Check for Updates…, About TopSnap, Quit TopSnap (⌘Q)

Settings has three tabs:

  • General: Start TopSnap at login; Check for updates automatically, with when it last checked and Check Now; and Window Previews, with Enable Window Previews… until it’s granted.
  • Window Stacks: Use window stacks; Show stack badges, Stand badges on the window’s edge and Place title-bar badges automatically; Order windows by (Last Used or Name); Reset Badge Positions (once a badge has been moved); and Transition.
  • Shortcuts: every keyboard and mouse-button shortcut (see Shortcuts and mouse buttons).

After an update, What’s New lists what changed since the version you last ran, and Help → What’s New shows it any time. The first time you meet a feature, a one-time tip explains it (a stack’s badge, the drop menu, the switcher, a span, a built-in layout before you’ve made your own).

Updates. Check for Updates… asks bantamware.com for the latest version when you choose it. Check for updates automatically (off until you turn it on) does the same once a day; when a newer version is out, the menu bar icon shows a small dot and the menu offers it at the top. Nothing else is sent either way. To hear about new versions without it, turn on Notify me about updates on the TopSnap page.

★ 10

What TopSnap remembers

  • Per display: your adjusted proportions for each layout, your own layouts, and the layout last in use. Displays are recognized by their ID, so this follows the monitor if the display order changes.
  • Across relaunches: layouts, stacks and spans are found again from where windows are. A window exactly covering two or more regions is treated as a span. Recovery also runs after a display or Space change.
  • For the session: each window’s original frame (for Restore) and its previous region (for Put Back).

TopSnap leaves an 8-point gap between windows, respects the menu bar and Dock, and ignores minimized and full-screen windows and windows on other Spaces. When the Dock grows or shrinks (an app opening or quitting, an icon added or removed, a new size or side, auto-hide), every tiled window moves to fit the new space in one motion; windows you’ve placed by hand stay where they are.

★ 11

Privacy and permissions

  • Window Control (Accessibility) is required: it’s how TopSnap reads window positions and moves windows.
  • Screen Recording is optional: it enables window thumbnails and the drawn transitions. Thumbnails stay in memory while a picker is open and are discarded when it closes. Nothing is saved or sent anywhere.
  • No accounts, no telemetry. TopSnap goes online only for Check for Updates… (when you choose it, or once a day if you turn on Check for updates automatically), and for Send Feedback… when you click Send.
  • Send Feedback… sends what you write, your email only if you add one, and, unless you uncheck it, the TopSnap version, macOS version, Mac model and number of displays, all shown in the form first. Nothing about your windows, apps or files. Feedback is read by the developer and never shared.
  • Mouse buttons: TopSnap intercepts only the middle and side buttons you’ve bound, and only while one is bound. While the stack switcher is open, it uses the scroll wheel.

★ 12

Troubleshooting

What does the message at the bottom of the screen mean?
TopSnap tells you there when something didn’t go as asked or needs a step from you first. Its icon says which: an orange warning when something couldn’t be done (your windows are put back as they were), a green check when work finished with something to note, and a blue i for what to do first. It fades on its own after a few seconds.
TopSnap can’t move windows, or Enable Window Control keeps showing.
After an update, macOS can treat TopSnap as a different app. In Getting Started, click Already on in System Settings? Reset TopSnap’s permission, then enable it again.
A window snaps, then jumps somewhere else.
macOS tiling is still on; see Getting set up, step 4.
A window won’t fill its region.
Some apps have minimum (or fixed) sizes. TopSnap puts the window back where it was rather than leaving it half-placed, and splits adjust their divider to fit when they can. Apps that size in steps, like terminals, may land a few points short of the edge; they keep their spot.
The stack switcher doesn’t open from the yellow button.
The app has to expose its window buttons to Accessibility; a few don’t. Use the badge, ⌃⌥S or ⌃⌥] instead. Also check Settings… → Window Stacks → Use window stacks is on and snapping isn’t paused.
A badge doesn’t show.
Something may cover that corner (it hides rather than float over another window), or Show stack badges may be off in Settings… → Window Stacks.
Transitions are always the Slide.
3D Cards, Genie, Tornado, Melt and Disintegrate need Screen Recording: Settings… → General → Enable Window Previews…, then quit and reopen TopSnap. While a video plays (any app keeping the display awake), TopSnap takes no snapshots, since protected video blanks whenever the screen is captured.
A layout’s app didn’t land in its spot.
It may have taken longer than 20 seconds to open a window, or moved itself again after TopSnap’s second try. Apply the layout again once the app is open.

▴ Back to top