summaryrefslogtreecommitdiff
path: root/dotfiles/dwm/.local/bin/wallsearch
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-01-26 17:27:50 -0600
committerCraig Jennings <c@cjennings.net>2026-01-26 17:27:50 -0600
commita80dbca48b09ff50274e34fbf27c09c475aa09c7 (patch)
tree58198a3defb7320d7a21959a92cd84a004e9f27e /dotfiles/dwm/.local/bin/wallsearch
parent0c182874d924d79ab5fba7f8f0172c5a4240a27a (diff)
refactor(scripts): reorganize scripts by desktop environment
Move X11/DWM-specific scripts to dotfiles/dwm/.local/bin/: - All dmenu* scripts (7) - All statusbar/sb-* scripts (24) - Display scripts: brightness, displayselect, monitor, colorpick - Input scripts: remaps, toggle-touchpad, samedir - Menu scripts: exitmenu, prompt, airplanemodetoggle, audioselect - Media scripts: screenshotmenu, recordnow, setbg, wallsearch, bookfind - Misc: battery_monitor, td-toggle Delete obsolete scripts: - build.emacs.aur.sh (redundant with build-emacs.sh) - bsdnet_bounce (FreeBSD only) - calibre-install (just curls installer) - debugemacs (hardcoded paths) - gruv (duplicate of alias) - reset-auth (unclear purpose) - touchpad-indicator-start (obsolete daemon) - starth (unused Hyprland starter) Universal scripts remain in dotfiles/system/.local/bin/ for both X11 and Wayland installs. Also update todo.org: cancel pywal and waybar netspeed tasks, mark desktop file pruning done. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'dotfiles/dwm/.local/bin/wallsearch')
-rwxr-xr-xdotfiles/dwm/.local/bin/wallsearch43
1 files changed, 43 insertions, 0 deletions
diff --git a/dotfiles/dwm/.local/bin/wallsearch b/dotfiles/dwm/.local/bin/wallsearch
new file mode 100755
index 0000000..f71d150
--- /dev/null
+++ b/dotfiles/dwm/.local/bin/wallsearch
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+walldir="$HOME/Pictures/wallpaper/incoming"
+tmpdir="$HOME/.wallsearch"
+maxpage=5
+tagoptions="CANCEL\n#minimalism\n#digital art\n#4K\n#nature\n#abstract\n#landscape\n#cityscape\n#surf\n#technology"
+sortoptions="CANCEL\ndate_added\nrelevance\nrandom\nfavorites\ntoplist"
+
+if [ -d $tmpdir ]; then
+ rm -rf $tmpdir
+fi
+mkdir -p $tmpdir
+
+if [ -z $1 ]; then
+ query=$(echo -e $tagoptions | dmenu -p "Search Wallhaven: " -i)
+else
+ query=$1
+fi
+
+[ $query == "CANCEL" ] && notify-send "Cancelled wallpaper search." && exit 0;
+
+sorting=$(echo -e $sortoptions | dmenu -p "Sort Order: " -i)
+
+[ $sorting == "CANCEL" ] && notify-send "Cancelled wallpaper search." && exit 0;
+
+query="$(sed 's/#//g' <<<$query)"
+query="$(sed 's/ /+/g' <<<$query)"
+echo #query
+
+notify-send "wallsearch" "Searching wallpapers..."
+
+for i in $(seq 1 10);
+do
+ curl -s https://wallhaven.cc/api/v1/search\?atleast\=1920x1080\&sorting\=$sorting\&q\=$query\&purity=111\&page\=$i > tmp.txt
+ page=$(cat tmp.txt | jq '.' | grep -Eoh "https:\/\/w\.wallhaven.cc\/full\/.*(jpg|png)\b")
+ wget -nc -P $tmpdir $page
+ notify-send "wallsearch" "Searching wallpapers..."
+done
+
+rm tmp.txt
+notify-send "wallsearch" "Done searching wallpaper."
+sxiv -to $tmpdir/* | xargs -I % mv % $walldir
+#rm -rf $tmpdir