All apps

Made for vertically stacked displays

DockPin

Work above. Keep the Dock there.

External monitor above, MacBook below? DockPin helps keep the native macOS Dock on your chosen upper display. Switch apps from the other screens, and reconnect your monitor without choosing the target again.

Available · v0.2.1 · Apple Silicon · macOS 13+

Not Apple notarized; first launch may need approval in Privacy & Security.

Actual application screenshot.

Placement illustration from the project demo, not an app screenshot.

Your target display
The native macOS Dock stays here.
Your other displays
Reveal a running-app bar when you need it.

The desk it was made for

Your main work is above. The Dock ends up below.

macOS already lets you put the Dock on the left or right. The awkward part is a bottom Dock on the upper screen: move down to reach it and the pointer can cross straight onto the display below. DockPin is built around that stacked-screen problem, helping the native Dock stay on the display where you work.

Give the native Dock a home.

Choose the upper external display as the target and keep the Dock at the bottom. DockPin uses its exposed edge segments to bring the native Dock there, and guards exposed edges on other screens so they do not summon it away.

Switch apps from the other screen.

Enable “Running Apps Bar on Other Displays”. Pause near the bottom-inside edge of a non-target screen to reveal the bar, then click an icon to activate the app. Move away and it hides again.

Cross between screens as usual.

The shared boundary between the upper and lower displays remains open. DockPin applies its edge gate only to exposed segments. Adjust the edge range and pass-through delay to suit your desk; hold Option to bypass the target-edge gate.

Reconnect your monitor. Keep your choice.

Unplug for a meeting, then return to your desk: the menu should not still show your upper display while the Dock stays on the MacBook. Version 0.2.1 remembers the preferred screen while it is away, uses an available screen temporarily, then reapplies your target after reconnect or wake.

Before you choose

Do I need to choose the target again after reconnecting?

Version 0.2.1 keeps your preferred display while it is disconnected and temporarily uses an available screen. After reconnect or wake, it waits for the displays to settle and reapplies the saved target. The selected edge still needs an exposed segment.

Does each bar show only the apps on that display?

Not in v0.2.1. Each bar uses the same list of apps running across your Mac. Clicking an icon activates that app; it does not move its windows to the screen where you clicked.

Can I put the Dock on any fully covered upper edge?

A fully covered edge remains a macOS limitation. DockPin uses exposed edge segments; when another display covers the entire selected edge, it may not be able to activate the native Dock there reliably.

Is the other screen getting a second macOS Dock?

It gets DockPin’s lightweight running-app switcher. Your native Dock remains on the target display. The optional bar appears on hover, hides when you leave and does not reserve desktop space.

Why does it need Accessibility permission?

DockPin uses a Quartz event tap to manage pointer behaviour at display edges. It does not patch system files or inject into the Dock. The optional bar reads the local running-app list without storing or transmitting it.

A deliberate choice

One native Dock. A lighter way to reach your apps elsewhere.

Keep the familiar macOS Dock on the display you choose and add only a small app-switching surface to the others. DockPin stays in the menu bar. It uses Accessibility permission for pointer-edge control, without patching system files, injecting into the Dock or using private APIs. The optional app list stays local; quitting removes the edge controls and returns Dock behaviour to the system.

Is it for you?

Especially useful for an external monitor above a MacBook, with some of the upper display’s bottom edge exposed. Also useful when you want a stable native Dock location and an app switcher on other displays. Requires macOS 13 or later and Accessibility permission.

What it does

  • Helps keep the native Dock on a chosen display, especially an upper monitor in a vertically stacked setup.
  • Remembers the preferred display while disconnected, temporarily uses an available screen and reapplies the target after reconnect, layout changes or wake.
  • Uses exposed target-edge segments and guards other displays’ outer edges against summoning the native Dock.
  • Optional hover-activated running-app bar on non-target displays: click an icon to activate an app, with no reserved desktop space.
  • Shared display boundaries remain pass-through; adjust edge range and delay, or hold Option to bypass the target-edge gate.
  • Menu bar controls, first-run permission guide, Launch at Login, and English and Simplified Chinese UI.

Requirements

  • The v0.2.1 download is for Apple Silicon, with a macOS 13 minimum target. Accessibility permission is needed for pointer-edge control.
  • For an upper-display bottom Dock, the selected edge needs an exposed segment; check your display arrangement first.
  • Source builds require Xcode Command Line Tools and Swift 5.9 or later.

Getting started

  1. Download DockPin.zip for Apple Silicon, unzip it and move DockPin.app to Applications. To update, quit the old app, replace it and reopen.
  2. Open DockPin and grant Accessibility permission. If first launch is blocked, follow the README’s Privacy & Security approval steps. Reopen the app if Accessibility permission has not taken effect.
  3. For an external monitor above a MacBook, choose that monitor as Target Display and Bottom as Dock Edge.
  4. Start with Edge Range at 40% and Pass-through Delay at 0.20s, then adjust to your layout.
  5. Enable Running Apps Bar on Other Displays if wanted. On another screen, pause near its bottom-inside edge and click a running app to switch.
  6. After reconnecting the display or waking your Mac, allow a moment for the screens to settle. DockPin reapplies the saved target without making you select it again.
Read the documentation

Current limitations

  • macOS has no public API for assigning the Dock to a display. DockPin helps manage its location while running; behaviour depends on screen geometry.
  • If another display completely covers the selected edge, DockPin may not reliably bring the native Dock there. The shared boundary stays pass-through.
  • Automatic recovery still needs Accessibility access and a usable target edge. Retries are limited; it cannot force every display arrangement to work.
  • The optional bar uses a Mac-wide list of running apps. It does not filter apps by the screen their windows are on or create independent copies of the native Dock.
  • The running-app bar is a compact switcher, without pinned launchers, folders, Trash or the full feature set of the native Dock.
  • The v0.2.1 package is ad hoc signed, without Developer ID or Apple notarization. No Intel build is included in this download.

Project demonstration