Skip to content

Releases: m-samoylov/hidden

v1.11.1 — verified macOS 27 hide width

Choose a tag to compare

@m-samoylov m-samoylov released this 17 Sep 00:28

Fork release. Follow-up to v1.11,
which restored menu-bar hiding on macOS 27 (upstream #360).
v1.11 computes the collapsed separator's width from a cliff measured on two displays;
this release stops trusting that number and proves it on the bar instead.

⚠️ Not notarized — read before installing

This build is signed ad-hoc, not with a Developer ID, and it is not notarized.
macOS will refuse to open it after download ("Hidden Bar is damaged and can't be opened").
To run it, remove the download quarantine flag after copying the app to /Applications:

xattr -dr com.apple.quarantine "/Applications/Hidden Bar.app"

Only do that because you know where this build came from. If you would rather not,
build from source — the repository compiles with no signing setup:

xcodebuild -project 'Hidden Bar.xcodeproj' -scheme 'Hidden Bar' \
  -configuration Release CODE_SIGN_IDENTITY="-" CODE_SIGN_STYLE=Manual build

What changed

macOS 27 drops a status item that is too wide, and a dropped separator hides nothing
while still reporting the full width it was given — the failure is invisible from inside
the app. v1.11 stays under the limit by computing it (narrowest screen / 2 − 16 − 24),
but that limit has only been measured on two display widths. On a display where the
arithmetic is wrong, hiding would break again, silently.

The first collapse on each display configuration now proves the width. A one-point
transparent probe item is registered last, so it lands among the icons the collapse has
to clear, and the collapse is only trusted if it carries the probe away. Otherwise the
width drops by a quarter and the collapse is retried, up to six times. The probe is
removed as soon as the answer is in — it is never in the bar while the app is idle — and
a proven width is reused until the display configuration changes.

Two measurements shaped this, both on macOS 27.0 build 26A428, 1728pt display, using
other apps' menu-bar icons as ground truth:

  • Travel is the signal, not position. When the separator clamps against the left edge
    of the status region it grows out past the arrow, so its arrow-facing edge starts moving
    at 600pt on a bar that still hides correctly at 840pt (the real cliff is between 840 and
    900). An edge-jump test therefore reads a working bar as broken.
  • The probe must settle before the separator grows. A freshly registered item yields to
    the separator's claimed span whether or not that span is honored. Measured at 0.35s the
    probe moved on a 964pt request that hid nothing; at 1.0s it stayed put and the retry
    correctly settled on 723pt.

Verified on that machine both ways: the computed width is proven at 824pt on the first try
and the icons leave the bar; a width forced 100pt over the cliff is rejected and 723pt is
proven in its place. macOS 26 and earlier never run any of this and keep the original path.

Credit to upstream PR #400 for the idea of
measuring rather than trusting a constant.

Not verified

Multi-display and non-notched Macs; the always-hidden section (verification is skipped
while it is collapsed, since its own separator is what parks the leftmost icons); and a
wide single display that needs more push than one item can deliver — there the probe
reports that hiding is unavailable rather than fixing it.

v1.11 — macOS 27 hide fix

Pre-release

Choose a tag to compare

@m-samoylov m-samoylov released this 16 Sep 22:54

Fork release. Restores menu-bar hiding on macOS 27, which broke the length-inflation
mechanism Hidden Bar has always used (upstream #360).

⚠️ Not notarized — read before installing

This build is signed ad-hoc, not with a Developer ID, and it is not notarized.
macOS will refuse to open it after download ("Hidden Bar is damaged and can't be opened").
To run it, remove the download quarantine flag after copying the app to /Applications:

xattr -dr com.apple.quarantine "/Applications/Hidden Bar.app"

Only do that because you know where this build came from. If you would rather not,
build from source — the repository compiles with no signing setup:

xcodebuild -project 'Hidden Bar.xcodeproj' -scheme 'Hidden Bar' \
  -configuration Release CODE_SIGN_IDENTITY="-" CODE_SIGN_STYLE=Manual build

What's fixed on macOS 27

macOS 27 rebuilt the menu bar and broke hiding in two independent ways. Both are fixed
behind an availability check, so macOS 26 and earlier keep the original code path.

  1. An over-wide item is dropped. macOS 27 discards a status item whose backing window
    (length plus 16pt of chrome) reaches half the display width. The old length — twice the
    widest screen — is over that limit on every Mac, so the separator was ejected from the
    layout and displaced nothing. The collapse length now derives from the narrowest
    attached screen, the inverse of the old rule, because one length applies on every
    display's bar while the limit is per display.
  2. A seated neighbour is never evicted. Setting the collapsed length in one jump leaves
    every other icon exactly where it was, so only the first collapse after launch appeared
    to work. Growth now ramps in 40pt steps, which does carry the neighbouring icons along.

Measured on macOS 27.0 build 26A428, 1728pt display: 848pt hides, 849pt hides nothing
(848 + 16 = 864 = 1728 / 2); a single-jump growth moved neighbours 0pt, while 10pt and 40pt
steps moved them out of the bar. The same arithmetic fits the 3008pt-display measurements in
upstream PR dwarvesf#392.

Known limitations

  • Icon placement is still broken by macOS 27, and this release does not fix it. Positions
    moved into the system's layout table: NSStatusItem Preferred Position ... is gone from the
    app's preferences, and an app can no longer read or set where its own icons sit. After
    upgrading — or after moving the app — the separator can land anywhere, including inside the
    system overflow menu (») where you cannot see it. Hiding then looks broken because your
    icons are no longer to the left of the separator. Fix it once with a ⌘-drag; the placement
    does survive restarts after that.
  • Not verified on hardware: multi-display setups, Macs without a notch, and the always-hidden
    section. A wide single display may need more push than one item can deliver under the new
    limit.

Also in v1.11

Opt-in hover-to-expand, right-click on the arrow opens the context menu, multi-display collapse
width with hot-plug re-apply, auto-collapse no longer fires mid-interaction, SMAppService
autostart, plus several leak and rendering fixes. Full list in CHANGELOG.md.

Requirements

macOS 13 Ventura or later.


Upstream project: dwarvesf/hidden. This is an unofficial
fork build, not affiliated with or endorsed by the Dwarves Foundation.

sha256 e569e531171ac9cdf5478be5519eed989bf4393ab0c82342af2796d9e898fc2a HiddenBar-1.11.zip