TZGyn 3e57efe312 Hide menu bar icons with a cover instead of moving them off screen
Sliding the icons off the screen meant bringing them all back just to
open one menu, which flickered. Draw a frosted window over the other
apps' icons instead: they keep their real positions, so tapping a tile
opens its menu in place with no reveal, and the cover leaves a gap so
the hamburger is never hidden.

💘 Generated with Crush

Assisted-by: Crush:deepseek-v4.1-flash
2026-09-27 03:06:15 +08:00

SimpleTopBar

A native macOS menu bar app: a hamburger menu in the menu bar whose panel collects every other app's menu bar (tray) icons, plus every app running on your Mac, into three sections:

  • Menu Bar — a tray of all other apps' menu bar items, discovered through the Accessibility API. Click one to open its real menu. Optionally hide the items from the menu bar so they only live inside this panel (best-effort; see below).
  • Apps — regular apps that live in the Dock.
  • Background Apps — accessory/agent apps without a Dock icon. This section is a dropdown: it stays collapsed to a single header, and when you expand it only the first few apps are shown. The rest are hidden behind a Show N more row so the list never overflows the panel.

Click any row to activate the app, or right-click for Activate / Hide / Quit.

Accessibility permission

Collecting and opening other apps' menu bar items needs Accessibility permission (System Settings → Privacy & Security → Accessibility). The panel prompts for it; without it the Menu Bar section is empty and everything else still works.

Hiding menu bar items

macOS has no public API to move another app's status item. Instead of moving them, the Hide items from the menu bar toggle (on by default, remembered) draws a frosted cover window over the other apps' icons. They keep their real positions, so tapping a tile in the panel opens that app's menu in the right place with no flicker, and the cover leaves a gap for the hamburger so it is never hidden.

What it does and does not cover:

  • Covers other third-party apps' icons (cmux, Kapture, WireGuard, input source, Now Playing, …).
  • Keeps Wi-Fi, Spotlight, Clock, Battery and Control Center visible — macOS reserves that far-right area, so those icons stay put.
  • The cover matches the menu bar's frosted look only approximately; over an unusual wallpaper the covered strip may be slightly visible.
  • Turning the toggle off removes the cover immediately; quitting does too.

Install with Homebrew

brew tap TZGyn/tap https://gitea.tzgyn.dev/TZGyn/homebrew-tap.git
brew trust TZGyn/tap
brew install --cask simpletopbar

The tap is hosted on Gitea, so the full URL is required. Homebrew may print an "Unsupported tap" warning — it's harmless.

Upgrade

brew update
brew upgrade --cask simpletopbar

If Gatekeeper still blocks the app after upgrading (it is not notarized yet):

xattr -dr com.apple.quarantine /Applications/SimpleTopBar.app

Build from source

swift build                 # debug build
swift run SimpleTopBar      # run from terminal (app appears in the menu bar)
swift run SimpleTopBar --self-test   # headless check of the dropdown logic
./build-app.sh 0.2.0        # release build + SimpleTopBar.app bundle + icon + codesign
./release.sh 0.2.0          # build-app.sh + dist/SimpleTopBar.zip + sha256

Around the Background dropdown

The background section is collapsed by default. Expanding it reveals AppListModel.backgroundPageSize (5) apps at a time; when more are running a Show N more button reveals the next page. Collapsing resets the page.

Releases

./release.sh <version> builds and zips the app to dist/SimpleTopBar.zip and prints its sha256. Tag v<version>, attach the zip to a release on the Gitea repo, and bump version/sha256 in the cask in TZGyn/homebrew-tap.

S
Description
macOS menu bar top bar showing running and background apps
Readme
288 KiB
2026-09-28 04:19:40 +00:00
Languages
Swift 90.4%
Shell 9.6%