Visualizar capas de álbuns de músicas no MPD/MPC/NCMPCPP
Publicado por João Gabriel (última atualização em 03/02/2021)
[ Hits: 2.176 ]
O NCMPCPP é um cliente do MPD, interativo, e com uma interface muito boa. O NCMPCPP tem um problema, porém: não é possível ver a capa do álbum da música que você está escutando. Esse script usa o Ueberzug (um visualizador de imagens no terminal) para mostrar as imagens da capa do álbum da música que estiver tocando no momento.
Esse script é uma versão modificada de um script criado pelo GeorgeHJ no GitHub.
P.S.: esse script deve ser rodado por uma nova instância de um terminal, não diretamente, senão não vai funcionar!
P.S.: esse script depende de ffmpeg, mpd, mpc e ueberzug.
#!/usr/bin/bash
## All credits to GeorgeHJ on github, thank you!
## Requires mpd, mpc, ueberzug, bash, ffmpeg and diffutils
# This should be the root of mpd
musicDir="/home/goll/media/music"
tmpImgDir="/tmp/ncmpcpp-album"
# Default Dimensions
WIDTH=32
HEIGHT=32
X=0
Y=0
mkdir "$tmpImgDir"
mpdRunCheck() {
while true; do
mpc -q 2>/dev/null && break || sleep 2
done
}
updArt() {
oldFilename="$filename"
getCoverArt
}
getCoverArt() {
local curFile; local tmpImgFile #; local curDIr
curFile=$(mpc current -f "%file%")
[ -n "$curFile" ] && {
tmpImgFile=$(mktemp -p "$tmpImgDir" --suffix=.png)
ffmpeg -i "$musicDir/$curFile" "$tmpImgFile" -y
if ! cmp -s "$filename" "$tmpImgFile"; then
filename=$tmpImgFile
fi
find "$tmpImgDir" -name "tmp.*.png" 2>/dev/null | grep -v "$filename" | xargs -r rm
}
}
showArt() {
# shellcheck disable=2154
{ declare -Ap add_commnand=([action]="add" [identifier]="albumArt" [x]="$X" [y]="$Y" [width]="$WIDTH" [height]="$HEIGHT" [path]="$filename")
checkChanged
} | ueberzug layer --parser bash
}
checkChanged() {
while true; do
mpc idle player update >/dev/null
updArt
if ! cmp -s "$oldFilename" "$filename"; then
oldFilename="$filename" && break
fi
done
}
quit() {
# shellcheck disable=2154
{
declare -Ap remove_command=([action]="remove" [identifier]="albumArt")
} | ueberzug layer --parser bash
tput cnorm
find "$tmpImgDir" -name "tmp.*.png" -delete 2>/dev/null
exit 0
}
# Main
tput civis
trap quit SIGINT
while true; do
mpdRunCheck
updArt
clear
showArt
done 2>/dev/null
Convertendo vídeos flv para avi
Abrir arquivos em nova aba no Firefox
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Gentoo binário em 2026: UEFI, LUKS, Btrfs e Systemd
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
Necessário autenticar ao imprimir - Ubuntu X Windowns (1)
O que houve com slackware ??? (11)
O Free Download Manager não abre no Fedora 43 KDE Plasma (2)









