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.036 ]
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
Script Para Iniciar O Modem Hsp56
Postfix: Configurando o Gmail como Relay (moleza)
Script - muda conteúdo de arquivos texto de iso-8859-1 para utf8 recursivamente
Shell Script para Guia Foca Linux
Arch Linux - remover dependências obsoletas
Wayland em alta, IA em debate e novos ventos para distros e devices
Qt 6.10 e Python 3.14 puxam o ritmo do software livre nesta quarta
Atualizações de Apps, Desktop e Kernel agitam o ecossistema Linux nesta terça-feira
Miyoo Mini Plus + Onion OS (Linux)
IA local no bolso, novo visual no Raspberry Pi OS e mais destaques do software livre
Como mudar o nome de dispositivos Bluetooth via linha de comando
Adicionando o repositório backports no Debian 13 Trixie
queria saber como instalar o android power tools igual ao winux no lin... (1)
Como listar os arquivos em "bloquin... [RESOLVIDO] (6)
Como colocar atalho para uma pasta na área de trabalho do Ubuntu 24.04... (2)