Thrum GitHub

v0.4.0MITArch · Omarchy

Thrum

A Winamp-style player and MediaMonkey-style library manager for Omarchy, Hyprland and Arch.

Your own music, Spotify and internet radio sit in one keyboard-driven app that wears your Omarchy theme and changes with it.

How to installRead the guidesWhat's new

The Thrum library: the playing track with its cover and analyser, the column browser, an album grid of covers and the info panel

Every picture on this page is the real app, drawn with a made-up library. They follow your light or dark setting, as Thrum follows the Omarchy theme.

Built for Omarchy first

Your theme

Every colour comes from the current Omarchy theme and changes the moment the theme does. Window corners match Hyprland's, and the mini players float and pin themselves.

Your keys

Winamp's own keys still work: Z X C V B for previous, play, pause, stop and next. Ctrl+K opens a command palette, and ? lists every key.

Your desktop

The media keys, playerctl and the Omarchy bar all control it. It installs as an Arch package, shows up in the app launcher, and runs on any Linux desktop, though Omarchy is where it looks right.

ZXCVB the deck

Winamp's soul, on your desktop

The player is a Winamp 2-style deck: a green clock, a bouncing analyser, a scrolling title and the playing track's cover. Tab switches to the library, and the menu bar shows every command with its key.

The deck comes in three styles. Omarchy follows your theme, Classic is Winamp 2's charcoal frame and green readout, and Silver is MediaMonkey in the 2000s, all brushed panels and glossy buttons.

The deck in the Omarchy style, playing Midnight Highway by Neon Coast
Omarchy
The deck in the Classic style, with a green readout on black
Classic
The deck in the Silver style, with silver panels and a navy readout
Silver

Twelve visualisers, Synthwave among them

Pick from bars, bars with peaks, a mirrored spectrum, an oscilloscope and fire, or the seven made for the wide now playing bar: Skyline, Waveform ribbon, Spectrum line, Pulse, LED matrix, Synthwave and Star field.

Synthwave draws a striped sun on the horizon with a city of spectrum bars either side, and the grid rolls towards you faster as the music builds. A Reduce motion setting calms all of them.

The large now playing bar with each of the seven newer visualisers stacked one above the other

Tab the library

A library manager for people who care about their tags

Underneath the deck is a library in the spirit of MediaMonkey: a tree on the left, a column browser of genres, album artists and albums, the tracks or an album grid, and a sidebar with the cover, lyrics, notes about the artist and the album, credits and what plays next. Search takes plain words or a query such as artist:"neon coast" year:1990..1999 rating:4..

The library with an Art column of small covers, and the sidebar showing notes about a made-up artist and album
  • Edit a hundred tags at once

    Change one track or a whole selection, fill tags from file names, and identify albums with MusicBrainz. Every change can be undone with Ctrl+Z.

  • Organise files with a preview

    Rename and move files by a pattern such as <Album Artist>/<Album>/<Track#:2> <Title>, and see every change before it happens. That can be undone too.

  • Files to Edit

    A list of the tracks with missing or inconsistent tags, so tidying a collection becomes a list to work through.

  • Duplicates, even across formats

    The duplicate finder can match an MP3 and a FLAC of the same recording by how they sound.

  • Auto-playlists

    Playlists that update themselves from a query, plus collections, Auto-DJ and party mode.

  • Your layout

    An Art column, compact or large rows, columns you drag into order, a sidebar whose sections fold and move, and a slim or large now playing bar at the top or the bottom.

The tag editor with three tracks chosen
The tag editor with three tracks chosen. Fields they share are filled in, and each keeps its own title.
The organise window listing each file's current and new location
Organising shows each file's old and new place before anything moves.
Files to Edit, listing tracks with missing or inconsistent tags
Files to Edit groups the tracks whose tags need attention.

Spotify and your files

One playlist, both worlds

With Spotify switched on, your Spotify playlists, Liked Songs, saved albums and search sit in the library tree. A playlist can hold Spotify tracks beside your own files, and they play on Spotify when their turn comes.

Thrum never sees your Spotify password. It drives spotify_player, which keeps its own sign-in. Playing needs Spotify Premium.

