Skip to content
Native macOS Utility · macOS 12 Monterey+ · Universal

Your workspace,already arranged.

Layr organizes your open app windows into saved multi-display layouts in one click, or automatically when your applications launch. Stop rearranging. Start working.

Version 1.0.0 · macOS 12 Monterey or later · Universal (Apple silicon & Intel)

Layr
Tue 9:41 AM
layout.rs — Editor
workspace.json
displays.json
01// workspace.json — Layout geometry
02{
03 "preset": "Coding",
04 "display": "Liquid Retina 16:10",
05 "split": [0.58, 0.42],
06 "tiles": [
07 { "app": "Editor", "rect": [0.01, 0.01, 0.57, 0.98] },
08 { "app": "Browser", "rect": [0.59, 0.01, 0.40, 0.58] },
09 { "app": "Terminal", "rect": [0.59, 0.60, 0.40, 0.39] }
10 ]
11}
JSON · GeometryUTF-8
Ln 11, Col 2 · Saved
Browser
‹›
🔒layr.app/docs/layouts
⌘K
v1.0
Terminal — zsh
zsh — Layr Layout Engine
user@macbook ~ % layr arrange --preset coding
[layr] target: Liquid Retina (16:10 display)
[layr] editor -> [0, 0, 58%, 100%]
[layr] browser -> [58%, 0, 42%, 60%]
[layr] terminal -> [58%, 60%, 42%, 40%]
[layr] status: 3 windows locked into matrix
user@macbook ~ %
Active loadout: Coding — IDE editor paired with live documentation and debug terminal.16:10 Display Matrix · Zero manual dragging
The Daily Window Friction

Stop arranging. Start working.

Open a project, plug in a monitor, take a call. The same windows need dragging and resizing again and again, costing focus and several minutes each time.

layout.rs — Editor
workspace.json
displays.json
01// workspace.json — Layout geometry
02{
03 "preset": "Coding",
04 "display": "Liquid Retina 16:10",
05 "split": [0.58, 0.42],
06 "tiles": [
07 { "app": "Editor", "rect": [0.01, 0.01, 0.57, 0.98] },
08 { "app": "Browser", "rect": [0.59, 0.01, 0.40, 0.58] },
09 { "app": "Terminal", "rect": [0.59, 0.60, 0.40, 0.39] }
10 ]
11}
JSON · GeometryUTF-8
Ln 11, Col 2 · Saved
Browser
‹›
🔒layr.app/docs/layouts
⌘K
v1.0
Terminal — zsh
zsh — Layr Layout Engine
user@macbook ~ % layr arrange --preset coding
[layr] target: Liquid Retina (16:10 display)
[layr] editor -> [0, 0, 58%, 100%]
[layr] browser -> [58%, 0, 42%, 60%]
[layr] terminal -> [58%, 60%, 42%, 40%]
[layr] status: 3 windows locked into matrix
user@macbook ~ %
After
layout.rs — Editor
workspace.json
displays.json
01// workspace.json — Layout geometry
02{
03 "preset": "Coding",
04 "display": "Liquid Retina 16:10",
05 "split": [0.58, 0.42],
06 "tiles": [
07 { "app": "Editor", "rect": [0.01, 0.01, 0.57, 0.98] },
08 { "app": "Browser", "rect": [0.59, 0.01, 0.40, 0.58] },
09 { "app": "Terminal", "rect": [0.59, 0.60, 0.40, 0.39] }
10 ]
11}
JSON · GeometryUTF-8
Ln 11, Col 2 · Saved
Browser
‹›
🔒layr.app/docs/layouts
⌘K
v1.0
Terminal — zsh
zsh — Layr Layout Engine
user@macbook ~ % layr arrange --preset coding
[layr] target: Liquid Retina (16:10 display)
[layr] editor -> [0, 0, 58%, 100%]
[layr] browser -> [58%, 0, 42%, 60%]
[layr] terminal -> [58%, 60%, 42%, 40%]
[layr] status: 3 windows locked into matrix
user@macbook ~ %
Before
Compare manual window clutter with Layr’s organized multi-window grid.Same 3 windows · Instant geometric layout
With Layr: 1 Click Restores Order

Every configured window glides to its exact target rectangle with native macOS spring mechanics. No manual adjustments, no overlapping edges.

Native macOS APIZero Telemetry
  • 9:02 AM

    Laptop plugged in at your desk

    Windows cram into one corner

  • 11:40 AM

    Returning from a screen-share call

    Resolution changed, tiles lost

  • 2:15 PM

    Back from lunch & display wake

    Windows stacked arbitrarily

