Files
illogical-impulse/lineage/.config/eww/scripts/appicons
T
2024-02-22 15:35:06 +07:00

65 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/bash
geticonlist() {
classes=$(hyprctl clients | grep -e 'class: ' | sed 's/\tclass: //')
addresses=$(hyprctl clients | grep -e ' -> ')
# echo "$classes"
IFS=$'\n'
classarr=($(echo "$classes"))
addressarr=($(echo "$addresses"))
iconarr=($(echo "$classes"))
for i in "${!classarr[@]}"; do
addressarr[i]=$(echo "0x${addressarr[i]% -> *}" | sed 's/Window //')
# echo "${addressarr[i]}"
done
for i in "${!classarr[@]}"; do
classarr[i]=$(echo ${classarr[i]})
if [ -f "scripts/cache/${classarr[i]}" ]; then
iconarr[i]=$(cat scripts/cache/${classarr[i]})
if [ ! -f "${iconarr[i]}" ]; then # Cache refresh if icon doesnt exist
iconarr[i]=$(scripts/get-icon.py "${classarr[i]}")
echo "${iconarr[i]}" > "scripts/cache/${classarr[i]}"
fi
else
iconarr[i]=$(scripts/get-icon.py "${classarr[i]}")
echo "${iconarr[i]}" > "scripts/cache/${classarr[i]}"
fi
if [[ ${iconarr[i]} = "not found" ]]; then
iconarr[i]=$(scripts/get-icon.py "$(echo "${classarr[i]##*.}" | tr '[:upper:]' '[:lower:]')")
if [[ ! ${iconarr[i]} = "not found" ]]; then
rm "scripts/cache/${classarr[i]}"
echo "${iconarr[i]}" > "scripts/cache/${classarr[i]}"
else
iconarr[i]="/home/$USER/.local/share/icons/candy-icons/mimetypes/scalable/application-x-theme.svg"
rm "scripts/cache/${classarr[i]}"
echo "${iconarr[i]}" > "scripts/cache/${classarr[i]}"
fi
fi
done
printf '['
for i in "${!classarr[@]}"; do
if [ $i -ne 0 ]; then
printf ', '
fi
# printf '{'
# printf "\"${addressarr[i]}\": \"${iconarr[i]}\""
# printf '}'
printf "\"${iconarr[i]}\""
done
printf ']\n'
}
geticonlist
if [ "$1" == "--once" ]; then
exit 0
else
socat -u UNIX-CONNECT:/tmp/hypr/"$HYPRLAND_INSTANCE_SIGNATURE"/.socket2.sock - | while read -r line; do
geticonlist
done
fi