summaryrefslogtreecommitdiff
path: root/scripts/Scripts/setwall
diff options
context:
space:
mode:
authorJulian T <julian@jtle.dk>2023-02-06 20:50:11 +0100
committerJulian T <julian@jtle.dk>2023-02-06 21:33:55 +0100
commit265b3b7b976732ab00e57aa064f06857b547b2b0 (patch)
treea298676cf535cadd5602d8aefa110abd3687e996 /scripts/Scripts/setwall
parente9d6b42be25ac756a7cc9c44e1a34b78919dfec2 (diff)
Create new setwall script in rust
Diffstat (limited to 'scripts/Scripts/setwall')
-rwxr-xr-xscripts/Scripts/setwall196
1 files changed, 0 insertions, 196 deletions
diff --git a/scripts/Scripts/setwall b/scripts/Scripts/setwall
deleted file mode 100755
index 86214a6..0000000
--- a/scripts/Scripts/setwall
+++ /dev/null
@@ -1,196 +0,0 @@
-#!/usr/bin/env bash
-
-WALLFILE="$HOME/Pictures/wallconfig"
-WALLLINK="$HOME/Pictures/current_wall"
-BINNAME="setwall"
-
-function unsetwalls() {
- for wall in $@; do
- echo unsetting $wall
- pat=$(echo $wall | sed 's/\//\\\//g')
- sed -i.bak "/$pat/d" $WALLFILE
- done
-}
-function unsetcur() {
- if [ -f "${WALLLINK}" ]; then
- unsetwalls $(realpath --relative-to=$HOME $WALLLINK)
- else
- echo "could not resolve current wallpaper"
- exit 1
- fi
-}
-function delete() {
- echo deleting wallfile
- rm $WALLFILE
-}
-function unsetall() {
- 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
-}
-
-function runsetwall() {
- feh --bg-tile $1
- # wal --saturate 0.9 -i $1
-}
-
-function applywall() {
- echo applying wallpaper $1
- rm $WALLLINK
- ln -s $(pwd)/$1 $WALLLINK
- runsetwall $1
-}
-
-function reapply() {
- echo reapplying linked wallpaper
- # feh --bg-fill $WALLLINK
- runsetwall $WALLLINK
-}
-
-function help() {
- 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 " -c, --current unset currently applied wallpaper"
- echo
- echo "apply options:"
- echo " -r, --reapply reapply last applied wallpaper"
-}
-
-function unknown() {
- echo "${BINNAME}: unknown option $1" 1>&2
- exit 1
-}
-
-if [[ $# -eq 0 ]]; then
- echo "${BINNAME}: no arguments given" 1>&2
- help
- exit 1
-fi
-
-mode="N"
-pos=""
-
-function apply_mode() {
- case $mode in
- U)
- unsetwalls $pos
- ;;
- S)
- setwalls $pos
- ;;
- A)
- applywall $(shuf -n 1 $WALLFILE)
- ;;
- esac
-}
-
-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
-
- for key in $keys; do
- case $mode in
- U)
- case $key in
- -a|--all)
- unsetall
- mode="N"
- ;;
- -d|--delete)
- delete
- mode="N"
- ;;
- -c|--current)
- unsetcur
- mode="N"
- ;;
- '-'*|'--'*)
- unknown $key
- ;;
- *)
- pos="$pos $key"
- shift
- ;;
- esac
- ;;
- A)
- case $key in
- -r|--reapply)
- reapply
- mode="N"
- ;;
- '-'*|'--'*)
- unknown $key
- ;;
- *)
- echo Unexpected argument
- help
- mode="N"
- ;;
- esac
- ;;
- S)
- pos="$pos $key"
- shift
- ;;
-
- *)
- apply_mode
- case $key in
- -A|--apply)
- mode="A"
- shift
- ;;
- -U|--unset)
- mode="U"
- shift
- ;;
- -S|--set)
- mode="S"
- shift
- ;;
- -P|--preview)
- applywall $2
- ;;
- -h|--help)
- help
- shift
- exit 0
- ;;
- *)
- unknown $key
- ;;
- esac
- ;;
- esac
- done
-done
-
-apply_mode