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.517 ]
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
Minha solução para monitorar múltiplos termômetros no Slackware
Informação sobre partições montadas em Xdialog
Localizador não interativo do Mozilla Firefox para Slackware
script testador de ips para rede wireless
Atenção a quem posta conteúdo de dicas, scripts e tal (2)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
ASRock H310CM-HG4 vs Linux [RESOLVIDO] (18)
Microfone do meu headset não é recinhecido. Meu notebook é um Acer Asp... (12)