Tile Me is a lightweight native macOS menu bar app for tiling and organizing windows. It uses Swift, SwiftUI, and macOS Accessibility APIs to move the focused window into recursive split-tree layouts across one or more displays.
Tile Me is built for a menu bar-first workflow:
- assign layouts per display
- move the focused window into a chosen tile
- maximize the focused window
- move windows between displays
- trigger actions from native global shortcuts or the menu bar
- keep settings local, compact, and efficient
The codebase stays split into clear native layers:
TileMe/App: app startup, release experience, menu bar wiring, and workflow coordinationTileMe/UI: menu bar UI, welcome/onboarding UI, preferences UI, and shared SwiftUI componentsTileMe/Domain: recursive layout engine, display logic, workspace assignment logic, and shortcut modelsTileMe/Infrastructure: Accessibility control, hotkey registration, persistence, and system integrations
- native macOS menu bar app with a restrained Settings window
- built-in preset families:
1x2,2x1, and grids from2x2through5x5 - recursive split-tree layout engine ready for uneven and nested layouts
- per-display layout assignment, copy, and mirror behavior
- focused-window tiling, maximize, and next-display actions
- directional tile traversal and direct tile shortcuts with visible-frame-aligned grid movement and corrected offset-display Accessibility coordinate conversion
- lightweight GitHub release update checks with browser handoff
- local persistence for layouts, assignments, and shortcuts
- first-run welcome, quick start help, and Accessibility onboarding
Tile Me requires Accessibility permission on macOS before it can inspect or move another app's windows.
Without this permission, you can still:
- open the app
- inspect display assignments
- configure layouts
- edit shortcuts
With permission enabled, Tile Me can:
- inspect the focused window
- move or resize supported windows
- apply tile, maximize, and display-move actions from the menu bar or global shortcuts
Enable permission in:
System Settings > Privacy & Security > Accessibility
Tile Me includes direct buttons to request access, open the right System Settings pane, and refresh permission status.
Quick Start can be reopened later from Help / Quick Start… in the menu bar or from Settings.
Update checks can be triggered later from the menu bar or Settings.
- Download the DMG.
- Open it.
- Drag Tile Me to Applications.
- Open Tile Me from Applications.
If macOS blocks the app:
Because this release is not signed and notarized, macOS may warn that Tile Me is from an unidentified developer. If you trust the release source:
- Try to open Tile Me once.
- Open
System Settings > Privacy & Security. - Scroll to the Security section.
- Click
Open Anywayfor Tile Me. - Confirm that you want to open it.
Future signed and notarized releases may improve the first-open experience.
Requirements:
- macOS with Xcode installed
- command-line access to
xcodebuild
The included scripts automatically use the standard Xcode developer directory when it is available.
Build:
./Scripts/build.shRun:
./Scripts/run.shThis builds the app and opens Tile Me.app.
Test:
./Scripts/test.shPackage a release build:
./Scripts/package-release.sh- v1.0.5 ships built-in layouts only; there is no dynamic freeform tiling editor yet
- nested uneven layouts are supported by the engine, but not yet exposed as user-editable presets in the UI
- dense layouts up to
5x5are supported, but some macOS app windows may clamp or resist very small tile sizes - some macOS windows cannot be moved or resized through Accessibility APIs
- fullscreen-style behavior is implemented as visible-frame maximize placement in v1.0.5
- If Accessibility looks enabled in System Settings but Tile Me still reports
trusted=falsewhen run from Xcode, test the builtTile Me.appdirectly from Finder and approve that exact binary in Accessibility. Xcode-launched builds may require separate approval entries.
- Open
Support…from the menu bar or Settings for release help, feedback, and support links. - Support development on Ko-fi: https://ko-fi.com/moontheripper
- Report bugs or send feature requests by email: mailto:[email protected]
- Optional GitHub links for advanced users:
- v1.1.0 is planned to introduce dynamic custom and freeform tiling on top of the existing recursive split-tree engine