Krolyxon
Commit 2e919c3

Branches

Refs →

aurora.localbinsetwall

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

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