Update: credit to David in the comments, there's a much fancier implementation of this here: https://github.com/flozz/cover-thumbnailer
While playing with GNOME 43 on my recent upgrade to Fedora 37, I saw that nautilus aka GNOME Files lets me set arbitrary images as a custom icon for files and folders, replacing the default icon/thumbnail. (The support for "metadata::custom-icon" has apparently been around for a while already.)
I quickly hopped into my music folder and wrote a small script to replace all of the (legally purchased) folders of albums of music's icons with images of their album art if an image was already present.
My Camera Obscura band's folder of albums went from this:
to this
Cool!
The quick code:
#!/bin/sh find ./ -type d | while read DIR; do if basename "${DIR}" | grep "^\."; then # skip . directories continue; fi echo "${DIR}..."; touch /tmp/.naa.coversearch # ranked cover options by preference, as some dirs have multiple; # break after we find highest one echo "front.(jpg|png) cover.(jpg|png) [Ff]older.(jpg|png) box.jpg album\-[0-9a-f]+\-[0-9a-f]+\.jpeg" | while read COVER_PATTERN; do # echo " ${COVER_PATTERN}..."; find "${DIR}" -regextype egrep -regex ".*/${COVER_PATTERN}$" | head -n 1 | # grab first and go while read COVER_RELPATH; do rm /tmp/.naa.coversearch # we found a cover, end search echo " found cover ${COVER_RELPATH}!"; COVER_ABSPATH="$(realpath "${COVER_RELPATH}")"; gio set "${DIR}" metadata::custom-icon "file://${COVER_ABSPATH}" done # if we're not still searching, skip other patterns and go to next dir test -f /tmp/.naa.coversearch || break done done
For the curious, I purchased a lot of legally-licensed, DRM-free music through eMusic back in the day, before streaming took over everything. I still purchase CDs as merch at shows sometimes, and then extract those to OGG Vorbis (sorry, not FLAC). Sometimes, I still open up Rhythmbox and play actual files, ooo.
To do:
- corner folder icons: Generate album folder thumbnails that have a little folder icon in the bottom corner still, so I can tell that it's still a folder
- artist custom icons as potential grids: My folder structure is artist/album/track.ogg. So right now, the artist folder also acquires the first album cover it finds. If an artist has multiple album covers available, I want to do a small grid of up to 2x2.
- photo albums: do something similar for photo albums folders.
Keine Kommentare:
Kommentar veröffentlichen