73 lines
2.2 KiB
Bash
Executable file
73 lines
2.2 KiB
Bash
Executable file
#!/usr/bin/env sh
|
|
|
|
|
|
#// Set variables
|
|
|
|
scrDir=$(dirname "$(realpath "$0")")
|
|
source "${scrDir}/globalcontrol.sh"
|
|
scrName="$(basename "$0")"
|
|
kmenuPath="$HOME/.local/share/kio/servicemenus"
|
|
kmenuDesk="${kmenuPath}/hydewallpaper.desktop"
|
|
tgtPath="$(dirname "${hydeThemeDir}")"
|
|
get_themes
|
|
|
|
|
|
#// Evaluate options
|
|
|
|
while getopts "t:w:" option ; do
|
|
case $option in
|
|
|
|
t ) # Set theme
|
|
for x in "${!thmList[@]}" ; do
|
|
if [ "${thmList[x]}" == "$OPTARG" ] ; then
|
|
setTheme="${thmList[x]}"
|
|
break
|
|
fi
|
|
done
|
|
[ -z "${setTheme}" ] && echo "Error: '$OPTARG' theme not available..." && exit 1
|
|
;;
|
|
|
|
w ) # Set wallpaper
|
|
if [ -f "$OPTARG" ] && file --mime-type "$OPTARG" | grep -q 'image/' ; then
|
|
setWall="$OPTARG"
|
|
else
|
|
echo "Error: '$OPTARG' is not an image file..."
|
|
exit 1
|
|
fi
|
|
;;
|
|
|
|
* ) # Refresh menu
|
|
unset setTheme
|
|
unset setWall
|
|
;;
|
|
|
|
esac
|
|
done
|
|
|
|
|
|
#// Regenerate desktop
|
|
|
|
if [ ! -z "${setTheme}" ] && [ ! -z "${setWall}" ] ; then
|
|
|
|
inwallHash="$(set_hash "${setWall}")"
|
|
get_hashmap "${tgtPath}/${setTheme}"
|
|
if [[ "${wallHash[@]}" == *"${inwallHash}"* ]] ; then
|
|
notify-send -a "t2" -i "${thmbDir}/${inwallHash}.sqre" "Error" "Hash matched in ${setTheme}"
|
|
exit 0
|
|
fi
|
|
|
|
cp "${setWall}" "${tgtPath}/${setTheme}/wallpapers"
|
|
ln -fs "${tgtPath}/${setTheme}/wallpapers/$(basename "${setWall}")" "${tgtPath}/${setTheme}/wall.set"
|
|
|
|
"${scrDir}/themeswitch.sh" -s "${setTheme}"
|
|
notify-send -a "t1" -i "${thmbDir}/${inwallHash}.sqre" "Wallpaper set in ${setTheme}"
|
|
|
|
else
|
|
|
|
echo -e "[Desktop Entry]\nType=Service\nMimeType=image/png;image/jpeg;image/jpg;image/gif\nActions=Menu-Refresh$(printf ";%s" "${thmList[@]}")\nX-KDE-Submenu=Set As Wallpaper...\n\n[Desktop Action Menu-Refresh]\nName=.: Refresh List :.\nExec=${scrName}" > "${kmenuDesk}"
|
|
for i in "${!thmList[@]}" ; do
|
|
echo -e "\n[Desktop Action ${thmList[i]}]\nName=${thmList[i]}\nExec=${scrName} -t \"${thmList[i]}\" -w %u" >> "${kmenuDesk}"
|
|
done
|
|
|
|
fi
|
|
|