Настройка mpd для использования от имени текущего пользователя

Пролог
Что сподвигло меня на написание этой статьи? Наверное лень. )))
На форуме уже несколько раз всплывали темы, в которых пользователи жаловались на то, что не могут использовать настроенный по мануалу mpd от своего имени. А повторять одни и те же объяснения мне лень.

Итак приступим!
*Все дальнейшие описания я делаю на примере своего компьютера и нарытой мною в гугле информации.
Вы уже установили mpd и хотите его настроить для использования от своего имени. Для этого вам в первую очередь необходимо создать каталог, в котором будут храниться конфигурационные файлы и данные.

mkdir $HOME/.config/mpd

Теперь займёмься наполнением каталога необходимыми файлами.
1. Копируем файл-пример конфига из /usr/share/doc/mpd в созданный каталог

cp /usr/share/doc/mpd/mpdconf.example $HOME/.config/mpd/mpd.conf

2. Создаём каталог, в котором будут храниться плейлисты

mkdir $HOME/.config/mpd/playlists

3. Создаём все остальные файлы

touch $HOME/.config/mpd/{log, pid, state, sticker.sql}

Отредактируем файл конфигурации

vim $HOME/.config/mpd/mpd.conf

Прописываем в файле пути к каталогу с музыкой и служебным файлам, а так же метод, каким мы будем выводить звук.
Пример.

user "haron"

# Required files
db_file            "/home/haron/.config/mpd/database"
log_file           "/home/haron/.config/mpd/log"

# Optional
bind_to_address    "127.0.0.1"
port               "6600"
music_directory    "/home/haron/Music"
playlist_directory "/home/haron/.config/mpd/playlists"
pid_file           "/home/haron/.config/mpd/pid"
state_file         "/home/haron/.config/mpd/state"
sticker_file       "/home/haron/.config/mpd/sticker.sql"
mixer_type         "software"
audio_output {
        type            "pulse"
        name            "pulse audio"
}
audio_output {
        type            "fifo"
        name            "my_fifo"
        path            "/tmp/mpd.fifo"
        format          "44100:16:2"
}

В данном случае звук выводится с помощью Pulse Audio
При использовании Alsa советую установить alsaequal и выводить звук через него

 audio_output {
 type	    "alsa"
 name	    "equal"
 device	    "plug:plugequal"
 }

За отображение визуализации отвечает следующий блок кода

audio_output {
        type                    "fifo"
        name                    "my_fifo"
        path                    "/tmp/mpd.fifo"
        format                  "44100:16:2"
}

Если вам визуализация не требуется, то просто закомментируйте или удалите эту часть настроек.

Ну вот и всё. Первоначальная настройка закончена. Теперь можно запускать mpd.
Это можно делать несколькими способами - либо как программу, либо как демон
Чтобы запустить mpd как программу, нужно набрать в терминале mpd. Тем, кто использует dmenu, gmrun либо аналоги, следует воспользоваться для запуска данными утилитами.
Чтобы запустить mpd как демон от имени пользователя выполните в терминале команду

systemctl --user start mpd.service

Чтобы демон стартовал автоматически при логине в системе, добавляем его в автозапуск

systemctl --user enable mpd.service

Теперь мы можем подключаться к демону с помощью gui/pseudogui
Я предпочитаю ncurces-клиент ncmpcpp, внешний вид которого я настроил согласно своим предпочтениям.





Ну вот и всё! Приятного прослушивания музыки!

* Статья актуальна на 09.02.2017г.
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
Это же все есть в вики. Хотя некоторые пользователи не осилили...
Medar,
Есть. Но за последние две недели было два топика с одним и тем же вопросом - mpd работает от рута, а от пользователя не хочет.
Мне и предложили накатать статейку.
Я накатал.
Проблема статьи вики в том, что там описано очень многое. Новички путаются. Настраивают и запускают от рута, а подключаться пытаются от пользователя.
Потому я и сделал краткое описание того, как настроить и запустить от пользователя.
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
Medar
Это же все есть в вики. Хотя некоторые пользователи не осилили...
Wiki имеется.... но вот читают и не получается …(PS.....значит так написано)....... А молодежи без музона никак....

Haron_Prime, молодец, правильно что написал. Написано просто и понятно …... и меньше будет вопросов.....
Ошибки не исчезают с опытом - они просто умнеют
Моё почтение за проделанный труд !
Без преувеличения , раз десятый юзая ман по mpd ( ру / en ) с трудом перевариваю прочитанное , при том что демон в систему монтирован и запущен =) .. как выразился один пользователь : " Это опен соурс , детка "
Любовь как шпага , юмор как щит
Спасибо за инструкцию! Все четко и по делу :)
После обновления слетел MPD. Нашел на арчвики
nano ~/.config/systemd/user/mpd.service

[Unit]
Description=Music Player Daemon
After=network.target sound.target

[Service]
ExecStart=/usr/bin/mpd --no-daemon
ExecStop=/usr/bin/mpd --kill

[Install]
WantedBy=default.target


To enable

systemctl --user enable mpd

Done.
Я сделал немного иначе
$HOME/.local/share/systemd/user/mpd-local.service
[Unit]
Description=Music Player Daemon
After=network.target sound.target

[Service]
ExecStart=/usr/bin/mpd --no-daemon

# allow MPD to use real-time priority 50
LimitRTPRIO=50
LimitRTTIME=infinity

# disallow writing to /usr, /bin, /sbin, ...
ProtectSystem=yes

# more paranoid security settings
NoNewPrivileges=yes
ProtectKernelTunables=yes

[Install]
WantedBy=default.target
Оставил те параноидальные параметры, которые не мешали запуску и не выдавали ошибок при старте.
Ну и переименовал юнит, чтоб не было путаницы.
Запуск
systemctl --user start mpd-local.service
systemctl --user enable mpd-local.service

P.S> расположение не принципиально, ибо $HOME/.local/share/systemd/user - это симлинк на $HOME/.config/systemd/user
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
Да, просто я сделал по ману, который нашел. В любом случае лучше с любыми изменениями дополнять этот пост. В первую очередь искал решение тут. Да и вообще по этой статье и настраивал первый раз MPD (за что отдельная благодарность).
ven00m1983
В любом случае лучше с любыми изменениями дополнять этот пост.
В общем-то, я так и сделал - отписался в топике о дефектных обновлениях и продублировал тут.

P.S> подредактировал юнит - убрал параметр User=%I
И без него вполне корректно работает и запускается
Gnome 2 >> Unity >> KDE 4 >> Openbox >> Awesome >> Xmonad
GitHub , BitBuket
 
Зарегистрироваться или войдите чтобы оставить сообщение.