Islet - iPhone's Dynamic Island, brought to your Mac's notch
by•
Most notch utilities just draw a static shape over the cutout. Islet
actually behaves like iPhone's Dynamic Island: native spring-physics
expand/collapse, real-time HUDs for volume and brightness, a live music
glance with full playback controls, one-tap audio output switching (no
System Settings detour), plus calendar, weather, and a file tray you can
drop into from anywhere. Built natively in Swift + AppKit, not Electron,
fast and fullscreen-aware.


Replies
Islet
Islet
@hannesh Thanks a lot, means a lot! Yeah that was the whole goal, wanted it to feel like it belongs on macOS, not bolted on. Let me know what you think once you've tried it!
these notch utilities always make me nervous about the next macOS point release. Apple's changed how the notch/camera housing area behaves at the API level before without much warning. is this drawing into a stable public area (menu bar extra, NSStatusItem territory) or is it doing something closer to overlaying private window layers that could just break on the next update?
Islet
@omri_ben_shoham1 Fair question. The main overlay window is a plain NSPanel at .statusBar level, totally public API. The one exception is the fullscreen-overlay feature (keeping the island visible over fullscreen apps), which uses CGSSpace, an undocumented API a bunch of other notch apps also rely on. It's isolated to that one feature, so worst case it breaks while everything else keeps working. I keep an eye on betas and patch fast if it happens.
Islet
@thys_beesman Trigger conditions were the harder part by far. The spring itself is just two numbers (response/damping) tuned once and left alone. But figuring out exactly when to expand vs stay collapsed, especially across fullscreen apps and multiple displays, needed its own dedicated detection logic (separate fullscreen probe, separate display resolver) plus a grace delay so quick pointer movements don't cause flicker. That state machine took way more iteration than the animation curve did.
And to your other question: same answer as above, the main window is public API (NSPanel, .statusBar level), only the fullscreen-overlay part leans on an undocumented CGSSpace call.