Skip to content
/ argos Public

Light weight front-end for Mopidy music server

License

Notifications You must be signed in to change notification settings

orontee/argos

Repository files navigation

Argos

Code style: black Type check: mypy Translations: Weblate CI build status License: GPL 3.0 Store: Flathub

Light weight front-end for Mopidy music server.

Argos is designed (and used!) with Gnome desktop and single-board devices with small touchscreen in mind.

Application window screenshot

Application window

Library view screenshot

Library view

Playlists view screenshot

Playlists view

Library view on small screen

Library view on small screen (800x480) with dark theme

Features 🥳

  • Playback state & tracklist view
  • Volume control (depending on mixer configuration of Mopidy server)
  • Library browser
  • View and edition of playlists exposed by Mopidy-M3U
  • Play any stream supported by Mopidy-Stream
  • Abstracts of album and artist pages on Wikipedia (based on Musicbrainz identifiers)

Consult the NEWS file for notable changes between versions.

Note that the library is almost agnostic of Mopidy extensions (it has been reported to successfully give access to resources exposed by Mopidy-Bandcamp, Mopidy-Local, Mopidy-File, Mopidy-InternetArchive, Mopidy-Jellyfin, Mopidy-Podcast and Mopidy-SomaFM).

Install

Install using Flatpak

Argos can be easily installed on Linux distributions supporting Flatpak:

$ flatpak install flathub io.github.orontee.Argos
$ flatpak run io.github.orontee.Argos

Visit Argos page on Flathub for detailed instructions.

Install using DEB package

Argos was developed to be deployed on a Raspberry Pi Model 2B (hosting a Mopidy server) running Raspian OS with LXDE desktop environment. It's a 32-bits beast based on armv7 and unfortunately there's no chance to have Flatpak support this architecture according to this freedesktop-sdk issue: Decommissioning armv7.

Installation on such platform is handled through a DEB package that can be downloaded from the Releases page:

$ VERSION=1.15.0
$ wget https://github.com/orontee/argos/releases/download/v${VERSION}/argos_${VERSION}-1_all.deb
$ sudo apt install -yf argos_${VERSION}-1_all.deb

It is recommended to install the library aiohttp-client-cache to use a persistent HTTP cache (note that this library isn't available as DEB package at present time):

$ sudo apt install sqlite3
$ python3 -m pip install aiosqlite aiohttp-client-cache

Running on Windows

Running Argos on Windows is supported through the Windows Subsystem for Linux (WSL).

Make sure WSL 2 is installed with a Debian based distribution. Then simply follow instructions to Install using DEB package.

Getting help

A Discourse forum is dedicated to Mopidy and its related projects. It's the right place to ask for help.

To report a bug or make a feature request, one must use the issue tracker.

In both places, courtoisie reigns; And keep in mind that Mopidy and its related projects are run by volunteers!

Configuration

One must set the URL of the Mopidy server using the preferences dialog. The default value is http://127.0.0.1:6680, meaning Mopidy server is expected to be listening on the local host using HTTP and the default 6680 port.

The preferences dialog is accessible from the application menu.

Preferences dialog

Preferences dialog

The URL of the Mopidy server is backed by GSettings. Thus in case the host has no keyboard, one can directly set the URL of the Mopidy server through an SSH connection. Make sure changes are done by the user that will run Argos. Changes can be made using Dconf Editor or the command line (One may have to set BUS_SESSION_BUS_ADDRESS environment address):

$ gsettings set io.github.orontee.Argos mopidy-base-url http://192.168.1.45

(When running the Flatpak version, don't forget to enter the "sandbox" before running gsettings commands; See CONTRIBUTING file for details on this topic.)

Some CLI options are provided (complete list can be obtained with argos --help):

$ argos --no-tooltips --hide-search-button --hide-close-button

Style

The application is based on GTK library which uses CSS for styling and layout.

Custom styles must be gathered in the file ~/.config/argos/style.css (~/.var/app/io.github.orontee.Argos/config/argos/style.css when using Flatpak). One can use GTK Inspector to identify the names of the CSS nodes.

To adapt to devices with small touch screen, one may have to tweak buttons appearance; Here is an example used to widen some buttons:

#album-details-top-box button,
#playlist-button-box button,
#title-bar button,
#tracklist-button-box button {
    min-width:  40px;
    min-height: 40px;
}

#condensed-playing-box-playback-controls-box button {
    min-width:  60px;
    min-height: 40px;
}

Automation

Many actions are exposed through D-Bus and thus available to script the application. The complete list can be retrieved from a running instance using:

$ busctl --user call io.github.orontee.Argos \
                     /io/github/orontee/Argos \
                     org.gtk.Actions DescribeAll

Eg, the following command enables dark theme:

$ busctl --user call io.github.orontee.Argos \
                     /io/github/orontee/Argos \
                     org.gtk.Actions Activate \
                     "sava{sv}" "enable-dark-theme" 1 b true 0

or to update the directory with URI bandcamp:collection of the library:

$ busctl --user call io.github.orontee.Argos \
                     /io/github/orontee/Argos \
                     org.gtk.Actions Activate \
                     "sava{sv}" "update-library" 1 s "bandcamp:collection" 0

Contributing

No developer skills are required to contribute to translations or add support for new languages, thanks to the Weblate platform. More on this topic in the translations documentation.

Instructions to install an unreleased version, debug, etc. can be found in the CONTRIBUTING file.