Skip to content

Nocturne 1.0.5

Choose a tag to compare

@dotcomjack dotcomjack released this 08 Aug 16:23
· 12 commits to main since this release

Four fixes from an adversarial review pass. All four were measured, not guessed.

Changing one Clock Option silently reverted the others

Any switch pushed all four keys from Nocturne's own cached copies, and Nocturne read the system values exactly once, at first run. So anything you changed in System Settings afterwards got overwritten the next time you touched an unrelated switch.

enable Seconds in System Settings   -> ShowSeconds = 1
flip "Day of the week" in Nocturne  -> ShowSeconds = 0   (silently reverted)

Each switch now writes only its own key, and Settings re-reads the live values every time it opens, so the panel can no longer show a stale picture either.

The Hide everything strip was 1pt too tall

Its height came from frame.maxY - visibleFrame.maxY, which reads 34 on a notched display where the bar is really 33. The strip overhung by two device pixels across the full width and, being darker than the bar, rendered as a hairline rule underneath it.

Height is now measured from the menu bar items themselves, which are exactly as tall as the bar. Verified: strip window is 33.0, matching the Window Server's own menu bar window.

The beacon could be a decoy

AppKit keeps reporting a plausible on-bar frame for a status item macOS has dropped for menu bar overflow, or that a menu bar manager has parked off screen. Of 26 test status items, 20 were dropped and every one still claimed isVisible with a frame matching no real slot.

Since that glyph is the advertised way out of a blank menu bar, painting one that does nothing when clicked is worse than painting none. It now has to land inside a strip we actually placed, and the strip comes down if it cannot.

Launch at login failed silently

It snapped back with no explanation when macOS refused registration. It now says so and offers a button straight to Login Items.