mpd, ncmpcpp, urxvt и обложки
Эта заметка о том, как заставить эмулятор терминала urxvt с запущенным в нём ncmpcpp отображать обложку альбома текущей композиции.
Необходимые программы:
- mpd: проигрывает музыку
- ncmpcpp: управляет mpd, программа с текстовым интерфейсом
- rxvt-unicode (urxvt): эмулятор терминала, в котором будет запущен ncmpcpp
- imagemagick: пакет программ работы с графикой, нужен для затемнения обложки
- mnuc: bash-скрипт, который находит обложку, затемняет её и устанавливает на задний план
В качестве эмулятора терминала я предлагаю использовать urxvt, потому как он один из немногих эмуляторов, которые умеют динамически менять изображение заднего плана. Другой известный мне терминал, который судя по документации умеет это делать — eterm.
Чтобы всё это заработало, необходимо выполнить следующие три простых шага:
-
В верхней части mnuc'а нужно установить путь к музыкальной библиотеке (то же значение, что и
music_directory
вmpd.conf
) и по желанию опциюDARKEN
, которая отвечает за то, насколько обложка будет затемнена. Она может принимать значение от 0 до 100: чем больше значение, тем обложка будет темнее. Обложку можно и не затемнять, но тогда светлый текст может слиться со светлой обложкой. -
В конфигурационном файле ncmpcpp
~/.ncmpcpp/config
установить значение:execute_on_song_change = "mnuc"
-
Запустить ncmpcpp примерно следующим образом:
urxvt -geometry 140x50 -e ncmpcpp
Скриншоты со светлой и тёмной обложками:
Несколько замечаний
Поиск обложек производится локально. mnuc предполагает, что альбомы находятся в отдельных папках. Он также найдёт картинки, лежащие в подпапках, но отдаст предпочтение картинкам на том же уровне, что и проигрываемый файл. Подбор обложек происходит по ряду слов, таких как folder, cover и т.п., а также по названию альбома. Модифицируйте скрипт под свои нужды!
Добавить автоматическую загрузку обложек из интернета несложно, но я лично предпочитаю самостоятельно подбирать наиболее подходящие. Если всё же надо автоматически грузить из интернета и вы не знаете как, можете взглянуть на этот грязный скрипт, где для загрузки обложек используется glyr.
mnuc устанавливает фон в цвет, соответствующий среднему значению обложки. Но в GNOME Shell, если окно urxvt не в фокусе, цвет по какой-то причине не устанавливается. В Openbox'е этой проблемы нет.
Обновление 25 июля 2013
В GNOME Shell проблема проявлялась только в определённой версии (возможно, только в связке с конкретной версией драйвера видеокарты).
Чтобы urxvt мог устанавливать картинку заднего плана, он должен быть
скомпилирован с поддержкой gdk-pixbuf
. Так, с определённых пор для Arch'а
urxvt компилируется с опцией --disable-pixbuf
.
Комментарии