diff --git a/de/home/.config/eww/scripts/bar/scratchpad b/de/home/.config/eww/scripts/bar/scratchpad index 1017926..3da6e22 100755 --- a/de/home/.config/eww/scripts/bar/scratchpad +++ b/de/home/.config/eww/scripts/bar/scratchpad @@ -39,35 +39,40 @@ get_hardcoded_icon() { get_desktop() { 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: - for prefix in "" org.kde. org.gnome. org.freedesktop.; do - d="$p/$prefix$app.desktop" - [[ -r "$d" ]] && { - echo "$d" - [[ "$verbose" ]] && echo "found '$d'" >&2 - return - } + for p in "${plist[@]}";do + for prefix in "" org.kde. org.gnome. org.freedesktop.; do + d="$p/$prefix$app.desktop" + [[ -r "$d" ]] && { + echo "$d" + [[ "$verbose" ]] && echo "found '$d'" >&2 + return + } + done done # maybe lowercase - for prefix in "" org.kde. org.gnome. org.freedesktop.; do - d="$p/$prefix${app,,}.desktop" - [[ -r "$d" ]] && { - echo "$d" - [[ "$verbose" ]] && echo "found '$d'" >&2 - return - } + for p in "${plist[@]}";do + for prefix in "" org.kde. org.gnome. org.freedesktop.; do + d="$p/$prefix${app,,}.desktop" + [[ -r "$d" ]] && { + echo "$d" + [[ "$verbose" ]] && echo "found '$d'" >&2 + return + } + done done - # this is fairly reliable but slow: # look for a .desktop file with Exec=$app eg # gnome-disks (but exclude gnome-disk-image-writer.desktop) # gnome-font-viewer GREP='egrep -r' 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" ]] && { echo "$d" [[ "$verbose" ]] && echo "found '$d'" >&2 @@ -76,12 +81,14 @@ get_desktop() { # desperation - weird apps like com.github.wwmm.pulseeffects.desktop!! # shellcheck disable=SC2012 - d=$( ls "$p/"*".$app.desktop" 2>/dev/null | head -n 1 ) - [[ -r "$d" ]] && { - echo "$d" - [[ "$verbose" ]] && echo "found '$d'" >&2 - return - } + for p in "${plist[@]}";do + d=$( ls "$p/"*".$app.desktop" 2>/dev/null | head -n 1 ) + [[ -r "$d" ]] && { + echo "$d" + [[ "$verbose" ]] && echo "found '$d'" >&2 + return + } + done } get_icon() {