Signature Workflow

One layout. Everything where it belongs.

Pick a saved layout and Layr moves every window to its exact place and size instantly.

Layr
Tue 9:41 AM
Browser
‹›
🔒layr.app/docs/layouts
⌘K
v1.0
Notes
📁Sprint Notes & Layouts
✓Calibrate 58/42 split on 5K Studio Display
✓Save Focus layout with Distraction-Free writer
Configure automatic launch placement for Arc
Messages
Design Sync
Active now
The new Layr arrangement restored all 3 windows immediately!
Perfect! That saved 15 minutes of dragging windows.
Calendar
Tuesday, October 24Today
9 AM
Focus Sprint
11 AM
Product Review
2 PM
Focus Sprint
4 PM
Focus Sprint
Task-Specific Workspaces

Different tasks. Different setups.

Save dedicated layouts for each workflow. Every workspace remembers which apps go where, on which display, at what exact size.

Layr
Tue 9:41 AM
layout.rs — Editor
workspace.json
displays.json
01// workspace.json — Layout geometry
02{
03 "preset": "Coding",
04 "display": "Liquid Retina 16:10",
05 "split": [0.58, 0.42],
06 "tiles": [
07 { "app": "Editor", "rect": [0.01, 0.01, 0.57, 0.98] },
08 { "app": "Browser", "rect": [0.59, 0.01, 0.40, 0.58] },
09 { "app": "Terminal", "rect": [0.59, 0.60, 0.40, 0.39] }
10 ]
11}
JSON · GeometryUTF-8
Ln 11, Col 2 · Saved
Browser
‹›
🔒layr.app/docs/layouts
⌘K
v1.0
Terminal — zsh
zsh — Layr Layout Engine
user@macbook ~ % layr arrange --preset coding
[layr] target: Liquid Retina (16:10 display)
[layr] editor -> [0, 0, 58%, 100%]
[layr] browser -> [58%, 0, 42%, 60%]
[layr] terminal -> [58%, 60%, 42%, 40%]
[layr] status: 3 windows locked into matrix
user@macbook ~ %

Development Preset

3 Windows Positioned· 58 / 42 IDE Matrix

A calibrated split for software engineering. The code editor commands 58% of the display width, paired with full-height documentation and an integrated debug terminal on the right.

editorbrowserterminal

Layr arranges the windows each preset specifies and leaves other applications where they are. It does not open apps for you, and it does not follow private macOS Spaces APIs.

Automatic Window Placement

Your setup, without the busywork.

When an application opens or you plug in a display, Layr matches the window against your rules and positions it instantly.

Engine Demonstration
Layr
Tue 9:41 AM
Layr Automatic Placement Activity Feed
Pending application launch...
Pending application launch...
Pending application launch...
When an app opens
Its window goes straight to its place in your active layout, or to the spot you set for that app.
When a new window appears
In apps that are already running, as long as the app reports new windows to macOS.
When things drift
Fix My Workspace shows which windows would move, skips the ones already in place, and moves the rest only after you confirm.
When you change your mind
Undo puts back the windows the last layout moved. Pause automatic arranging from the menu bar at any time.

Honest Engineering: What Layr leaves alone

Layr strictly follows public macOS APIs to protect your system stability.

  • Following macOS Spaces. The public API only says that the Space changed, not which one.
  • Opening apps or windows for you. Layr arranges windows that are already open.
  • Full-screen or minimised windows.
  • Telling browser profiles apart. You can target a window by its title instead.
Menu Bar & Multi-Display Workflow

One click in the menu bar. Every display arranged.

Layr lives quietly in your menu bar. Switch between multi-monitor presets to place primary applications on your external screen and supporting tools on your MacBook display simultaneously.

Active Preset

Engineering Flow

