A GNOME Shell extension that turns your laptop's physical notch into a music widget — like Apple's Dynamic Island, but on Linux, held together with DBus calls and optimism.
Apple has the Dynamic Island. It's polished, it's animated, it's the centerpiece of their marketing.
You have the Dramatic Peninsula. It's attached to your panel on one side (hence: peninsula, not island), it animates your music with a tiny waveform, and it will absolutely lose its mind if you dare open a YouTube tab while Apple Music is paused.
We fixed that last part. Mostly.
- Collapses flush into the physical notch when idle or paused — completely invisible, like your productivity
- Expands on hover to show track info, album art, playback controls, a progress bar, and a volume slider
- Animated waveform bars while music plays
- Actually blocks controls when YouTube is active (we had to fight for this)
- Works exclusively with Apple Music in Firefox because we are not general-purpose software, we are art
- GNOME Shell 45 or higher
- Asahi Linux (or any Linux with a notch, both of you)
- Firefox browser
- Apple Music subscription (ironic, given you're on Linux)
- The Firefox MPRIS plugin that exposes media controls over DBus
(
firefox-mprisor equivalent) - A physical notch. No notch? It still works, it just looks like a weird floating pill at the top of your screen. A conversation starter.
- Clone this repo into your GNOME extensions folder:
git clone <repo> ~/.local/share/gnome-shell/extensions/dramatic-peninsula@you - Edit
src/constants.jsto match your setup (see Caveats below, and also consider your life choices) - Restart GNOME Shell (
Alt+F2→r→Enter, or log out if you're on Wayland and that doesn't work, which it won't) - Enable the extension via GNOME Extensions app or:
gnome-extensions enable dramatic-peninsula@you - Open Firefox, go to Apple Music, play a song
- Stare at the notch
- Feel something
This extension has more hardcoded values than a CS freshman's first project. Specifically:
-
Panel height is hardcoded to 42px. If your panel is a different height the collapsed pill will either peek out below the notch like a shy rectangle, or disappear entirely into it like it owes you money.
-
Only works with Firefox. The player watcher explicitly filters for a bus name containing
firefox. Spotify, Rhythmbox, your obscure terminal music player — all ignored. This is a feature disguised as a limitation. -
Only reacts to Apple Music tabs. It checks the track URL for
music.apple.com. Playing from any other source in Firefox? The peninsula remains dramatically silent. -
Album art only loads from local file paths. The Firefox MPRIS bridge caches art locally and provides a
file://URI, which we load directly. Remote URLs will show the placeholder♪symbol, which is honestly more artistic anyway. -
Volume control writes to the MPRIS Volume property. Whether your browser respects this is between you and Firefox.
-
The progress bar seeks using SetPosition. Apple Music's web player may or may not honor this depending on the phase of the moon and your Firefox version.
-
Rounded album art corners may not work. We tried. We really tried.
St.Bin,clip_to_allocation, border-radius — it's a whole thing. PRs welcome.
- Everything described in Caveats
- The extension logs to
/tmp/fun-notch.logbecause we needed to debug at 2am and never removed it. You can watch your music metadata stream by in real time withtail -f /tmp/fun-notch.log, which is either useful or haunting depending on your mood. - If you manage to trigger a race condition between YouTube and Apple Music fast enough, the peninsula gets confused. We respect that you would even try.
If you want to make this work with Spotify, other browsers, arbitrary panel heights, or without a physical notch — go for it. Just know that every generalisation you add brings it one step closer to becoming software and one step further from being a personal art project built at midnight on Asahi Linux.
Built by a human and Claude, at midnight, on Asahi Linux. The human had the idea. Claude wrote the code. The bugs were a collaboration.
"It's not an island. It's not even really a peninsula. It's a vibe."