atlas-install/config/.local/bin/set-wallpaper

58 lines
1.4 KiB
Plaintext
Raw Permalink Normal View History

2025-04-04 16:51:00 +02:00
#!/bin/sh
print_help() {
echo "Usage: $0 [input-file]"
echo
echo "Changes your current wallpaper"
echo "Please note that this script is made to be used with the Atlas Desktop and will probably not work on most other desktops."
}
if [ $# -ne 1 ]; then
print_help
exit 1
fi
# Check if file exists
if [ -e "$1" ]; then
# Variables declaration
wallpaper_config=~/.config/hypr/hyprpaper.conf
wallpaper_path=~/.config/hypr/images/wallpaper # Doesn't contain file extension
file_extension="${1##*.}"
# In case file has no extension
if [ "${file_extension}" == "$1" ]; then
echo "Error: please provide a file extension (ex: .jpg, .png...)"
exit 1
fi
# Remove old wallpaper
rm $wallpaper_path*
# Copy file
cp "$1" "${wallpaper_path}.${file_extension}"
if [ $? != 0 ]; then
echo "Aborted."
exit 1
fi
# Update config
sed -i "s/wallpaper\.[^[:space:]]*/wallpaper.$file_extension/g" $wallpaper_config # Replace current extension by new extension
if [ $? != 0 ]; then
echo "Aborted."
exit 1
fi
# Reload Hyprpaper
pkill hyprpaper
hyprctl dispatch exec hyprpaper > /dev/null # Start hyprpaper and hide stdout output
# Or you can do the old fashioned way :
# nohup hyprpaper </dev/null >/dev/null 2>&1 &
echo "Done"
exit 0
else
echo "Couldn't find '${1}': No such file or directory"
exit 1
fi