DockPin

Many displays.
One Dock.

DockPin keeps the macOS Dock on your main display. Push the pointer against the bottom of another monitor as often as you like: the Dock stays where it is.

Free and open source · Apple silicon and Intel · macOS 13 or later · Signed and notarized by Apple

Push the pointer against the bottom of either display. Try the right one.

macOS moves the Dock wherever your pointer pushes. DockPin says no.

With more than one display, the Dock follows the pointer to the bottom of whichever screen it touches. Reach for a window at the bottom of your second monitor and the Dock jumps there. DockPin keeps it on the main display.

Without DockPinThe Dock leaves your main display every time the pointer brushes the bottom of another one.
With DockPinThe bottom edge of every other display is guarded, so the Dock never sees the push and stays put.

Small, quiet, done

No window, no menu bar icon, nothing to configure. Install it once and forget it is there.

Guards the Dock edge

DockPin ignores the pointer's movement in a thin 4 pt band along the Dock edge of every display except the main one. The cursor itself moves as usual.

Brings the Dock back

If the Dock ends up elsewhere anyway, say after you plug in a monitor, DockPin puts it back on the main display.

Bottom, left or right

DockPin follows the Dock's position and guards the matching edge. Move the Dock to the side and it adapts on its own.

Crossing stays free

Edges that border another display are left alone, so the pointer moves between your monitors exactly as before.

About 2 MB of memory

One small C program with no UI. Apart from a 50 µs look at the display layout every few seconds, it only works when the pointer moves.

Permission survives updates

Releases are signed with the same Developer ID and notarized by Apple, so macOS keeps the Accessibility permission across updates.

Install

Use one way or the other. Either way, DockPin starts at every login.

Homebrew Recommended

Installed this way, DockPin updates with the rest of your Homebrew packages.

Terminal
brew tap indapublic/dockpin https://github.com/indapublic/dockpin
brew trust --formula indapublic/dockpin/dockpin
brew install indapublic/dockpin/dockpin
brew services start dockpin

Update with brew upgrade dockpin. Remove with brew services stop dockpin and brew uninstall dockpin.

Disk image

Drag DockPin to Applications and open it once. From then on it starts at every login.

Download .dmg

All versions are on GitHub Releases.

  • Apple silicon or Intel Mac
  • macOS 13 Ventura or later
  • Signed with a Developer ID and notarized by Apple

Then allow DockPin in System Settings › Privacy & Security › Accessibility. macOS asks once; updates keep the permission.

Before you install

DockPin does one thing in a blunt way. Here is what that means.

  • It needs AccessibilityOnly apps with this permission may filter pointer events. DockPin only looks at where the pointer is, never connects to the network and stores nothing. Its source is one C file.
  • Apps miss the pointer in that 4 pt bandAlong the Dock edge of the other displays, apps don't see the pointer move, so hover effects right at the bottom of those screens don't react.
  • Hot corners there stay quietHot corners at the ends of the guarded edge on other displays don't fire. Hot corners on the main display work as usual.
  • The main display is the one macOS calls mainDockPin keeps the Dock on the display marked as main in System Settings › Displays. To use another one, make it the main display there.

Questions

How do I quit or remove it?

Turn DockPin off in System Settings › General › Login Items, or run /Applications/DockPin.app/Contents/MacOS/DockPin --unregister, then move DockPin to the Trash. With Homebrew, run brew services stop dockpin and brew uninstall dockpin.

Does it work when the Dock hides automatically?

Yes. The Dock still appears on the main display when the pointer reaches its edge there. On the other displays it no longer appears or moves.

Can I still move the pointer between monitors?

Yes. Edges that border another display are never guarded, so the pointer crosses over as usual.

Why isn't it in the Mac App Store?

Apps in the Mac App Store must run in Apple's App Sandbox, and filtering pointer events needs the Accessibility permission, which sandboxed apps can't use for this. Window utilities such as Rectangle and AltTab are distributed outside the App Store too.

Something isn't right. What should I send?

The log at ~/Library/Logs/DockPin.log. Run open -R ~/Library/Logs/DockPin.log in Terminal to see it in Finder, then attach it to a new issue. It holds timestamps, the DockPin and macOS versions and your display layout, nothing else.

How much does it cost?

Nothing. DockPin is free and open source under the MIT license.