59 lines
1.3 KiB
Text
59 lines
1.3 KiB
Text
|
#!/usr/bin/env bash
|
||
|
|
||
|
# rs_wall - A simple screenshot menu script for rofi/dmenu/wofi
|
||
|
# Author: Clay Gomera (Drake)
|
||
|
# Dependencies: {rofi || dmenu || wofi}, swww
|
||
|
|
||
|
############################
|
||
|
# Configuration Parameters #
|
||
|
############################
|
||
|
walldir="$XDG_PICTURES_DIR/Wallpapers" # wallpapers folder, change it to yours
|
||
|
|
||
|
########################
|
||
|
# Function Definitions #
|
||
|
########################
|
||
|
|
||
|
# Check for missing dependencies
|
||
|
CheckDependencies() {
|
||
|
local run_launcher_found=false
|
||
|
for launcher in rofi dmenu wofi; do
|
||
|
if command -v "$launcher" &> /dev/null; then
|
||
|
run_launcher_found=true
|
||
|
break
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
if [ "$run_launcher_found" = false ]; then
|
||
|
echo "Missing dependency: one of rofi, dmenu, or wofi is required."
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
local missing_deps=()
|
||
|
for dep in swww; do
|
||
|
if ! command -v "$dep" &> /dev/null; then
|
||
|
missing_deps+=("$dep")
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
if [ ${#missing_deps[@]} -ne 0 ]; then
|
||
|
echo "Missing dependencies: ${missing_deps[*]}"
|
||
|
exit 1
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
####################
|
||
|
# Main Script Flow #
|
||
|
####################
|
||
|
|
||
|
# Check for dependencies
|
||
|
CheckDependencies
|
||
|
|
||
|
cd "$walldir" || exit 1
|
||
|
wallpaper=$(fd -p "$walldir" | $RUNNER -i -p " Wallpaper Selector")
|
||
|
if [ -n "$wallpaper" ]; then
|
||
|
swww img "$wallpaper"
|
||
|
else
|
||
|
exit 0
|
||
|
fi
|
||
|
exit 0
|