miyoku
miyoku

Reputation: 187

Use local socket with mpd

I'm trying to switch from using the local network to a UNIX socket with mpd.To do so, i have my config file:

# Recommended location for database
db_file            "~/.config/mpd/database"

# If running mpd using systemd, delete this line to log directly to systemd.
#log_file           "syslog"

# The music directory is by default the XDG directory, uncomment to amend and choose a different directory
music_directory    "~/Music"

# Uncomment to refresh the database whenever files in the music_directory are changed
auto_update "yes"

auto_update_depth "5"

# Uncomment to enable the functionalities
playlist_directory "~/.config/mpd/playlists"
pid_file           "~/.config/mpd/pid"
state_file         "~/.config/mpd/state"
#sticker_file       "~/.config/mpd/sticker.sql"

bind_to_address    "~/.config/mpd/socket"

restore_paused    "yes"

audio_output {
        type "pipewire"
        name "PipeWire Sound Server"
}

I created a socket file in the folder ~/.config/mpd/socket I also export MPD_HOST=~/.config/mpd/socket in order to be the default host. Nevertheless if i run the command: mpc play , i have the error MPD error: Failed to resolve host name But if i run MPD_HOST=~/.config/mpd/socket mpc play it work. I don't understand what i'm missing?

Upvotes: 1

Views: 1867

Answers (1)

Nairou
Nairou

Reputation: 3765

In case others come across this question and have the same problem, I found the solution.

For whatever reason, the MPD_HOST environment variable needs to be an absolute path. /home/user/.var/mpd/socket works, but ~/.var/mpd/socket does not.

When you run MPD_HOST=~/.config/mpd/socket mpc play on the command line, the shell is automatically expanding MPD_HOST to the full path, and so works fine. It is only when the environment variable is being loaded elsewhere, like from a config file, that this expansion doesn't always take place (depends on your shell and distro) and results in an error from mpc.

You can look at the active environment variables in your shell (such as by using set with no parameters), to see if MPD_HOST is available, and whether it has been expanded or not.

Upvotes: 0

Related Questions