Add base shell script, config file & current file
This commit is contained in:
parent
ac952996e7
commit
c586c0d420
1
current_wallpaper.txt
Normal file
1
current_wallpaper.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
|
3
paperchanger.conf.sh
Normal file
3
paperchanger.conf.sh
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# This is the configuration file used by the paperchanger program
|
||||||
|
|
||||||
|
default_directory=/win-f/Daten/Wallpaper/
|
97
paperchanger.sh
Executable file
97
paperchanger.sh
Executable file
@ -0,0 +1,97 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Simple CLI to make wallpaper changes with xwallpaper more comfortable
|
||||||
|
|
||||||
|
read -r current_file_path < current_wallpaper.txt
|
||||||
|
|
||||||
|
source $(dirname $0)/paperchanger.conf.sh
|
||||||
|
|
||||||
|
function _help() {
|
||||||
|
echo ""
|
||||||
|
echo "A tool to help change the wallpaper in a more comfortable way."
|
||||||
|
echo "Uses xwallpaper to load the specified wallpaper."
|
||||||
|
echo ""
|
||||||
|
echo "Usage: paperchanger [OPTION] [PATH]"
|
||||||
|
printf " %-45s\t%-54s\n" \
|
||||||
|
"-h, --help, help" "Print this help." \
|
||||||
|
"-d, --display, display" "Display the specified wallpaper." \
|
||||||
|
"-s, --set, set" "Set the wallpaper with the path as parameter." \
|
||||||
|
"-S, --Set, Set" "Set the wallpaper with a graphical file chooser." \
|
||||||
|
"-ds, --display-and-set, display-and-set" "Set the wallpaper with an path as parameter AND display the specified wallpaper." \
|
||||||
|
"-dS, --display-and-Set, display-and-Set" "Set the wallpaper with a graphical file chooser AND display the specified wallpaper." \
|
||||||
|
"-p, --path, path" "Set the path of the default directory as parameter, where the file chooser to select a wallpaper is initially opened." \
|
||||||
|
"-P, --Path, Path" "Set the path of the default directory with a graphical file chooser, where the file chooser to select a file chooser is initially opened." \
|
||||||
|
}
|
||||||
|
|
||||||
|
function _display() {
|
||||||
|
xwallpaper --zoom $current_file_path
|
||||||
|
}
|
||||||
|
|
||||||
|
function _set() {
|
||||||
|
current_file_path="$1"
|
||||||
|
echo "$current_file_path" > current_wallpaper.txt
|
||||||
|
}
|
||||||
|
|
||||||
|
function _change_config_path() {
|
||||||
|
sed -i "s/^default_directory=.*\$/default_directory=${1//\//\\/}/" paperchanger.conf.sh
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$#" in
|
||||||
|
0)
|
||||||
|
_help
|
||||||
|
;;
|
||||||
|
1)
|
||||||
|
case "$1" in
|
||||||
|
-h | --help | help)
|
||||||
|
_help
|
||||||
|
;;
|
||||||
|
-d | --display | display)
|
||||||
|
if [[ "$current_file_path" == "" ]]; then
|
||||||
|
echo "No wallpaper is selected. Please use <paperchanger -s> or <paperchanger -S> first!"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
_display
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
-S | --Set | Set)
|
||||||
|
if [[ "$default_directory" == "" ]]; then
|
||||||
|
_set "$(zenity --file-selection)"
|
||||||
|
else
|
||||||
|
_set "$(zenity --file-selection --filename=$default_directory)"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
-dS | --display-and-Set | display-and-Set)
|
||||||
|
if [[ "$default_directory" == "" ]]; then
|
||||||
|
_set "$(zenity --file-selection)"
|
||||||
|
else
|
||||||
|
_set "$(zenity --file-selection --filename=$default_directory)"
|
||||||
|
fi
|
||||||
|
_display
|
||||||
|
;;
|
||||||
|
-P | --Path | Path)
|
||||||
|
_change_config_path "$(zenity --file-selection --directory)/"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Input Error"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
2) if [[ "$1" == "-s" || "$1" == "--set" || "$1" == "set" ]]; then
|
||||||
|
_set "$2"
|
||||||
|
elif [[ "$1" == "-ds" || "$1" == "--display-and-set" || "$1" == "display-and-set" ]]; then
|
||||||
|
_set "$2"
|
||||||
|
_display
|
||||||
|
elif [[ "$1" == "-p" || "$1" == "--path" || "$1" == "path" ]]; then
|
||||||
|
_change_config_path "$2"
|
||||||
|
else
|
||||||
|
echo "Input Error"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Input error, too many parameters."
|
||||||
|
echo "please use paperchanger -h or the man page to get help."
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
Loading…
Reference in New Issue
Block a user