Nocturne 1.0.7
Five fixes from a third review pass. The headline one is a guard that never did anything.
The safety guard in Hide everything was doing nothing
1.0.4 added a check so the moon glyph is only drawn where Nocturne's icon really is, because that glyph is the advertised way out of a blank menu bar and painting a fake one is worse than painting none.
The check compared the glyph frame against the strip we had placed. In Hide everything that strip spans the full screen width, so any frame in the menu bar's y-band intersected it, including the exact x=57 phantom it was written to reject. It has never once fired.
It now asks the window list whether an item is actually drawn there. Measured:
| old guard | new check | |
|---|---|---|
| real menu bar item | pass | pass |
| phantom at x=57 | pass | reject |
The same guard could make the bar flash forever
It also ran after the windows were placed, so with an off-bar glyph it created the strip and tore it down on the same pass, every 2 seconds, indefinitely. The decision now happens before anything is drawn.
Settings could show the wrong switch position, then act inverted
@AppStorage caches a key in memory once assigned through the wrapper and stops reading through to UserDefaults, so the code that pulled live system values in was invisible to any switch you had already touched. The panel showed the old position, and your next click wrote a value the system already had, so the menu bar did not change and you had to click twice.
That refresh only ran once per login anyway
The Settings window is a singleton that is only ordered out when closed, so its view never leaves and onAppear fires once per process. For an app that launches at login, that is once. Reopening Settings showed the values from the first open, and the "macOS is blocking this" row stayed up even after you had approved Nocturne under Login Items. It now refreshes whenever the window becomes key.
Dark to light left the glyph invisible
The flat fill colour is baked into a layer and the glyph is tinted once, so with Appearance set to Auto, sunset left a white glyph on a light strip. Appearance changes are now observed and the overlay rebuilds.
Also: flipping several Clock Options in a row now costs one Control Center restart instead of one each.