summaryrefslogtreecommitdiff
path: root/scripts/swall
diff options
context:
space:
mode:
authorSuleyman Farajli <suleyman@farajli.net>2024-07-24 21:12:09 +0400
committerSuleyman Farajli <suleyman@farajli.net>2024-07-24 21:12:09 +0400
commit9f60a2b5ec9ae08d846bc7d3b61612aacadf82c8 (patch)
treee19b0956f0163e77573b6dff8b9e4736b045dcb8 /scripts/swall
parent994ef6afb490f5119a43fc7ae6c6b78e1c0445e4 (diff)
Wallpaper and volume scrips were renamed
Diffstat (limited to 'scripts/swall')
-rwxr-xr-xscripts/swall58
1 files changed, 58 insertions, 0 deletions
diff --git a/scripts/swall b/scripts/swall
new file mode 100755
index 0000000..6d3b854
--- /dev/null
+++ b/scripts/swall
@@ -0,0 +1,58 @@
+#!/bin/sh
+
+# TODO add the option error checking with optind
+
+err() {
+ echo "${0}": "${1}"
+ exit 1
+}
+
+
+help() {
+cat << EOF
+$0: Wrapper script to set wallpapers
+
+options:
+ -d [File] Select a wallpaper or a directory
+ -h Print this message and exit
+ -c Remove the current wallpaper
+
+NOTE: default wallpaper directory is ~/.config/wallpapers
+EOF
+}
+
+waldir="${XDG_CONFIG_HOME:-$HOME}/.config/wallpapers"
+
+while getopts "hcd:" option; do
+ case "${option}" in
+ h)
+ help
+ exit 0
+ ;;
+ c)
+ xwallpaper --clear > /dev/null 2>&1 \
+ || err "Couldn't clear wallpaper"
+ exit 0
+ ;;
+ d) buf="${OPTARG}" ;;
+ *) err 'add -h for help' ;;
+ esac
+done
+
+
+if [ -n "${buf}" ]; then
+ case $(file -b --mime-type "${buf}") in
+ image/*) image="${buf}" ;;
+ inode/directory) waldir="${buf}" ;;
+ *) err "Couldn't read given file" ;;
+ esac
+fi
+
+if [ -z "${image}" ]; then
+ image=$(find "${waldir}" -iregex '.*\.jpeg\|.*\.jpng\|.*\.png' 2>/dev/null \
+ | shuf -n 1 2>/dev/null)
+fi
+
+xwallpaper --zoom "${image}" > /dev/null 2>&1 || err "Couldn't set wallpaper"
+
+echo "${image}"