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.697 ]
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 compartilhar conexão e criar regras de Firewall
Renomeador Automático de Arquivos de Mídia
Atenção a quem posta conteúdo de dicas, scripts e tal (6)
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
O mínimo que você precisa saber sobre o terminal (parte 2)
O mínimo que você precisa saber sobre o terminal (parte 1)
Como iniciar uma máquina virtual do VirtualBox automaticamente no boot do LUbuntu 18 LTS
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como deixar as abas do Firefox mais fininhas
Mudar o gerenciador de login (GDM para SDDM)
"Tentando" fazer com que programas rodem no Wayland e no X11
Atualize o seu FIrefox, falha de segurança grave, Zero Day (0)
Erro de entrada/saída.- Fedora 40 (0)
Erro Problema com instalação de Endian Firewall em novo computador. pl... (3)