Krolyxon
Commit 28d704a

Branches

Refs →

aurora.localbinsetwall

46 lines · 1.1 KB · Bourne Again Shell (bash)

1#!/bin/bash
2WALL_DIR="$HOME/pix/wallpapers/catppuccin/"
3MODE="random"
4CUSTOM_PATH=""
5
6# Parse options
7while getopts ":mp:" opt; do
8 case $opt in
9 m) MODE="menu" ;;
10 p) MODE="path"; CUSTOM_PATH="$OPTARG" ;;
11 \?) echo "Usage: $0 [-m] [-p /path/to/image]" >&2; exit 1 ;;
12 :) echo "Option -$OPTARG requires an argument." >&2; exit 1 ;;
13 esac
14done
15
16# Choose wallpaper
17case $MODE in
18 random)
19 NEW_WALL=$(find "$WALL_DIR" -type f | shuf -n 1)
20 ;;
21 path)
22 if [[ -f "$CUSTOM_PATH" ]]; then
23 NEW_WALL="$CUSTOM_PATH"
24 else
25 echo "Error: File not found -> $CUSTOM_PATH" >&2
26 exit 1
27 fi
28 ;;
29 menu)
30 NEW_WALL=$(nsxiv -tfpo $WALL_DIR)
31 ;;
32esac
33
34# Apply wallpaper
35if ! pgrep -x hyprpaper >/dev/null; then
36 # Hyprpaper not running → start with chosen wallpaper
37 cat > ~/.config/hypr/hyprpaper.conf <<EOF
38preload = $NEW_WALL
39wallpaper = ,$NEW_WALL
40EOF
41 hyprpaper &
42else
43 # Hyprpaper is running → change it live
44 hyprctl hyprpaper preload "$NEW_WALL"
45 hyprctl hyprpaper wallpaper ",$NEW_WALL"
46fi