New backup 2025-11-28 11:00:02

This commit is contained in:
Penelope Gwen 2025-11-28 11:00:02 -08:00
parent b3dca76aa5
commit 745d748571

View file

@ -39,35 +39,40 @@ get_hardcoded_icon() {
get_desktop() { get_desktop() {
app="$1" app="$1"
p="/usr/share/applications" plist=("/usr/share/applications", "/var/lib/flatpak/exports/share/applications/")
[[ "$verbose" ]] && echo "searching for '$app'" >&2
# fast and easy cases first: # fast and easy cases first:
for prefix in "" org.kde. org.gnome. org.freedesktop.; do for p in "${plist[@]}";do
d="$p/$prefix$app.desktop" for prefix in "" org.kde. org.gnome. org.freedesktop.; do
[[ -r "$d" ]] && { d="$p/$prefix$app.desktop"
echo "$d" [[ -r "$d" ]] && {
[[ "$verbose" ]] && echo "found '$d'" >&2 echo "$d"
return [[ "$verbose" ]] && echo "found '$d'" >&2
} return
}
done
done done
# maybe lowercase # maybe lowercase
for prefix in "" org.kde. org.gnome. org.freedesktop.; do for p in "${plist[@]}";do
d="$p/$prefix${app,,}.desktop" for prefix in "" org.kde. org.gnome. org.freedesktop.; do
[[ -r "$d" ]] && { d="$p/$prefix${app,,}.desktop"
echo "$d" [[ -r "$d" ]] && {
[[ "$verbose" ]] && echo "found '$d'" >&2 echo "$d"
return [[ "$verbose" ]] && echo "found '$d'" >&2
} return
}
done
done done
# this is fairly reliable but slow: # this is fairly reliable but slow:
# look for a .desktop file with Exec=$app eg # look for a .desktop file with Exec=$app eg
# gnome-disks (but exclude gnome-disk-image-writer.desktop) # gnome-disks (but exclude gnome-disk-image-writer.desktop)
# gnome-font-viewer # gnome-font-viewer
GREP='egrep -r' GREP='egrep -r'
type rg &>/dev/null && GREP=rg type rg &>/dev/null && GREP=rg
d=$( $GREP -il "^exec=$app( %u)*[[:space:]]*$" $p | head -n 1) d=$( $GREP -il "^exec=$app( %u)*[[:space:]]*$" ${p[@]} | head -n 1)
[[ -r "$d" ]] && { [[ -r "$d" ]] && {
echo "$d" echo "$d"
[[ "$verbose" ]] && echo "found '$d'" >&2 [[ "$verbose" ]] && echo "found '$d'" >&2
@ -76,12 +81,14 @@ get_desktop() {
# desperation - weird apps like com.github.wwmm.pulseeffects.desktop!! # desperation - weird apps like com.github.wwmm.pulseeffects.desktop!!
# shellcheck disable=SC2012 # shellcheck disable=SC2012
d=$( ls "$p/"*".$app.desktop" 2>/dev/null | head -n 1 ) for p in "${plist[@]}";do
[[ -r "$d" ]] && { d=$( ls "$p/"*".$app.desktop" 2>/dev/null | head -n 1 )
echo "$d" [[ -r "$d" ]] && {
[[ "$verbose" ]] && echo "found '$d'" >&2 echo "$d"
return [[ "$verbose" ]] && echo "found '$d'" >&2
} return
}
done
} }
get_icon() { get_icon() {