Early release: MacPane is reasonably stable for daily use. Rough edges and behavior changes are still possible. There are no official releases yet; build the app yourself using the instructions below.
MacPane is a tiny macOS menu bar window manager. It auto-tiles regular app windows with the macOS Accessibility API, then lets you focus, swap, resize, and rotate tiles with global keyboard shortcuts.
When MacPane launches, it immediately arranges the windows on each display. It watches for launched apps, closed apps, screen changes, and Accessibility window-created notifications so new windows snap into the layout as they appear.
Cmd+Option+Arrow: focus the nearest tiled neighbor in that direction.Cmd+Shift+Arrow: swap the focused window with the nearest tiled neighbor in that direction.Cmd+Ctrl+Arrow: resize the split containing the focused window.Cmd+Option+Z: zoom the focused window to fill the workspace; press again to restore its tile.Cmd+Option+O: rotate the focused fork between horizontal and vertical splits.Cmd+Option+A: toggle workspace switch animations on or off.Cmd+Option+1...9: switch MacPane's virtual workspace on the current display.Cmd+Ctrl+1...9: move the focused tiled window to a MacPane virtual workspace.Cmd+Ctrl+Option+Left/RightorCmd+Ctrl+Option+H/L: switch to the previous or next MacPane virtual workspace.Cmd+Ctrl+Option+=: create a new MacPane virtual workspace and switch to it.Cmd+Ctrl+Option+-: delete the current MacPane virtual workspace when it is empty.Cmd+Ctrl+Option+V: show a quick visual overview of MacPane virtual workspaces. Press1...9while it is visible to switch.
New windows split the currently focused tile, similar to Pop Shell and i3-style binary tiling. Closing a window promotes its sibling so the layout does not leave stale empty space.
Use the menu bar item to increase, decrease, or reset the configurable gap around and between tiled windows. The current gap is stored in UserDefaults; the default is 8 px.
Small new windows, such as OAuth pop-ups and pickers, float instead of splitting the focused tile. Set the size limits in Settings under "Pop-up Windows". The float shortcut tiles a floating window.
MacPane learns an app's minimum size when the app rejects a smaller frame. It then grows that app's tile to fit. A minimum is only learned after the app has processed a MacPane write and held the larger frame twice, sizes that could not fit alongside any other tile are discarded, and a learned minimum is forgotten again when a tiled window of that app is seen below it. Reset the saved sizes in Settings under Maintenance if a tile is still too large.
./Scripts/test.sh
./Scripts/build-app.shThe app bundle is written to build/MacPane.app.
For a stable local install, use:
./Scripts/install.shThat builds and writes the app to ~/Applications/MacPane.app by default. You can override the destination with INSTALL_DIR=/Applications ./Scripts/install.sh.
open build/MacPane.appOn first launch, macOS will ask for Accessibility access. If the prompt does not appear, open System Settings, go to Privacy & Security, then Accessibility, and enable MacPane. Quit and reopen MacPane after granting the permission so macOS attaches the permission to the signed app bundle.
If macOS keeps asking after you grant access, it is usually because a rebuilt ad-hoc signed app replaced the copy that TCC trusted. Fix it by installing one stable app bundle, then granting permission to that bundle:
./Scripts/install.sh
open ~/Applications/MacPane.appIf there is already a stale MacPane entry in Privacy & Security, remove it from Accessibility and add the newly installed ~/Applications/MacPane.app. You can also reset only MacPane's Accessibility entry:
tccutil reset Accessibility com.gigaxel.macpaneAfter resetting, launch the installed app again and grant Accessibility once.
MacPane is a menu bar app, so it does not show a Dock icon or main window.
MacPane is available under the MIT License. See LICENSE.
