{"id":50400318,"url":"https://github.com/jelius-sama/dramatic-peninsula","last_synced_at":"2026-05-30T23:03:01.133Z","repository":{"id":354897520,"uuid":"1216848139","full_name":"jelius-sama/dramatic-peninsula","owner":"jelius-sama","description":"Dramatic Peninsula — because Dynamic Island was taken, and frankly this is more dramatic anyway. Vibe Coded; Use with caution.","archived":false,"fork":false,"pushed_at":"2026-05-01T08:18:44.000Z","size":43,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-01T10:19:26.742Z","etag":null,"topics":["asahi-linux","dynamic-island","gnome-shell-extension","linux","macbook","notch"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jelius-sama.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-21T09:41:07.000Z","updated_at":"2026-05-01T08:17:43.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/jelius-sama/dramatic-peninsula","commit_stats":null,"previous_names":["jelius-sama/fun-notch","jelius-sama/dramatic-peninsula"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/jelius-sama/dramatic-peninsula","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jelius-sama%2Fdramatic-peninsula","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jelius-sama%2Fdramatic-peninsula/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jelius-sama%2Fdramatic-peninsula/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jelius-sama%2Fdramatic-peninsula/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jelius-sama","download_url":"https://codeload.github.com/jelius-sama/dramatic-peninsula/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jelius-sama%2Fdramatic-peninsula/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33712581,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asahi-linux","dynamic-island","gnome-shell-extension","linux","macbook","notch"],"created_at":"2026-05-30T23:02:59.364Z","updated_at":"2026-05-30T23:03:01.127Z","avatar_url":"https://github.com/jelius-sama.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dramatic Peninsula 🎵\n\n\u003e A GNOME Shell extension that turns your laptop's physical notch into a\n\u003e music widget — like Apple's Dynamic Island, but on Linux, held together\n\u003e with DBus calls and optimism.\n\n---\n\n## What is this?\n\nApple has the **Dynamic Island**. It's polished, it's animated, it's the\ncenterpiece of their marketing.\n\nYou have the **Dramatic Peninsula**. It's attached to your panel on one\nside (hence: peninsula, not island), it animates your music with a tiny\nwaveform, and it will absolutely lose its mind if you dare open a YouTube\ntab while Apple Music is paused.\n\nWe fixed that last part. Mostly.\n\n---\n\n## Features\n\n- Collapses flush into the physical notch when idle or paused — completely\n  invisible, like your productivity\n- Expands on hover to show track info, album art, playback controls, a\n  progress bar, and a volume slider\n- Animated waveform bars while music plays\n- Actually blocks controls when YouTube is active (we had to fight for this)\n- Works exclusively with Apple Music in Firefox because we are not\n  general-purpose software, we are **art**\n\n---\n\n## Requirements\n\n- GNOME Shell 45 or higher\n- Asahi Linux (or any Linux with a notch, both of you)\n- Firefox browser\n- Apple Music subscription (ironic, given you're on Linux)\n- The Firefox MPRIS plugin that exposes media controls over DBus\n  (`firefox-mpris` or equivalent)\n- A physical notch. No notch? It still works, it just looks like a weird\n  floating pill at the top of your screen. A conversation starter.\n\n---\n\n## Installation\n\n1. Clone this repo into your GNOME extensions folder:\n   ```\n   git clone \u003crepo\u003e ~/.local/share/gnome-shell/extensions/dramatic-peninsula@you\n   ```\n2. Edit `src/constants.js` to match your setup (see Caveats below, and\n   also consider your life choices)\n3. Restart GNOME Shell (`Alt+F2` → `r` → `Enter`, or log out if you're on\n   Wayland and that doesn't work, which it won't)\n4. Enable the extension via GNOME Extensions app or:\n   ```\n   gnome-extensions enable dramatic-peninsula@you\n   ```\n5. Open Firefox, go to Apple Music, play a song\n6. Stare at the notch\n7. Feel something\n\n---\n\n## Caveats (please read, unlike most READMEs)\n\nThis extension has more hardcoded values than a CS freshman's first\nproject. Specifically:\n\n- **Panel height is hardcoded to 42px.** If your panel is a different\n  height the collapsed pill will either peek out below the notch like a\n  shy rectangle, or disappear entirely into it like it owes you money.\n\n- **Only works with Firefox.** The player watcher explicitly filters for\n  a bus name containing `firefox`. Spotify, Rhythmbox, your obscure\n  terminal music player — all ignored. This is a feature disguised as\n  a limitation.\n\n- **Only reacts to Apple Music tabs.** It checks the track URL for\n  `music.apple.com`. Playing from any other source in Firefox? The\n  peninsula remains dramatically silent.\n\n- **Album art only loads from local file paths.** The Firefox MPRIS\n  bridge caches art locally and provides a `file://` URI, which we load\n  directly. Remote URLs will show the placeholder `♪` symbol, which\n  is honestly more artistic anyway.\n\n- **Volume control writes to the MPRIS Volume property.** Whether your\n  browser respects this is between you and Firefox.\n\n- **The progress bar seeks using SetPosition.** Apple Music's web player\n  may or may not honor this depending on the phase of the moon and your\n  Firefox version.\n\n- **Rounded album art corners may not work.** We tried. We really tried.\n  `St.Bin`, `clip_to_allocation`, border-radius — it's a whole thing.\n  PRs welcome.\n\n---\n\n## Known Issues\n\n- Everything described in Caveats\n- The extension logs to `/tmp/fun-notch.log` because we needed to debug\n  at 2am and never removed it. You can watch your music metadata stream\n  by in real time with `tail -f /tmp/fun-notch.log`, which is either\n  useful or haunting depending on your mood.\n- If you manage to trigger a race condition between YouTube and Apple\n  Music fast enough, the peninsula gets confused. We respect that you\n  would even try.\n\n---\n\n## Contributing\n\nIf you want to make this work with Spotify, other browsers, arbitrary\npanel heights, or without a physical notch — go for it. Just know that\nevery generalisation you add brings it one step closer to becoming\nsoftware and one step further from being a personal art project built at\nmidnight on Asahi Linux.\n\n---\n\n## Credits\n\nBuilt by a human and Claude, at midnight, on Asahi Linux.\nThe human had the idea. Claude wrote the code. The bugs were a\ncollaboration.\n\n---\n\n*\"It's not an island. It's not even really a peninsula. It's a vibe.\"*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjelius-sama%2Fdramatic-peninsula","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjelius-sama%2Fdramatic-peninsula","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjelius-sama%2Fdramatic-peninsula/lists"}