sqzer-x
한국어
Projects

Terminal music player · Rust

ommp

Most terminal music players are a client for something else you have to start first. ommp is the whole thing: run it, and it plays. Quit it, and nothing is left running.

  • Rust
  • Apache-2.0
  • Linux
8 Audio formats
3 Image protocols
0 Daemons to start
Apache-2.0 License

Album art is read from the tags in the audio files, so there is nothing to place alongside them. Which drawing protocol your terminal supports is worked out at startup — Ghostty, Kitty, WezTerm and Konsole get real images; foot and xterm built with Sixel do too.

Capabilities

A library browser, a queue, and the artwork

Three panels. The left browses, the centre queues, the right shows the cover and the track.

Eight formats

FLAC, MP3, M4A, OGG, WAV, Opus, AAC and WMA, through PulseAudio or ALSA.

Album art, actually drawn

Kitty graphics, Sixel or the iTerm2 protocol, detected at startup. Everywhere else it falls back to block characters, which still shows the cover.

Browse how you think

By artist, album, genre, format, directory or playlist. The tabs across the top switch the left panel.

Field search

Ctrl+S filters as you type. artist:radiohead, album:ok computer, genre:rock, or *.flac.

It remembers

Volume, playlists and pane layout survive a restart, and the library re-syncs when files appear or vanish.

Mouse, if you want it

Click, scroll, and drag the panes to resize. The keyboard does everything too — Ctrl+H lists the bindings.

Install

One command, then your music

zsh

$ cargo install ommp
# on Arch:  yay -S ommp
$ ommp
# reads ~/Music, scans subdirectories, picks up changes as they happen
  Ctrl+S   search      artist:  album:  genre:  *.flac
  Ctrl+H   keybindings

Needs a Nerd Font for the interface icons and a true-colour terminal.

Put your music in ~/Music and run it.

Nothing to configure. Album art comes out of the tags in the files themselves.