#!/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 2>&1 & echo "Done" exit 0 else echo "Couldn't find '${1}': No such file or directory" exit 1 fi