Every player, one click away.
One button in the GNOME top bar for everything that plays: Spotify, YouTube tabs, Twitch, podcasts. Pause, skip or change the volume without switching windows, and see each new song in a small popup at a glance, while you keep working.
Open a terminal and run:
curl -fsSL https://raw.githubusercontent.com/NGdev2/earful/main/install.sh | shThen restart your computer. From then on Earful starts by itself (switch it off any time in the Extensions app).
It needs GNOME 46 or newer and no sudo: everything goes into your home folder. You can read the script first.
Without this, Earful shows your browser as one player. With it, every tab that plays gets its own row. Add the free Earful Bridge add-on to your browser; Earful sets up everything else by itself.
- Chrome, Brave, Edge, Vivaldi, Opera: the add-on is on its way to the Chrome Web Store. Until then, open
chrome://extensions, turn on Developer mode, click Load unpacked and choose the folder~/.local/share/earful/browser-extension(the install command put it there). - Firefox: on its way to Firefox Add-ons.
Firefox from Snap asks once whether it may start Earful: choose Allow. Browsers installed as Flatpak, and Chromium from Snap, can't use the add-on yet.
Install from source (for developers; not needed if you ran the command above)
git clone https://github.com/NGdev2/earful.git
cd earful
make installmake install does exactly what the command above does, from your checkout.
To remove Earful: curl -fsSL https://raw.githubusercontent.com/NGdev2/earful/main/install.sh | sh -s -- --uninstall
"Who sings this?" When the track changes, a small card fades in with the cover, title and artist, then quietly fades out. Several changes at once stack neatly and slide into place.
One click, every player. All your players in one list, each with its own play / pause / next. Click a track to jump straight to its app.
Every browser tab is its own player. Three YouTube tabs, three rows. Click one and Earful switches to that exact tab (Chrome, Brave, Edge and other Chromium browsers, Firefox).
A mini mixer. A volume slider on every player and every tab, plus (optional) apps that only make sound, like games and calls.
Your look. A spinning vinyl, a cassette, a retro hi-fi equalizer, a sound wave or a note riding the road, in the colors of each album cover or one you pick. Or keep it calm: a gradient, dark glass, or your system theme.
Your rules. Pause other players when one starts (with exceptions), and send media keys to the last active or a pinned player.
Focus mode. Deep in code? One shortcut (Super + Shift + M) silences every popup. No popups over fullscreen games or while Do Not Disturb is on.
You decide. Cards, list or compact menu; popup position, duration, how many at once, and which players are allowed to show them.
- One-click install from extensions.gnome.org (GNOME's official extension website), and Earful Bridge in the Chrome Web Store and Firefox Add-ons
- An ignore list for autoplay noise
Linux media players announce what they play through MPRIS, a shared standard. Earful listens to it, so Spotify, VLC, Rhythmbox, browsers and more show up by themselves. For mpv, install the mpv-mpris plugin (sudo apt install mpv-mpris); without it, mpv still shows under Other audio with the file it plays.
Browsers announce only one player for all their tabs. The Earful Bridge add-on reports each playing tab to a small helper program that comes with Earful, and the helper announces every tab as its own player. Details: browser-extension · the helper.
No tracking, nothing sent anywhere: the only network traffic is loading cover art from the address a player provides. See PRIVACY.md.
Ideas, bugs and pull requests are welcome: open an issue.
- Try it without real music:
gjs -m tools/fake-player.js MyPlayer 5 make testruns Earful in an invisible, isolated GNOME Shell;make test-gnome-versionsdoes it for GNOME 47–51 in containersmake bridge-test,make bridge-test-browserandmake bridge-test-firefoxcheck the browser tabs;make test-installchecks the installer;make lintthe codemake demorecords the pictures above the same way, with fake players and drawn covers




