forked from extern/nix-config
33 lines
943 B
Bash
33 lines
943 B
Bash
|
#!/usr/bin/env bash
|
||
|
|
||
|
music_dir="$HOME/Music"
|
||
|
fallback_image="$HOME/a.jpg"
|
||
|
|
||
|
main () {
|
||
|
find_cover 2>/dev/null
|
||
|
send 2>/dev/null
|
||
|
}
|
||
|
|
||
|
find_cover () {
|
||
|
ext="$(mpc --format %file% current | sed 's/^.*\.//')"
|
||
|
if [ "$ext" != "flac" ]; then
|
||
|
ffmpeg -y -i "$(mpc --format "$music_dir"/%file% | head -n 1)" \
|
||
|
/tmp/cover.jpg && cover_path="/tmp/cover.jpg" && return
|
||
|
else
|
||
|
# ffmpeg doesn't work for flacs
|
||
|
metaflac --export-picture-to=/tmp/cover.jpg \
|
||
|
"$(mpc --format "$music_dir"/%file% current)" && cover_path="/tmp/cover.jpg" && return
|
||
|
fi
|
||
|
#without embedded images this is used as a fallback
|
||
|
file="$music_dir/$(mpc --format %file% current)"
|
||
|
album="${file%/*}"
|
||
|
#search for cover image
|
||
|
cover_path=$(find "$album" -maxdepth 1 | grep -m 1 ".*\.\(jpg\|png\|gif\|bmp\)")
|
||
|
}
|
||
|
|
||
|
send () {
|
||
|
notify-send -i "${cover_path:-$fallback_image}" "Now Playing" "$(mpc current)"
|
||
|
}
|
||
|
|
||
|
main
|