This tool functions as a simple command-line abstraction over the D-Bus MPRIS
specification which
allows for querying and controlling media players. It functions similarly to
playerctl, but features more basic
controls and a more complex method of tracking which player you want to
control. empress
uses its own D-Bus daemon to keep track of which players are
currently playing (and which players have been updated the most recently), and
uses this information to determine you wanted to pause Spotify rather than
playing a minimized YouTube video.
To install empress
, simply use Cargo:
$ cargo install empress
(or, if you use Arch, I maintain this package in the AUR:)
$ yay -S empress
Then launch the daemon process in order to use it — you will probably want to put this in an rcfile (or see below for setting up a service):
$ empress server
The server will gracefully shut down if interrupted or signaled with SIGTERM
.
Once you have the daemon set up, you can communicate with it using one of several subcommands, e.g.:
$ empress play-pause
Empress has commands for basic player operations (e.g. now-playing
,
play
/pause
/play-pause
/stop
, next
/previous
/seek
, volume
), as
well as several utility subcommands for more advanced operation (such as
list-players
and switch-current
). To see the list of commands at any time
or get help for a particular command simply run empress help
.
empress
can be installed as a service to allow autostarting and lifecycle
management using D-Bus and systemd. To do this, run the following:
$ scripts/install-services.sh -l <path to empress binary>
This will install the D-Bus and systemd service files into ~/.local/share
. If
you installed empress
with cargo install
, the path to the binary will
probably look something like /home/<user>/.cargo/bin/empress
.
If you want to make a system-wide installation, simply omit the -l
flag. This
will install the session service files into /usr
instead (but note that
empress
never runs as a D-Bus system bus).
Once empress
has been installed as a service, running any of the empress
client commands listed above will autostart the daemon.
To remove installed service definitions, simply run:
$ scripts/install-services.sh -rl
Like with above, remove the -l
to uninstall the service files from the system
folders.