empress 3.0.3

A D-Bus MPRIS daemon for controlling media players.
# `empress`: MPRIS media controls made simple

This tool functions as a simple command-line abstraction over the D-Bus [MPRIS
specification](https://specifications.freedesktop.org/mpris-spec/latest/) which
allows for querying and controlling media players.  It functions similarly to
[playerctl](https://github.com/altdesktop/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.

## Installation

To install `empress`, simply use Cargo:

```sh
$ cargo install empress
```

(or, if you use Arch, I maintain this package in the AUR:)

```sh
$ 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):

```sh
$ empress server
```

The server will gracefully shut down if interrupted or signaled with `SIGTERM`.

## Usage

Once you have the daemon set up, you can communicate with it using one of
several subcommands, e.g.:

```sh
$ 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`.

## Installing `empress` as a Service

`empress` can be installed as a service to allow autostarting and lifecycle
management using D-Bus and systemd.  To do this, run the following:

```sh
$ 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.

### Uninstalling

To remove installed service definitions, simply run:

```sh
$ scripts/install-services.sh -rl
```

Like with above, remove the `-l` to uninstall the service files from the system
folders.