How We Built WinIsland: Bringing Dynamic Island Overlay HUDs to Windows
Ishu Prabhakar
Founder & Lead Engineer
Rethinking Desktop Utility Placement
Desktop operating systems have plenty of space, but utility windows usually sit in one of two places: buried in the system tray, or taking up full taskbar slots as open application windows.
When Apple introduced the Dynamic Island on mobile screens, it highlighted a subtle design principle: place active status controls directly at the screen edge where your eyes already rest, and let the control surface morph based on context.
We wanted that same experience on Windows desktop: a floating overlay at the top edge of the primary monitor that displays live media playback, handles clipboard history, triggers quick system actions, and shrinks back into a small pill when idle.
Here is how we built WinIsland using Flutter Desktop, Win32 FFI hooks, and Riverpod 3.x.
Challenge 1: The Top-Desktop Window Overlay Problem
Building a floating overlay on Windows desktop sounds simple until you hit the window manager constraints. A top-of-screen overlay needs to:
- Stay frameless and always on top of other windows.
- Render native DWM transparent acrylic blur behind content.
- Allow mouse clicks to pass through transparent regions outside the Island when collapsed.
- Capture mouse clicks when expanded.
// Dynamic window bounds recalculation during Island morph expansion
void updateIslandBounds({required bool isExpanded}) {
final Size newSize = isExpanded
? const Size(420, 180)
: const Size(180, 36);
// Re-center horizontally along top screen edge
final double screenWidth = ScreenRetriever.primaryDisplay.size.width;
final double xOffset = (screenWidth - newSize.width) / 2;
WindowManager.instance.setBounds(Rect.fromLTWH(
xOffset,
0, // Flush against top screen boundary
newSize.width,
newSize.height,
));
}
By dynamically adjusting the native Win32 window bounds during the morph animation, we avoid blocking mouse clicks on underlying desktop applications when the Island is in its collapsed state.
Challenge 2: Synchronizing Live Media without Polling
Constantly polling Windows system APIs for current music track details wastes CPU cycles and drains laptop battery life.
WinIsland registers event-driven C++ FFI listeners against the Windows System Media Transport Controls (GSMTC) interface. When Spotify, Apple Music, or a web browser changes tracks, Windows emits a media state update event. WinIsland captures the track title, artist name, and album art bitmap stream directly from memory and updates the Riverpod media state notifier.
Windows Media Session (GSMTC) ──event──> Win32 FFI Listener ──stream──> Riverpod MediaNotifier ──UI──> Live HUD Widget
Challenge 3: Multi-Window Isolate Decoupling
If a user opens an extensive Settings dialog with theme selectors and dock customizers, rendering complex settings pages inside the main overlay process risks dropping animation frames on the floating Island overlay.
We resolved this by adopting a Multi-Window Isolate Architecture:
- The main Island overlay runs as the primary Flutter isolate.
- The Settings panel runs in a completely separate native window isolate using
desktop_multi_window. - Cross-window state updates (such as accent color changes or dock pin modifications) communicate asynchronously via inter-isolate IPC method channels.
Challenge 4: Offline Local Storage for Clipboard History
Clipboard utilities are incredibly handy, but user privacy is non-negotiable. WinIsland's clipboard history feature monitors system copy events locally and indexes the latest 20 items into an offline ObjectBox NoSQL database.
Because ObjectBox uses direct native C memory bindings (objectbox_flutter_libs), fetching or updating clipboard history items happens in under 1 millisecond, completely offline and isolated from any external network layer.
Key Takeaways
- Window bounds management is critical for desktop overlays: Dynamically shrinking window frame boundaries to match active UI elements keeps non-interactive screen regions click-through transparent.
- Event-driven system hooks beat polling: Listening directly to GSMTC media events gives instantaneous track sync with zero background CPU overhead.
- Isolate separation protects UI framerates: Offloading secondary configuration windows to separate isolates keeps main overlay morph animations smooth at 60 FPS.
WinIsland is developed by DeepSky Labs as part of our suite of privacy-focused desktop utilities for Windows.
Related Engineering Logs
How We Built WinSearch: A Spotlight-Style Launcher for Windows using Flutter & C#
A technical deep dive into named-pipe IPC, Riverpod state management without codegen, and building an instant keyboard-driven launcher for Windows.
WebRTC vs. WebSockets vs. gRPC: Choosing the Right Real-Time Protocol
Building real-time applications requires choosing between WebRTC, WebSockets, and gRPC. We break down the protocols, how NAT traversal works, and how to choose the right tech for peer-to-peer streaming and low-latency APIs.