Skip to content

About

Free Native macOS window manager with linked resizing and adaptive Bento tiling

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

BetterTile app icon

BetterTile

Your windows. Working together.

A free, native macOS window manager.
Snap windows into place, resize neighbours together, and let Bento adapt as your work grows.

Download the latest beta · Website · Features · Install · Privacy · Documentation

CI status macOS 26 or later License: GPL v3 or later Free forever

Requires macOS 26 or later and Accessibility permission.
The public beta is self-signed and not notarized. Read the installation steps before first launch.

Watch the full BetterTile tour: snapping, linked resizing, Bento, Tabbed, and the Layout Wheel
Watch the full tour · 25 seconds

Everything it does

Feature demonstrations. For videos with playback controls, visit the website.

Resize neighbours together

Drag the shared boundary between adjacent windows. Both windows resize together.
Choose a live resize or a ghost preview that applies when you release.

Linked resizing demonstration: moving a shared boundary resizes neighbouring windows together

Bento tiling that adapts

Open a window. Bento makes room in the layout while keeping movement and resizing to a minimum.
Swap windows, adjust the layout, or float a window out when it needs its own space.

Bento demonstration: the layout adjusts as new windows open

Tabbed panes

Group windows into resizable panes. Select a tab to bring its window forward.
Drag tabs between panes or float a window out. The other windows stay open behind it.

Tabbed demonstration: selecting tabs changes the visible window, and tabs move between panes

Turn off Stage Manager for Tabbed. Pane assignments last for the current app session.
Cross-display tab dragging is unavailable.

More ways to arrange your windows

Drag snapping
Drag a title bar toward an edge or corner. Preview the placement before you release.

Layout Wheel
Hold Control + Option + Shift, choose a sector, and release.
Configure the trigger, actions, and one or two levels in Settings. The center or Escape cancels.

Keyboard shortcuts and undo
Place windows with global shortcuts, with duplicate checks for BetterTile actions.
Undo a placement to restore an earlier window frame.

The optional Middle Click trigger reserves unmodified middle-click system-wide while enabled.
Other apps receive that button again when you turn the option off.

Watch drag snapping · Watch the Layout Wheel · Watch shortcuts and undo


What you need

  • macOS 26 or later.
  • Accessibility permission. This is the only macOS permission BetterTile requests.
  • To build from source: Xcode 26 / Swift 6.3 or later. See Development setup.

Install

  1. Download the latest beta. Open the BetterTile-*-beta.dmg and drag BetterTile into Applications.
  2. Launch BetterTile. The beta is signed with the stable, self-signed BetterTile Beta certificate. It is not signed with an Apple Developer ID and is not notarized. After the first launch attempt, open System Settings → Privacy & Security and choose Open Anyway after confirming the download came from this repository. You can check it against the .sha256 file beside the release download.
  3. Follow BetterTile's explanation to grant Accessibility permission. BetterTile runs in the menu bar. Its Dock icon is optional and off by default.

Updates

BetterTile checks its GitHub-hosted update feed every four hours by default. It shows release notes and asks before downloading or installing. Turn automatic checks off in General Settings, or use Check for Updates… at any time.

Sparkle verifies each update's EdDSA signature against a public key built into the app. This is separate from the beta's macOS code signature. Public betas since 0.4.1 use the same self-signed certificate to preserve Accessibility permission across normal updates. If that identity changes, the release notes will explain the one-time permission steps.

Build from source

Follow Development setup to configure your free Personal Team, open BetterTile.xcodeproj, and run the shared BetterTile scheme. The Debug app has its own configuration and Accessibility grant, separate from the public beta. Package.swift exposes supporting libraries only; the runnable app comes from the Xcode project.

Keeping Accessibility permission across rebuilds

Use your Personal Team in the gitignored Config/LocalSigning.xcconfig and keep the bundle identifier unchanged. Ad-hoc signing changes the app's identity on each rebuild. See the signing guide for setup and the one-time permission reset.

Private by default

Window geometry and configuration stay on your Mac. BetterTile has no advertising, behavioral tracking, or sale of user data. It explains Accessibility permission before requesting it.

Public Apple APIs move and resize windows. A small, documented set of reviewed, read-only private observations improves window identity, minimum-size handling, Spaces, and Stage Manager behavior. Each observation is validated and has a public fallback. BetterTile uses no code injection or SIP workaround.

BetterTile observes limited pointer and keyboard input for snapping, resizing, and the Layout Wheel. Update checks and downloads contact GitHub, which receives ordinary connection metadata. These requests send no window data, configuration, analytics, telemetry, crash reports, or system profile. Send Feedback opens a GitHub form with the app version and build in its suggested title; it submits no issue automatically.

Read Security and privacy for the input scope, network disclosure, private observations, fallback behavior, and vulnerability reporting.

Known limits

  • No cross-Space window movement. BetterTile does not move windows between macOS desktops.
  • Stage Manager groups stay single-window. A thumbnail drag selects one validated frontmost member. BetterTile does not move or synchronize the other windows in that Stage group.
  • Tabbed needs Stage Manager off. Pane assignments and placement undo history last for the current app session. Cross-display tab dragging is unavailable.
  • Some apps restrict window sizes. Broader real-app stacking, multi-display, and Space-switch behavior remains under validation. Read the beta notes.

BetterTile is free

Free forever. No paid tier, subscription, trial, or features held behind a purchase.
Open source under the GNU GPL v3 or later.
Use it, read it, fork it, and share modified versions under the same license.

Download BetterTile · Explore the website

Documentation

Acknowledgements

  • Vorssaint — BetterTile includes adapted settings and menu-panel presentation code from Vorssaint. Its demand-based service ownership shaped BetterTile's runtime lifecycle. See Third-party notices for attribution and terms.
  • Rectangle — a reference for event-driven window management on macOS.

Made by @LMC-Karma

About

Free Native macOS window manager with linked resizing and adaptive Bento tiling

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages