eXo is a GUI (a tray icon with popup-menu) and a scrobbler for mocp written in C++/Qt. Combination of mocp and eXo gives you a modern full-fledged yet very minimalistic mediaplayer.
Latest stable release v0.8

btc 15LSemSqbnojWKSaYJwQJWzwtgbpw7QYcN


  • scrobbling to last.fm (optional)
  • bookmarks for web audiostreams and web radio stations
  • OSD (external Python script)
  • lyrics from web
  • background mode - no GUI (use -d option)
  • DBus and MPRISv2 interfaces (compile-time option, enabled by default)
  • mouse actions for tray icon - disable SNI-Qt to use this (mid button, wheel)
  • tags editing with an external app
  • experimental cmus support (compile-time option, use the latest dev snapshot)

eXo editors menu entry eXo bookmarks menu entry eXo scrobbler popup eXo notification

sudo add-apt-repository ppa:blaze/main
sudo apt update
sudo apt install exo-player


- Where can I get the sources?
Here's Bitbucket page. You are welcome.

- How can I run eXo with no GUI (in background mode)?
Put the following line to autostart: exo -d 2>/tmp/exo_errors.log &.
If you want to shutdown the app execute:
qdbus org.mpris.MediaPlayer2.exo /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Quit
or just pkill -2 exo. Managing the stdout and stderr output is totally user's business. The app itself does not detach it's output pipes.

- How can I auth to last.fm with no GUI (via CL interface)?
Run exo -f or exo --force-reauth in your terminal emulator.

- Why scrobbled tracks are not going to any cache when connection is down?
This feature should work out of the box in every app which uses liblastfm, but if it doesn't, please check if there's a directory named Last.fm in ~/.local/share. If there's no such directory please create one.

- How can I enable scrobbling?
You should select "Settings > Enable scrobbling" menu entry and then a dialog will appear where you can enter your login and password in case if you are running scrobbler for the first time.

- Is the last.fm password being stored anywhere?
No, it isn't. App needs a password only once to get the session key via last.fm API. Then the session key, which is stored in ~/.config/exo/eXo.conf, being used.

- Something is wrong. I see no tray icon or menu entries are not working.
Check other pure Qt4/Qt5 (non KDE) apps which have tray icon. How are they working in that case? Status Notifier Item based tray can cause such issues.

- I wanna add a global hotkey to see the lyrics at any time.
qdbus local.exo_player /exo local.exo_player.showLyricsWindow is the command you want.

- What about Qt4/Qt5 support?
Since v0.7 Qt5 build config is the default one. And for v0.8 Qt4 build support is dropped. If you still want to build the app against Qt4 for some reason, then stick with 0.7 point releases (qt4-support branch of public Mercurial repo).

Recent News:
New releases Jun 27 2018
eXo v0.7 is released Mar 03 2017
Knock Knock, New Release May 29 2016
Fifth release of eXo Nov 22 2015
Third release of eXo May 14 2015