Skip to content
This repository was archived by the owner on May 25, 2026. It is now read-only.

Commit 63bbc3f

Browse files
committed
Added docs
1 parent d6a99e5 commit 63bbc3f

2 files changed

Lines changed: 136 additions & 10 deletions

File tree

README.md

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
# Dramatic Peninsula 🎵
2+
3+
> A GNOME Shell extension that turns your laptop's physical notch into a
4+
> music widget — like Apple's Dynamic Island, but on Linux, held together
5+
> with DBus calls and optimism.
6+
7+
---
8+
9+
## What is this?
10+
11+
Apple has the **Dynamic Island**. It's polished, it's animated, it's the
12+
centerpiece of their marketing.
13+
14+
You have the **Dramatic Peninsula**. It's attached to your panel on one
15+
side (hence: peninsula, not island), it animates your music with a tiny
16+
waveform, and it will absolutely lose its mind if you dare open a YouTube
17+
tab while Apple Music is paused.
18+
19+
We fixed that last part. Mostly.
20+
21+
---
22+
23+
## Features
24+
25+
- Collapses flush into the physical notch when idle or paused — completely
26+
invisible, like your productivity
27+
- Expands on hover to show track info, album art, playback controls, a
28+
progress bar, and a volume slider
29+
- Animated waveform bars while music plays
30+
- Actually blocks controls when YouTube is active (we had to fight for this)
31+
- Works exclusively with Apple Music in Firefox because we are not
32+
general-purpose software, we are **art**
33+
34+
---
35+
36+
## Requirements
37+
38+
- GNOME Shell 45 or higher
39+
- Asahi Linux (or any Linux with a notch, both of you)
40+
- Firefox browser
41+
- Apple Music subscription (ironic, given you're on Linux)
42+
- The Firefox MPRIS plugin that exposes media controls over DBus
43+
(`firefox-mpris` or equivalent)
44+
- A physical notch. No notch? It still works, it just looks like a weird
45+
floating pill at the top of your screen. A conversation starter.
46+
47+
---
48+
49+
## Installation
50+
51+
1. Clone this repo into your GNOME extensions folder:
52+
```
53+
git clone <repo> ~/.local/share/gnome-shell/extensions/dramatic-peninsula@you
54+
```
55+
2. Edit `src/constants.js` to match your setup (see Caveats below, and
56+
also consider your life choices)
57+
3. Restart GNOME Shell (`Alt+F2``r``Enter`, or log out if you're on
58+
Wayland and that doesn't work, which it won't)
59+
4. Enable the extension via GNOME Extensions app or:
60+
```
61+
gnome-extensions enable dramatic-peninsula@you
62+
```
63+
5. Open Firefox, go to Apple Music, play a song
64+
6. Stare at the notch
65+
7. Feel something
66+
67+
---
68+
69+
## Caveats (please read, unlike most READMEs)
70+
71+
This extension has more hardcoded values than a CS freshman's first
72+
project. Specifically:
73+
74+
- **Panel height is hardcoded to 42px.** If your panel is a different
75+
height the collapsed pill will either peek out below the notch like a
76+
shy rectangle, or disappear entirely into it like it owes you money.
77+
78+
- **Only works with Firefox.** The player watcher explicitly filters for
79+
a bus name containing `firefox`. Spotify, Rhythmbox, your obscure
80+
terminal music player — all ignored. This is a feature disguised as
81+
a limitation.
82+
83+
- **Only reacts to Apple Music tabs.** It checks the track URL for
84+
`music.apple.com`. Playing from any other source in Firefox? The
85+
peninsula remains dramatically silent.
86+
87+
- **Album art only loads from local file paths.** The Firefox MPRIS
88+
bridge caches art locally and provides a `file://` URI, which we load
89+
directly. Remote URLs will show the placeholder `` symbol, which
90+
is honestly more artistic anyway.
91+
92+
- **Volume control writes to the MPRIS Volume property.** Whether your
93+
browser respects this is between you and Firefox.
94+
95+
- **The progress bar seeks using SetPosition.** Apple Music's web player
96+
may or may not honor this depending on the phase of the moon and your
97+
Firefox version.
98+
99+
- **Rounded album art corners may not work.** We tried. We really tried.
100+
`St.Bin`, `clip_to_allocation`, border-radius — it's a whole thing.
101+
PRs welcome.
102+
103+
---
104+
105+
## Known Issues
106+
107+
- Everything described in Caveats
108+
- The extension logs to `/tmp/fun-notch.log` because we needed to debug
109+
at 2am and never removed it. You can watch your music metadata stream
110+
by in real time with `tail -f /tmp/fun-notch.log`, which is either
111+
useful or haunting depending on your mood.
112+
- If you manage to trigger a race condition between YouTube and Apple
113+
Music fast enough, the peninsula gets confused. We respect that you
114+
would even try.
115+
116+
---
117+
118+
## Contributing
119+
120+
If you want to make this work with Spotify, other browsers, arbitrary
121+
panel heights, or without a physical notch — go for it. Just know that
122+
every generalisation you add brings it one step closer to becoming
123+
software and one step further from being a personal art project built at
124+
midnight on Asahi Linux.
125+
126+
---
127+
128+
## Credits
129+
130+
Built by a human and Claude, at midnight, on Asahi Linux.
131+
The human had the idea. Claude wrote the code. The bugs were a
132+
collaboration.
133+
134+
---
135+
136+
*"It's not an island. It's not even really a peninsula. It's a vibe."*

music.sh

Lines changed: 0 additions & 10 deletions
This file was deleted.

0 commit comments

Comments
 (0)