Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/toncherami/mpdweb

Web client for the Music Player Daemon.
https://github.com/toncherami/mpdweb

mpd mpd-client

Last synced: 14 days ago
JSON representation

Web client for the Music Player Daemon.

Awesome Lists containing this project

README

        

MPDWeb logo

# MPDWeb

Web client for the Music Player Daemon



:construction: This project is still under active development and some features may be missing. :construction:

## Table of contents

1. [What is this?](#what-is-this)
2. [Features](#features)
3. [Screenshots](#screenshots)
4. [Keybindings](#keybindings)
5. [Installation](#installation)
6. [Configuration](#configuration)
7. [Compatability](#compatability)
8. [Development](#development)
9. [License](#license)

## What is this?

MPDWeb is a web application that serves as a frontend for [MPD](https://musicpd.org) - a powerful server-side audio
player.

## Features

- Music database browsing
- Stored playlist support
- Global search
- Cover art
- Vi-inspired keybindings
- Volume control
- Playback options: random, repeat, single, consume

## Screenshots

![image](https://user-images.githubusercontent.com/13941584/179988308-567c0ebf-0f77-4363-b143-a4b98723b493.png)

![image](https://user-images.githubusercontent.com/13941584/179988487-ba594e21-504c-42cb-b9c2-31c7b7d6ba64.png)

![image](https://user-images.githubusercontent.com/13941584/187583493-f06eb125-a3c2-4f8f-a693-de34f1a08efa.png)

![image](https://user-images.githubusercontent.com/13941584/179988635-2bd73245-ba46-4a96-8b66-01bbc7bcbb7a.png)

## Keybindings

| Action | Keybindings |
|-------------------------------------------------------------------------------|-------------------------------|
| Navigate down | j |
| Navigate up | k |
| Navigate left | h |
| Navigate right | l |
| First item | gg Home |
| Last item | G End |
| Add item | a |
| Clear queue and play item | p |
| Show item in files view | gi |
| Show current song in files view | gI |
| Remove item | x dd |
| Search | / |
| Global search | s |
| Play/pause | Space |
| Stop playback | S |
| Play next song | N |
| Play previous song | P |
| Toggle random state | Or |
| Toggle repeat state | Op |
| Toggle consume state | Oc |
| Cycle single state: off/oneshot/on | Os |
| Volume up | + |
| Volume down | - |
| Update database | U |
| Update database at point | u |
| Clear queue | Qc |
| Focus queue sidebar | q |
| Toggle focused partition between up next/history when queue sidebar has focus | h |
| Enlarge cover art of currently playing song | c |

## Installation

You will need `make`, `yarn`, and `rust 1.65+` in order to build MPDWeb.

1. Clone this repository (make sure the submodules get populated):

```shell
git clone --recurse-submodules https://github.com/toncherami/mpdweb
```

2. Build

```shell
make
```

3. The binary can be found at `backend/target/release/mpdweb`.

## Configuration

To configure MPDWeb create a config file at `$XDG_CONFIG_HOME/mpdweb/config.toml`. `XDG_CONFIG_HOME` defaults to `$HOME/.config` if not set.

Default configuration:
```toml
[mpd]
host = "localhost"
port = 6600

[server]
bind = "127.0.0.1"
port = 8989

[logging]
level = "info"
```

## Compatability

MPDWeb works best in combination with MPD 0.23.13+ and latest Firefox/Chromium.

## Development

The codebase is split into two separate repositories - one for the [backend](https://github.com/toncherami/mpdweb.backend) and one for the [frontend](https://github.com/toncherami/mpdweb.frontend).

## License

MPDWeb is licensed under the [MIT License](http://opensource.org/licenses/MIT).