Barkeep

How to rearrange Mac menu bar icons

Updated 2026 · a 6-minute read

The quick answer, if that's all you need: hold ⌘ Command and drag any menu bar icon left or right. Release it where you want. That's the whole feature, it's built into macOS, and a surprising number of long-time Mac users have never been told about it.

The longer and more interesting answer is why you have to do it by hand — why no app, including ours, can rearrange those icons for you. We tried hard enough to be confident about the answer, and the finding is worth writing down because it isn't documented anywhere obvious.

Advertisement

Ad space (responsive)

The basics of ⌘-drag

Hold ⌘ Command, click and hold an icon, then drag horizontally. A few practical notes:

One tip that saves grief on notched MacBooks: drag your most important icons to the right. The status area fills right-to-left and gets clipped at the left end, so rightmost icons are the ones least likely to vanish when space runs short.

Why can't an app just do this for me?

This is the obvious feature request for any menu bar utility: show me my icons in a window, let me drag them into the order I want, and apply it. It's what most people expect the moment they see a list of their icons in a settings panel.

It cannot be built, and here's the shape of the problem.

There is no API to move another app's status item

macOS provides no public interface for one app to reposition another app's menu bar icon. Not through Accessibility, not through the window server, not through anything supported. Each item belongs to the app that created it.

The saved position exists, but writing it doesn't help

macOS does persist the order. Each status item's position is stored in the owning app's preferences under a key named NSStatusItem Preferred Position. So in principle another app could write into that app's preferences to change where its icon sits.

That does work — with a catch that makes it useless for this purpose. The value is only read when the item is created. Writing it changes nothing until that app next relaunches and rebuilds its status item. "Rearrange your menu bar, now quit and reopen all nineteen apps" is not a feature anybody wants.

So what about simulating the drag?

If ⌘-drag is the only mechanism, the natural next thought is to perform it programmatically — synthesise the modifier key, the mouse-down, the movement, and the mouse-up. macOS has a public API for posting input events (CGEvent), and Accessibility permission unlocks it.

We built exactly that, and tested it against a real menu bar. The result: the icon does not move. Not once, in any variant.

Advertisement

Ad space (responsive)

What we tested before concluding it's impossible

It would be easy to get this wrong and blame the platform for a bug in our own code, so each link in the chain was verified independently:

Every prerequisite checked out, and the icon still didn't move. The conclusion we drew: the window server requires genuine hardware input for this particular gesture and ignores synthetic events, regardless of permissions.

This is almost certainly deliberate. An API that let any app silently rearrange or remove other apps' menu bar icons would be an obvious abuse vector — an app could hide the icon of something you'd want to notice.

What this means when you're choosing a menu bar app

Once you know the constraint, the whole category makes more sense:

The practical workflow

In practice this isn't a burden, because arranging your menu bar is a one-time job:

  1. Decide which handful of icons you genuinely want visible at all times.
  2. ⌘-drag those to the right of your organizer's divider. Everything to the left gets hidden.
  3. Leave it. New apps will add icons over time, but you only touch it when something changes.

Barkeep is built around this reality rather than pretending otherwise. Its settings show a live mirror of your real menu bar, split into Hidden and Always visible, so you can see exactly what's where — and it tells you plainly that the ⌘-drag is yours to make. It needs no permission to hide icons at all.

Get Barkeep — free

Related: Why menu bar icons disappear behind the notch · Why menu bar apps ask for Accessibility · How to hide menu bar icons