Skip to content
Aqib Javed.
All apps

Mac app · free

DisplayShift

Plug in a monitor and choose which windows move over.

A free menu bar app for anyone who docks a MacBook. When a display connects, a panel drops out of the notch with every open window listed, fullscreen apps and other desktops included. Tick what should move, pick the screen, done. It also sends everything back to the MacBook in one press.

v1.3.0 · 0.9 MB zip · macOS 14 Sonoma or later · Apple silicon and Intel

DisplayShift panel hanging from the MacBook notch: MSI MAG342CQR connected, four windows ticked to move, Move selected and Move all buttons
The picker drops out of the notch the moment a display connects.UI render, sample windows

What it does

The window shuffle, handled

  • Picks up the moment you plug in

    A short chime and an animation in the notch confirm the display, then the picker lists every window that is not on it yet.

  • Every window, every desktop

    Windows on other Spaces and in fullscreen are included, which is exactly where macOS usually strands them.

  • Fullscreen aware

    Fullscreen apps leave fullscreen, move, and go fullscreen again on the new screen. Ones already there are left alone.

  • Back to the MacBook in one press

    Switch the destination to the MacBook screen, or use the one-press buttons in the menu bar before you unplug.

  • Built for docks and multiple monitors

    USB-C, Thunderbolt, HDMI or a dock. Monitors that wake a second apart count as one event, and identical models are numbered.

  • Private by design

    No network access, no analytics, no account. Saved layouts store a hash of each window title, never the title.

Screens

What you will see

Panel shots are rendered from the app's own SwiftUI code with a sample window list, so nobody's private window titles end up on this page. The settings window is a straight screen capture.

  • Tick what moves. Windows already on the monitor are counted, not listed.UI render, sample windows
  • Switch the destination to send windows back to the MacBook.UI render, sample windows
  • Connect: the link draws in and the monitor lights up.UI render, sample windows
  • Disconnect: the link snaps and the app tells you where the windows went.UI render, sample windows
  • No notch? It floats just under the menu bar instead.UI render, sample windows
  • Progress while fullscreen apps hop across.UI render, sample windows
  • Settings: one-press moves, and what to do on connect.Screen capture

Install

Four steps and you are done

The only unusual step is the first launch, because this build is signed but not yet notarized by Apple.

  1. Download and unzip

    Download the zip below and double-click it. Drag DisplayShift into your Applications folder.

  2. Open it once

    The first launch shows a warning that Apple could not check the app, because this build is not notarized yet. Click Done, then open System Settings, Privacy and Security, scroll down and click Open Anyway next to DisplayShift.

  3. Follow the setup

    DisplayShift walks you through the rest: it moves itself into Applications, asks for Accessibility access once and ticks it off as soon as you switch it on, then asks whether to open at login. If a switch looks on but nothing happens, click Reset and try again.

  4. Plug in a monitor

    That is it. DisplayShift lives in the menu bar and opens the picker whenever a display connects.

Privacy

Permissions, and what it does with them

  • Makes no network connections. There is no analytics, telemetry or update check.
  • Reads window positions, sizes, titles and owning app through the macOS Accessibility API, only to list and move windows.
  • Stores preferences and saved layouts in its own preferences file. Layouts keep a SHA-256 hash of each window title, never the title itself.
  • Signed and built with the hardened runtime. It runs no scripts or helper processes.

Release notes

What changed

  1. v1.3.0Sep 28, 2026

    • A setup assistant on first launch: it moves the app into Applications, asks for Accessibility once and waits for it to work, then asks whether to open at login.
    • No more stuck permission switch. If an older approval gets in the way, the app clears it and asks again by itself.
    • Opening a newer copy closes the older one, so two copies never run at once.
  2. v1.2.1Sep 28, 2026

    • Signed with my own developer certificate.
    • The zip now opens cleanly with any unzip tool, not just Finder.
  3. v1.2.0Sep 28, 2026

    • Multiple monitors: displays that come up a second apart on one dock count as one event.
    • Identical monitor models are numbered left to right.
    • Docks that drop their displays during sleep no longer trigger the picker on wake.
  4. v1.1.0Sep 28, 2026

    • The notch picker, with a Move to switch for any connected screen.
    • Connect and disconnect animation and chime, both optional.
    • Floating pill for Macs without a notch. Universal build for Intel Macs.
  5. v1.0.0Sep 14, 2026

    • First release: move every window to any display in one press, with layout memory.

SwiftSwiftUIAppKitAccessibility APICoreGraphics

Want something like this built for you?

I take on mobile, desktop and AI projects, from a focused utility to a full product.

Let's talk