Every window.
The big screen.
One chord.

Press ⌃⌥⌘ Space and every Brave window flies to the external monitor and fills it. A resident macOS tool in ~140 lines of Swift — fires in milliseconds.

✓ Fill, not fullscreen — no Spaces created, no green-button limbo

One file. No dependencies. No network. MIT licensed.

2560 × 1440
laptop

Four Brave windows, scattered across the laptop.

+

How it works

One keypress, and the scatter is over

01 · chord

Press ⌃⌥⌘ Space

The daemon sits resident with near-zero idle CPU, so it fires in milliseconds. It re-reads your displays on every press — plug the monitor in whenever you like.

02 · sweep

Every window moves

All of Brave's windows head for the external monitor. Minimized ones stay put in the Dock, and native-fullscreen windows are left alone — their Space owns them.

03 · filled

Fill, not fullscreen

Each window fills the monitor's usable area — like option-clicking the green button, but for all of them at once. Mixed resolutions and macOS's flipped coordinate math are handled for you.

The permission

One grant, held as tightly as macOS allows

There's no way around it: moving another app's windows requires the Accessibility permission, and macOS has no narrower scope than "everything on screen." So the real question is who holds the grant. BraveFill's answer: ~140 lines you compiled yourself, wrapped in a single-purpose .app.

The same grant, as usually held

  • A full window manager — thousands of lines of someone else's code, auto-updating under a permission that never re-prompts

  • Your terminal — every script, installer, and curl | sh you ever run inherits whole-screen control

  • A scripting engine — the grant covers whatever config it loads next

✓ BraveFill

  • The .app is the granted identity — launched via open, so your terminal never appears in the Accessibility list

  • Auditable in one sitting — one source file, only Apple frameworks, compiled on your machine

  • Sign it once, rebuild freely — a self-made certificate keeps the identity stable, so the grant survives every recompile

Configure

Four knobs at the top of the file

No preference panes, no dotfiles. Edit, rebuild, done — and despite the name, pointing bundleID at any other app works just as well.

Fill respects your menu bar and Dock by default; flip useVisibleFrame for the raw resolution.

Any chord you like. ⌃⌥⌘ Space ships because three modifiers collide with nearly nothing.

3+ monitors: the first non-primary display wins. Multi-external choreography is deliberately not a feature.

A beep means "no" — never silence. The reason lands in the unified log, one log stream away.

// the knobs — top of bravefill.swift
let bundleID = "com.brave.Browser"

// monitor minus menu bar & Dock (false = raw)
let useVisibleFrame = true

// Ctrl + Option + Cmd + Space
let hotKeyCode = UInt32(kVK_Space)
let hotKeyMods = UInt32(cmdKey | optionKey | controlKey)

// the trick that makes cross-display sizing stick:
// position → size → position → size, per window

Install

Compile it yourself — it takes two minutes

Needs only Apple's command line tools (xcode-select --install). The README walks through every step: bundle it as a background .app, sign it, grant Accessibility to the app — never to a terminal — and press the chord.

# clone and build
git clone https://github.com/Neilos-Thumm/BraveFill && cd BraveFill
swiftc bravefill.swift -o bravefill -framework Cocoa -framework Carbon
# then follow the README: bundle → sign → grant → chord

Slow-reader friendly: the README assumes nothing and explains every prompt macOS will show you, including the one gotcha — after granting, restart the tool, because permission changes never reach a running process.

AppFocus summons the app. WindowFocus finds the exact window. BraveFill throws them all onto the big screen. Same maker, same one-file recipe — they run happily side by side.