Conky. Настроить отображение обложки альбома через audacious.

Ответить
Аватара пользователя
barshadow
Сообщения: 6
Зарегистрирован: 03 окт 2019, 15:57
Operating system: Rosa-Frash R11 (xfce)

Conky. Настроить отображение обложки альбома через audacious.

Сообщение barshadow » 10 ноя 2019, 06:02

Здравствуйте, дорогие друзья. Хочу сделать из своей Малины мультимедийный центр.
Дано:
  1. RaspberryPi 2
  2. tft-экран от Waveshare
Задача - играть музыку в фоне и запускать потоковое видео при необходимости, при этом ставя музыку на паузу и продолжая проигрывание после того, как видео проиграло.
Хотя в качестве ОСи у меня Raspbian с окружением XFCE - это сути не меняет. Linux - от и есть Linux.
В общем - для информативности я развернул Conky на всю полезную площадь экрана.

Далее - речь пойдёт именно про Conky и про скрипты на bash.
Изображение
Собственно - 99% работы уже проделано. Видео запускаю через omxplayer при помощи расширения в Chrome. Музыка играет в фоне через audacious, информация о треке передаётся на Conky.
Здесь - видео, как оно работает. (Да, отклик при запуске видео не маленький, но это обусловлено малой мощностью самой Малины и работе скриптов для запуска (в фоне происходит обновление youtube-dl)

Теперь - к сути!

Хочется чтобы обложка альбома отображалась во время проигрывания трека (там, где сейчас изображение диска). Как это проще всего реализовать я не знаю. Может быть у кого нибудь есть идеи или готовые решения, как это сделать проще всего.

Код: Выделить всё

# Включите для использования xtf
use_xft yes
# Шрифт xtf для использования
xftfont Bitstream Vera Sans Mono:size=8
# Если yes - Conky будет запущен в фоне
background yes
xftalpha 0.1
# Интервал обновления в секундах
update_interval 0.25
# Количество обновлений, после которых Conky выключится. 0 = работает постоянно
total_run_times 0
# Создавать собственное окно или нет
own_window yes
own_window_type desktop
# Делает фон полностью прозрачным
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
double_buffer yes
minimum_size 750 3
maximum_width 750
# Включает отображение тени
draw_shades yes
# Включает отображение окантовки
draw_outline no
# Включает отображение границы вокруг текста
draw_borders no
# Включает отображение границы вокруг графиков
draw_graph_borders no
# Цвет по умолчанию и цвет границы
default_color grey
# Цвет тени от текста и границы
default_shade_color black
# Цвет окантовки
default_outline_color green
#Расположение окна (left, right, top)
alignment top_middle
# Отступ в пикселях от края экрана
gap_x 5
gap_y 5
# Выключать буфер из использоваемой памяти
no_buffers yes
# Включите для отображения текста в верхнем регистре
uppercase no
cpu_avg_samples 2
net_avg_samples 1
override_utf8_locale yes
use_spacer none

default_bar_width 30
#  >>>>>>>>>>>>>>>>>>>>>>>

TEXT
${font Arial:size=10}${color #b8bdda}Время работы: ${color white}${uptime}${color} | Ip adress: ${color white}${addr eth0} | Вн. IP:${color white}${execi 10800 wget http://checkip.dyndns.org/ -q -O -|grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>'} $alignr Net traffic: ${color red} ⬆:${upspeed eth0}${color green} ⬇:  ${downspeed eth0}
${color DimGray}
# Процессор
${font Arial:bold:size=10}${color #b8bdda}Процессор: $alignr  Нагрузка $cpu % | Температура: ${acpitemp}°С
$font${color DimGray}CPU1  ${cpu cpu1}% ${cpubar 6,120 cpu1} | CPU2  ${cpu cpu2}% ${cpubar 6,120 cpu2} | CPU3  ${cpu cpu3}% ${cpubar 6,120 cpu3} | CPU4  ${cpu cpu4}% ${cpubar 5,100 cpu4}
${font Arial:bold:size=10}${color #b8bdda}Оперативная память ${color DarkSlateGray}${hr 2}
$font${color DimGray}MEM $alignc $mem / $memmax $alignr $memperc%
${membar 3}
$font${color DimGray}Файл подкачки (SWAP) $alignc $swap / $swapmax $alignr $swapperc%
${swapbar 3}
${font Arial:bold:size=10}${color #b8bdda}Мониторинг дискового пространства ${color DarkSlateGray}${hr 2}
${font Arial:bold:size=2}
${if_mounted /home/pi/music}${font Arial:bold:size=12}${color DimGray}Root: ${fs_bar 5,255 /} ${font Arial:bold:size=12}${fs_free_perc /} % | ${color DimGray}Music: ${fs_bar 5,258 /home/pi/music} ${fs_free_perc /home/pi/music} %${else} ${font Arial:bold:size=12} ${color DimGray}Root: ${fs_bar 5,635 /} ${font Arial:bold:size=12}${fs_free_perc /} % ${endif}
${font Arial:size=2}
${hr}
# Аудиоплеер

${if_running audacious}
${font Arial:size=12}${color}${color1}Сейчас играет:  ${color lime}${font Arial:bold:size=14}"${exec audtool --current-song}"${font Arial:size=12}${color1}
${scroll 200 1  Исполнитель: ${color}${exec audtool --current-song-tuple-data artist} | ${color1}Альбом:  ${color}${exec audtool --current-song-tuple-data album}} (${exec audtool --current-song-tuple-data year}) 
${color}${exec audtool --current-song-output-length}  ${execbar 6,595 expr $(audtool --current-song-output-length-seconds) \* 100 / $(audtool --current-song-length-seconds)} ${exec audtool --current-song-length}${image ~/Изображения/disk.png -p 685,220 -s 60x60}
${else}${font Arial:bold:size=12}${color silver}Ничего не воспроизводится
${endif}${hr}
${font Arial:bold:size=10}${color}TOP PROCESSES ${color DarkSlateGray}${hr 2}
${color DimGray}$font${top_mem name 2}${alignr}${top mem 2} %
$font${top_mem name 3}${alignr}${top mem 3} %
$font${top_mem name 4}${alignr}${top mem 4} %
$font${top_mem name 5}${alignr}${top mem 5} %
$font${top_mem name 6}${alignr}${top mem 6} %
$font${top_mem name 7}${alignr}${top mem 7} %
$font${top_mem name 8}${alignr}${top mem 8} %
Сейчас картинку выводит вот это:

Код: Выделить всё

${image ~/Изображения/disk.png -p 685,220 -s 60x60}
Чтобы не тратить ресурс флешки постоянным перезаписыванием постера в определённый файл, который и будет отображаться в Conky есть следующая идея:
  1. Создать где-то в home директории каталог для хранения постеров. (это я знаю как сделать)
  2. Экспортировать в такой каталог файлы обложек в формате "Исполнитель-альбом-год.jpg" (это я знаю как сделать)
  3. Каким-то образом задать в .conkyrc переменную cover, которая будет подставлять вместо себя путь к нужной обложке. (Вот тут - беда. Не силён в написании таких сценариев.)
Если что:
За вывод исполнителя отвечает вот это
audtool --current-song-tuple-data artist
За вывод альбома отвечает вот это
audtool --current-song-tuple-data album
За вывод года альбома отвечает вот это
audtool --current-song-tuple-data year

Ответить