From 1b30cc2493c43dbf629d87e89d2a8ed18104d005 Mon Sep 17 00:00:00 2001 From: TiredSounds Date: Sat, 12 Dec 2015 20:45:34 +0000 Subject: [PATCH] re-add cmus-conky-art.sh --- cmus-conky-art.sh | 56 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 cmus-conky-art.sh diff --git a/cmus-conky-art.sh b/cmus-conky-art.sh new file mode 100644 index 0000000..f65f807 --- /dev/null +++ b/cmus-conky-art.sh @@ -0,0 +1,56 @@ +#!/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