English | Русский

Блог о Linux и велосипедах

mpd, ncmpcpp, urxvt и обложки

Эта заметка о том, как заставить эмулятор терминала urxvt с запущенным в нём ncmpcpp отображать обложку альбома текущей композиции.

Необходимые программы:

  • mpd: проигрывает музыку
  • ncmpcpp: управляет mpd, программа с текстовым интерфейсом
  • rxvt-unicode (urxvt): эмулятор терминала, в котором будет запущен ncmpcpp
  • imagemagick: пакет программ работы с графикой, нужен для затемнения обложки
  • mnuc: bash-скрипт, который находит обложку, затемняет её и устанавливает на задний план

В качестве эмулятора терминала я предлагаю использовать urxvt, потому как он один из немногих эмуляторов, которые умеют динамически менять изображение заднего плана. Другой известный мне терминал, который судя по документации умеет это делать — eterm.

Чтобы всё это заработало, необходимо выполнить следующие три простых шага:

  1. В верхней части mnuc'а нужно установить путь к музыкальной библиотеке (то же значение, что и music_directory в mpd.conf) и по желанию опцию DARKEN, которая отвечает за то, насколько обложка будет затемнена. Она может принимать значение от 0 до 100: чем больше значение, тем обложка будет темнее. Обложку можно и не затемнять, но тогда светлый текст может слиться со светлой обложкой.

  2. В конфигурационном файле ncmpcpp ~/.ncmpcpp/config установить значение:

    execute_on_song_change = "mnuc"
    
  3. Запустить 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.

Комментарии

RSS
  • я
    18 Янв 2017, 23:47

    как правильно написать в MUSIC_DIR=/home/Music ?

    куда кидать mnuc ?

    нипанятна

    • 19 Янв 2017, 11:28

      mnuc, очевидно, кидать в $PATH

      MUSIC_DIR, очевидно, должна указывать на папку где mpd ищет музыку.

      Очевидно, потому что я давно не пользуюсь mpd и этим скриптом.

Здесь можно Markdown