A playlist of nine entries, four of them Spotify tracks marked with Spotify's logo

Shift+R internet radio

Nightride FM, built in

Every Nightride FM and Rekt Network channel is ready to play, each showing the song on air now. [ and ] step through the channels, and any other station can be found on radio-browser.info or added by its address.

  • Nightride FM
  • Chillsynth FM
  • Datawave FM
  • Spacesynth FM
  • Darksynth
  • Horrorsynth
  • EBSM
The Nightride FM channels in the library, with Darksynth on air and its song shown on the deck

NAS, Navidrome and your phone

Music that lives on a NAS

Mount a share over SMB or NFS and Thrum scans it like a local folder, with tag editing and organising. Or add a Navidrome server and let it do the scanning. When the NAS is off, its tracks show as offline instead of vanishing.

With Navidrome, the same library reaches your phone through any Subsonic app, such as Tempus or Symfonium. Thrum can also copy music to a phone, a USB drive or a Syncthing folder, converting it on the way if you like.

Adding a Navidrome server, with the connection test passing

N now playing

Big when you're listening, tiny when you're working

N opens the big view: the cover, the rating, what's next, timed lyrics and a visualiser, with F11 for fullscreen. Ctrl+M shrinks Thrum to a mini player, and Ctrl+Shift+M to Winamp's windowshade.

The big Now Playing view with the cover, timed lyrics and the analyser
The mini player
The mini player
The micro player
The micro player, after Winamp's windowshade

Omarchy bar plugin

In the bar, out of the way

A bar plugin shows a small cover, the play state and the track. Click it for a panel led by a large cover, with seek, transport, shuffle, repeat and volume. Thrum also sends the cover over MPRIS, so anything that shows what's playing can show it too.

The Thrum bar widget and its panel, led by a large cover

Install

Thrum builds from source on Arch and Omarchy in a few minutes. An AUR package is ready and will be published soon.

  1. Install what it builds against

    sudo pacman -S --needed base-devel qt6-base qt6-declarative qt6-multimedia qt6-wayland \
        taglib sqlite ffmpeg pkgconf ttf-jetbrains-mono-nerd
  2. Clone it and install it into your home folder

    git clone https://github.com/matt-shearing/thrum.git
    cd thrum
    bin/install-user

    This needs no sudo. To build and install an Arch package instead, run bin/install. Either way, Thrum then appears in the app launcher (Super+Space).

  3. Add the extras you want

    omarchy-plugin/install && omarchy-restart-shell   # the bar plugin
    omarchy-pkg-add spotify-player                    # Spotify

    chromaprint finds duplicates by sound, and libsecret keeps NAS and Navidrome passwords in the keyring.

The first time Thrum opens, a short setup walks you through where it starts, the player's look, the library's layout and your music. The quick start covers the rest, and every release is on the releases page.

Questions and honest limits

Thrum is young and changes quickly. It has a large automated test suite, but those tests run against made-up music, pretend web services and simulated network shares, so here is what that means for you.

Does Spotify work with a free account?

A free account can browse and search, but playing needs Spotify Premium. Gapless joins, crossfade, the equaliser and the visualiser work only on your own files, because Spotify's sound never passes through Thrum.

Has it been tried on a big, real library?

Not yet. Search stays quick with 200,000 tracks, but those were generated. A real NAS, a real Navidrome server, the MediaMonkey import and device sync to a real phone were all tested against stand-ins. If something breaks on your collection, please open an issue.

Can I bring my MediaMonkey library across?

Yes. The MediaMonkey import brings ratings, play counts, history and playlists across, though it has not yet been run on a real MediaMonkey database.

Do I need Omarchy?

No. Thrum runs on any Linux desktop with Qt 6. Omarchy is where it looks right, because that is where it takes its colours from the theme and where the bar plugin lives.

What goes online?

Tags, covers and lyrics from web services, and scrobbling, happen when you ask for them. The web metadata guide lists each service and exactly what leaves your machine. Last.fm scrobbling needs your own API key.

What languages does it speak?

English only for now, though every string is ready for translation.

Is the gapless engine ready?

The native engine, with gapless playback, crossfade, ReplayGain and the equaliser, is still marked experimental. Qt Multimedia plays by default.