|500x444

What is RMPC?

RMPC is a TUI (terminal UI) client for MPD — it does not do audio output itself, it just sends commands to MPD. (mierak.github.io)

So the setup has two parts:

  1. Install & configure MPD (the server/daemon that plays music)
  2. Install & configure RMPC to connect to MPD

Step 1: Install MPD + required clients/tools

On Arch-like systems:

sudo pacman -S mpd mpc

You may also install ncmpcpp (another MPD client) for testing. (ArchWiki)


Step 2: Create necessary directories & base config

  1. Create configuration directory and subfolders:
mkdir -p ~/.config/mpd/playlists
mkdir -p ~/Music
  1. Copy the example config (if available) to your user config:

On Arch:

cp /usr/share/doc/mpd/mpdconf.example ~/.config/mpd/mpd.conf

Or check /usr/share/mpd/mpdconf.example. ([IPv6rs](https://ipv6.rs/tutorial/Arch_Linux/mpd/"How to Install mpd on Arch Linux - IPv6rs"))

  1. Open ~/.config/mpd/mpd.conf in your editor and set the basic paths. Here is a minimal working example:
# Paths (adjust for your username)
music_directory    "/home/ahmad/Music"
playlist_directory "~/.config/mpd/playlists"
db_file            "~/.config/mpd/database"
log_file           "~/.config/mpd/log"
pid_file           "~/.config/mpd/pid"
state_file         "~/.config/mpd/state"
sticker_file       "~/.config/mpd/sticker.sql"

# Audio output block (choose based on your sound system)
audio_output {
    type "pipewire"
    name "MPD PipeWire Output"
}

# Symbolic links behavior
follow_outside_symlinks "yes"
follow_inside_symlinks  "yes"

You can also use type "alsa" or type "pulse" depending on your system. (ArchWiki)


Step 3: Fix permissions & ensure everything is accessible

  • The MPD process must have read access to your music directory and write access to the config / database files.

  • If you run MPD as your user (not as root), make sure ~/Music and ~/.config/mpd/ are owned by you (or have appropriate permissions).

  • Ensure that all parent directories have the “execute” bit (so they can be entered).

  • Avoid running MPD as root. Use the user service. (ArchWiki)


Step 4: Enable & start MPD (with systemd user unit)

Because MPD provides a user-level systemd service, you can manage it with:

systemctl --user enable mpd
systemctl --user start mpd

You can also use:

systemctl --user restart mpd

To check status:

systemctl --user status mpd

The ArchWiki notes this approach. (ArchWiki)

Also note: MPD supports socket activation via mpd.socket. You can enable that instead if you prefer MPD to start on demand. (ArchWiki)


Step 5: Update MPD’s music database

Once MPD is running successfully, you need to tell it to scan your music directory:

mpc update

Or via a UI client (if it supports “update library”).

Check that the database is populated:

mpc ls
mpc listall

If nothing appears, double-check your music_directory path and permissions.


Step 6: Install RMPC

Follow the instructions in RMPC’s docs: (mierak.github.io)

If you’re on Arch:

sudo pacman -S rmpc

Or build via cargo etc.


Step 7: Configure RMPC(Optional)

RMPC needs to know where MPD is (host / port / socket). By default it uses 127.0.0.1:6600. (mierak.github.io)

You can create or edit its config file to set:

# Example in rmpc config
address = "127.0.0.1:6600"
password = None

You may also connect over a UNIX socket if your MPD is configured to use one.


Step 8: Run RMPC & test control

Just run:

rmpc

You should see the TUI, listing songs / playlists etc. You can browse your library, queue songs, play, pause, skip etc.

If it fails to connect, check:

  • MPD is running

  • The host / port / socket is correct

  • No firewall blocking

  • If MPD requires a password, set it in RMPC config

|715x402


Troubleshooting tips & common pitfalls

  • Port already in use: If MPD fails to bind TCP port 6600, maybe another MPD is running or socket activation is handling it.
  • Missing directories or files: Create playlists directory, music folder, etc.
  • Wrong path / username in config: Be careful with your home path.
  • Permissions: The MPD process must have access rights.
  • Audio output misconfigured: If you pick pipewire, pulse, or alsa, ensure your system’s audio pipeline is compatible.
  • Failure on MIDI files: Some decoder plugins (e.g. wildmidi) may complain if dependencies missing — usually ignorable if you don’t use MIDI.