Krolyxon
Commit 884fda0

Branches

Refs →

aurora.localbinsetwall

69 lines · 1.6 KB · Bourne Again Shell (bash)

1#!/bin/bash
2WALL_DIR="$HOME/pix/wallpapers/catppuccin/"
3MODE="random"
4CUSTOM_PATH=""
5
6apply_wallpaper() {
7 # Apply wallpaper
8 if ! pgrep -x hyprpaper >/dev/null; then
9 # Hyprpaper not running → start with chosen wallpaper
10 cat > ~/.config/hypr/hyprpaper.conf <<EOF
11wallpaper {
12 monitor =
13 path = $NEW_WALL
14}
15EOF
16hyprpaper &
17wal -i $NEW_WALL -n
18else
19 # Hyprpaper is running → change it live
20 cat > ~/.config/hypr/hyprpaper.conf <<EOF
21wallpaper {
22 monitor =
23 path = $NEW_WALL
24}
25EOF
26 hyprctl hyprpaper wallpaper ",$NEW_WALL"
27 wal -i $NEW_WALL -n
28 fi
29
30}
31
32# Parse options
33while getopts ":mnp:" opt; do
34 case $opt in
35 m) MODE="menu" ;;
36 p) MODE="path"; CUSTOM_PATH="$(realpath $OPTARG)" ;;
37 n) MODE="nc" ;;
38 \?) echo "Usage: $0 [-m] [-p /path/to/image] [-n]" >&2; exit 1 ;;
39 :) echo "Option -$OPTARG requires an argument." >&2; exit 1 ;;
40 esac
41done
42
43# Choose wallpaper
44case $MODE in
45 random)
46 NEW_WALL=$(find "$WALL_DIR" -type f | shuf -n 1)
47 if [[ -z "$NEW_WALL" ]]; then
48 NEW_WALL="$HOME/.config/hypr/default-wallpaper.png"
49 fi
50 apply_wallpaper
51 ;;
52 path)
53 if [[ -f "$CUSTOM_PATH" ]]; then
54 NEW_WALL="$CUSTOM_PATH"
55 else
56 echo "Error: File not found -> $CUSTOM_PATH" >&2
57 exit 1
58 fi
59 apply_wallpaper
60 ;;
61 menu)
62 NEW_WALL=$(nsxiv -tfpo $WALL_DIR)
63 apply_wallpaper
64 ;;
65 nc)
66 echo "Not changing anything"
67 pgrep 'hyprpaper' || hyprpaper &
68 ;;
69esac