Saved Multi-Display LayoutsClick or arrow key
Engineering Flow: 4 windows positioned across 2 displays
Studio Display 27″ · Primary Workspace5120 × 2880
Layr
Tue 9:41 AM
layout.rs — Editor
workspace.json
displays.json
01// workspace.json — Layout geometry
02{
03 "preset": "Coding",
04 "display": "Liquid Retina 16:10",
05 "split": [0.58, 0.42],
06 "tiles": [
07 { "app": "Editor", "rect": [0.01, 0.01, 0.57, 0.98] },
08 { "app": "Browser", "rect": [0.59, 0.01, 0.40, 0.58] },
09 { "app": "Terminal", "rect": [0.59, 0.60, 0.40, 0.39] }
10 ]
11}
JSON · GeometryUTF-8
Ln 11, Col 2 · Saved
Browser
‹›
🔒layr.app/docs/layouts
⌘K
v1.0
MacBook Pro 16″ · Supporting Tools3456 × 2234
Layr
Tue 9:41 AM
Terminal — zsh
zsh — Layr Layout Engine
user@macbook ~ % layr arrange --preset coding
[layr] target: Liquid Retina (16:10 display)
[layr] editor -> [0, 0, 58%, 100%]
[layr] browser -> [58%, 0, 42%, 60%]
[layr] terminal -> [58%, 60%, 42%, 40%]
[layr] status: 3 windows locked into matrix
user@macbook ~ %
Notes
📁Sprint Notes & Layouts
✓Calibrate 58/42 split on 5K Studio Display
✓Save Focus layout with Distraction-Free writer
Configure automatic launch placement for Arc

Engineering Flow

4 Windows · 2 Displays

Code Editor and live documentation on the 5K Studio Display, with an integrated debug terminal and sprint checklist anchored on the MacBook screen.

Persistent macOS UUID
External Display:Code Editor (60%) + API Docs (37%)
MacBook Screen:Debug Terminal (56%) + Sprint Checklist (41%)

Illustrative web simulation. Layr positions windows inside the usable desktop area clear of the Dock and Menu Bar. Displays are tracked via native macOS hardware UUIDs, preserving window placements across monitor reconnects. It does not follow private macOS Spaces APIs or manage full-screen windows.

Transparent Licensing

Try free. Own for life.

No subscriptions, no forced accounts, no recurring invoices. Evaluate every feature with zero friction.

First LaunchNo credit card needed

Evaluation Trial

$0/ 24 hours

Starts automatically the first time you open Layr. Experience every single feature on your real multi-display setup.

  • 100% of features unlocked
  • No account registration or email required
  • Multiple monitors and unlimited layouts
  • If the trial ends, your saved layouts are never erased
Pay Once, Keep ForeverVersion 1.x Lifetime

Full Lifetime Licence

$9.99USD one-time

Unlock permanent window placement. Keep your screen organized across every 1.x release with zero subscriptions.

  • Lifetime access for all Layr 1.x updates
  • Covers 1 Mac with easy self-service machine transfer
  • 14-day offline grace period (no internet needed)
  • Stored securely in your native macOS Keychain
Purchase Lifetime Licence ($9.99)

Secure checkout via Dodo Payments. You can also purchase directly inside Layr: Settings → Licence.

24-Hour Full Feature Trial · One-Time $9.99 Licence

Make room for better work.

Evaluate every single feature free for 24 hours. If it saves you time every day, unlock lifetime access for $9.99 USD. No subscriptions, ever.

Version 1.0.0 · macOS 12 Monterey or later · Universal (Apple silicon & Intel)

No account requiredUniversal for Apple silicon & IntelZero analytics or tracking14-day offline grace period

Questions, answered.

Which Macs does Layr run on?

Any Mac running macOS 12 Monterey or later, with Apple silicon or Intel. Release builds are universal.

How does the trial work?

You get 24 hours with every feature, with no account and no payment details. After that, a licence keeps Layr arranging windows. Your layouts stay saved either way.

What does a licence cost, and what do I get?

A one-time purchase of $9.99 USD, not a subscription. Taxes may be added at checkout. It covers all Layr 1.x updates on 1 Mac. You buy it from inside the app.

Can I move my licence to a new Mac?

Yes. Choose Deactivate this Mac in Layr on the old Mac, then enter your key on the new one. If the old Mac is lost or broken, contact support and the activation can be released.

Does Layr work with more than one display?

Yes. A layout can place windows on any connected display, and displays are never counted against your licence.

Why does Layr need Accessibility permission?

macOS only lets apps move other apps’ windows through the Accessibility API. Layr asks only when you choose Ask macOS for permission in its settings.

Does Layr support macOS Spaces?

No. The public macOS API reports that the Space changed but not which one, and Layr doesn’t use private APIs.

How do I uninstall Layr?

Quit Layr from its menu-bar menu and move Layr from Applications to the Trash. To finish, remove Layr from System Settings → Privacy & Security → Accessibility. Deactivate your licence first if you want to use it on another Mac.