summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xscripts/Scripts/setwall242
1 files changed, 135 insertions, 107 deletions
diff --git a/scripts/Scripts/setwall b/scripts/Scripts/setwall
index f385623..728243d 100755
--- a/scripts/Scripts/setwall
+++ b/scripts/Scripts/setwall
@@ -6,140 +6,168 @@ WALLLINK="$HOME/Pictures/current_wall"
BINNAME="setwall"
function unsetwalls() {
- echo unsetting $@
- for wall in $@; do
- sed -i.bak "/$wall/d" $WALLFILE
- done
+ echo unsetting $@
+ for wall in $@; do
+ sed -i.bak "/$wall/d" $WALLFILE
+ done
}
function delete() {
- echo deleting wallfile
- rm $WALLFILE
+ echo deleting wallfile
+ rm $WALLFILE
}
function unsetall() {
- echo clearing wallfile
- echo -n > $WALLFILE
+ echo clearing wallfile
+ echo -n > $WALLFILE
}
function setwalls() {
- for wall in $@; do
- if grep -q $wall "$WALLFILE"; then
- echo $wall already set
- else
- echo setting $wall
- echo $wall >> $WALLFILE
- fi
- done
+ for wall in $@; do
+ if grep -q $wall "$WALLFILE"; then
+ echo $wall already set
+ else
+ echo setting $wall
+ echo $wall >> $WALLFILE
+ fi
+ done
}
function applywall() {
- echo applying wallpaper $1
- rm $WALLLINK
- ln -s $(pwd)/$1 $WALLLINK
- feh --bg-fill $1
+ echo applying wallpaper $1
+ rm $WALLLINK
+ ln -s $(pwd)/$1 $WALLLINK
+ feh --bg-fill $1
+}
+
+function reapply() {
+ echo reapplying linked wallpaper
+ feh --bg-fill $WALLLINK
}
function help() {
- echo "Wallpaper mangement script"
- echo
- echo "Syntax: ${BINNAME} OPTIONS"
- echo "options:"
- echo " -A, --apply applies a random wallpaper"
- echo " -S, --set FILES sets new wallpapers"
- echo " -U, --unset [OPTIONS] [FILES] unsets new wallpapers"
- echo " -P, --preview FILE temporarily sets a wallpaper"
- echo " -h, --help this message"
- echo
- echo "unset options:"
- echo " -a, --all clears wallconfig file"
- echo " -d, --delete deleted wallconfig file"
+ echo "Wallpaper mangement script"
+ echo
+ echo "Syntax: ${BINNAME} OPTIONS"
+ echo "options:"
+ echo " -A, --apply [OPTIONS] applies a random wallpaper"
+ echo " -S, --set FILES sets new wallpapers"
+ echo " -U, --unset [OPTIONS] [FILES] unsets new wallpapers"
+ echo " -P, --preview FILE temporarily sets a wallpaper"
+ echo " -h, --help this message"
+ echo
+ echo "unset options:"
+ echo " -a, --all clears wallconfig file"
+ echo " -d, --delete deleted wallconfig file"
+ echo
+ echo "apply options:"
+ echo " -r, --reapply reapply last applied wallpaper"
}
function unknown() {
- echo "${BINNAME}: unknown option $1" 1>&2
- exit 1
+ echo "${BINNAME}: unknown option $1" 1>&2
+ exit 1
}
if [[ $# -eq 0 ]]; then
- echo "${BINNAME}: no arguments given" 1>&2
- help
- exit 1
+ echo "${BINNAME}: no arguments given" 1>&2
+ help
+ exit 1
fi
mode="N"
pos=""
while [[ $# -gt 0 ]]; do
- keys="$1"
- # If $1 does is single - argument
- if [[ $1 == '-'* ]] && [[ ! $1 == '--'* ]] ; then
- # Remove first -
- keys=${keys#?}
- # Place space between each character
- keys=$(echo $keys | sed 's/./-& /g')
- fi
+ keys="$1"
+ # If $1 does is single - argument
+ if [[ $1 == '-'* ]] && [[ ! $1 == '--'* ]] ; then
+ # Remove first -
+ keys=${keys#?}
+ # Place space between each character
+ keys=$(echo $keys | sed 's/./-& /g')
+ fi
+
+ for key in $keys; do
+ case $mode in
+ U)
+ case $key in
+ -a|--all)
+ unsetall
+ exit 0
+ ;;
+ -d|--delete)
+ delete
+ exit 0
+ ;;
+ '-'*|'--'*)
+ unknown $key
+ ;;
+ *)
+ pos="$pos $key"
+ shift
+ ;;
+ esac
+ ;;
+ A)
+ case $key in
+ -r|--reapply)
+ reapply
+ exit 0
+ ;;
+ '-'*|'--'*)
+ unknown $key
+ ;;
+ *)
+ echo Unexpected argument
+ help
+ exit 0
+ ;;
+ esac
+ ;;
+ S)
+ pos="$pos $key"
+ shift
+ ;;
- for key in $keys; do
- case $mode in
- U)
- case $key in
- -a|--all)
- unsetall
- exit 0
- ;;
- -d|--delete)
- delete
- exit 0
- ;;
- '-'*|'--'*)
- unknown $key
- ;;
- *)
- pos="$pos $key"
- shift
- ;;
- esac
- ;;
- S)
- pos="$pos $key"
- shift
- ;;
- *)
- case $key in
- -A|--apply)
- applywall $(shuf -n 1 $WALLFILE)
- exit 0
- ;;
- -U|--unset)
- mode="U"
- shift
- ;;
- -S|--set)
- mode="S"
- shift
- ;;
- -P|--preview)
- applywall $2
- exit 0
- ;;
- -h|--help)
- help
- shift
- exit 0
- ;;
- *)
- unknown $key
- ;;
- esac
- ;;
- esac
- done
+ *)
+ case $key in
+ -A|--apply)
+ mode="A"
+ shift
+ ;;
+ -U|--unset)
+ mode="U"
+ shift
+ ;;
+ -S|--set)
+ mode="S"
+ shift
+ ;;
+ -P|--preview)
+ applywall $2
+ exit 0
+ ;;
+ -h|--help)
+ help
+ shift
+ exit 0
+ ;;
+ *)
+ unknown $key
+ ;;
+ esac
+ ;;
+ esac
+ done
done
case $mode in
- U)
- unsetwalls $pos
- ;;
- S)
- setwalls $pos
- ;;
+ U)
+ unsetwalls $pos
+ ;;
+ S)
+ setwalls $pos
+ ;;
+ A)
+ applywall $(shuf -n 1 $WALLFILE)
+ ;;
esac