You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
2.3 KiB
Bash
57 lines
2.3 KiB
Bash
#!/bin/bash
|
|
## Script to get location of album art from cmus music player to use in conky.
|
|
|
|
## Make sure to include this script in your .conkyrc and point conky to the symlinked image.
|
|
## Note: As of now, this script links the image without the extension. This is due to .png files now being recognised.
|
|
## Please update your .conkyrc to reflect the change.
|
|
## You should position the image (with the -p option) close to the line where you execute the script,
|
|
## to ensure that the output takes it's place if it isn't present.
|
|
|
|
## Here is an example of what I put in my .conkyrc:
|
|
## ${execi 4 /home/ab/scripts/cmus-conky-art.sh}
|
|
## ${image /home/ab/conkyart -s 200x200 -p 4,470}
|
|
|
|
## The CONKART variable below determines where the art will be symlinked to ('conkyart' is the actual symlinked image):
|
|
|
|
CONKART=$( echo "$HOME/conkyart" )
|
|
|
|
# If cmus is running...
|
|
if cmus-remote -Q &>/dev/null ; then
|
|
|
|
# Get directory for album art.
|
|
FOLDER=$( cmus-remote -Q | grep 'file ' | cut -c6- | sed 's:/[^/]*$::' )
|
|
|
|
# Find an image matching a string of common names. Add more as you wish using '\|foo.jpg' as the structure.
|
|
FILE=$( ls "$FOLDER" | grep -iw -m1 'folder.jpg\|cover.jpg\|front.jpg\|folder.png\|cover.png\|front.png' )
|
|
|
|
# If nothing is found, look for any jpg file and use first match.
|
|
# This may result in the wrong image being displayed, as it will take any image found in the folder as a fallback.
|
|
# If you would prefer not to risk that happening delete/comment out this section from "if" to "fi"
|
|
if [ -z "$FILE" ]; then
|
|
FILE=$( ls "$FOLDER" | grep -i -m1 '.jpg\|.png' )
|
|
fi
|
|
|
|
# If nothing is ultimately found, display a message and remove any previous symlink to album art if present.
|
|
if [ -z "$FILE" ]; then
|
|
echo "No album art."
|
|
if [ -e $CONKART ]; then
|
|
unlink $CONKART
|
|
fi
|
|
|
|
# If we found something...
|
|
else
|
|
|
|
# Combine folder and filename together and symlink result for a path with no spaces.
|
|
# (conky doesn't seem to like spaces in file paths.)
|
|
ln -sf "$FOLDER/$FILE" $CONKART
|
|
fi
|
|
|
|
# If nothing is playing/cmus is closed display message and remove any previous symlink to album art.
|
|
else
|
|
echo "Nothing playing."
|
|
|
|
if [ -e $CONKART ]; then
|
|
unlink $CONKART
|
|
fi
|
|
fi
|