Visualizar capas de álbuns de músicas no MPD/MPC/NCMPCPP
Publicado por João Gabriel (última atualização em 03/02/2021)
[ Hits: 1.907 ]
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
Descobrindo a que tipo de repositório um pacote pertence
Solicitar senha para abrir programa
Desativando mapas que não possuem bots no CS
Shell Script: Script para a instalação do pureftpd
Pra quem contribui com artigos e dicas (0)
Arch Linux - Guia para Iniciantes (5)
tux-gpt - Assistente de IA para o Terminal
Instalação e configuração do Chrony
Programa IRPF - Guia de Instalação e Resolução de alguns Problemas
O Que Fazer Após Instalar Ubuntu 25.04
O Que Fazer Após Instalar Fedora 42
Debian 12 -- Errata - Correções de segurança
Instalando o Pi-Hole versão v5.18.4 depois do lançamento da versão v6.0
Pra quem contribui com artigos e dicas (0)
Monitor fora de escala ao bootar sistema (9)
NAT LoopBack - Hairpin NAT (2)
Alguém poderia me ajudar a escolher peças pra montar um desktop? (18)