aboutsummaryrefslogtreecommitdiff
path: root/.local
diff options
context:
space:
mode:
authorkrolxon <krolyxon@tutanota.com>2025-10-20 16:01:47 +0530
committerkrolxon <krolyxon@tutanota.com>2025-10-20 16:01:47 +0530
commit7625ce340a14fa8e6faf8f01619a01ba0a61ca2f (patch)
tree18239154462bea5714228a7201d6b133f3734d3c /.local
parent1c6449d484e346c3f87fe3e3a765e0039bcbf71a (diff)
setwall: add -n parameter, useful to just set previous wallpaper as it is
Diffstat (limited to '.local')
-rwxr-xr-x.local/bin/setwall53
1 files changed, 34 insertions, 19 deletions
diff --git a/.local/bin/setwall b/.local/bin/setwall
index 178b233..173faf3 100755
--- a/.local/bin/setwall
+++ b/.local/bin/setwall
@@ -3,12 +3,36 @@ WALL_DIR="$HOME/pix/wallpapers/catppuccin/"
MODE="random"
CUSTOM_PATH=""
+apply_wallpaper() {
+ # Apply wallpaper
+ if ! pgrep -x hyprpaper >/dev/null; then
+ # Hyprpaper not running → start with chosen wallpaper
+ cat > ~/.config/hypr/hyprpaper.conf <<EOF
+preload = $NEW_WALL
+wallpaper = ,$NEW_WALL
+EOF
+hyprpaper &
+wal -i $NEW_WALL -n
+else
+ # Hyprpaper is running → change it live
+ cat > ~/.config/hypr/hyprpaper.conf <<EOF
+preload = $NEW_WALL
+wallpaper = ,$NEW_WALL
+EOF
+ hyprctl hyprpaper preload "$NEW_WALL"
+ hyprctl hyprpaper wallpaper ",$NEW_WALL"
+ wal -i $NEW_WALL -n
+ fi
+
+}
+
# Parse options
-while getopts ":mp:" opt; do
+while getopts ":mnp:" opt; do
case $opt in
m) MODE="menu" ;;
- p) MODE="path"; CUSTOM_PATH="$OPTARG" ;;
- \?) echo "Usage: $0 [-m] [-p /path/to/image]" >&2; exit 1 ;;
+ p) MODE="path"; CUSTOM_PATH="$(realpath $OPTARG)" ;;
+ n) MODE="nc" ;;
+ \?) echo "Usage: $0 [-m] [-p /path/to/image] [-n]" >&2; exit 1 ;;
:) echo "Option -$OPTARG requires an argument." >&2; exit 1 ;;
esac
done
@@ -17,6 +41,7 @@ done
case $MODE in
random)
NEW_WALL=$(find "$WALL_DIR" -type f | shuf -n 1)
+ apply_wallpaper
;;
path)
if [[ -f "$CUSTOM_PATH" ]]; then
@@ -25,24 +50,14 @@ case $MODE in
echo "Error: File not found -> $CUSTOM_PATH" >&2
exit 1
fi
+ apply_wallpaper
;;
menu)
NEW_WALL=$(nsxiv -tfpo $WALL_DIR)
+ apply_wallpaper
+ ;;
+ nc)
+ echo "Not changing anything"
+ pgrep 'hyprpaper' || hyprpaper &
;;
esac
-
-# Apply wallpaper
-if ! pgrep -x hyprpaper >/dev/null; then
- # Hyprpaper not running → start with chosen wallpaper
- cat > ~/.config/hypr/hyprpaper.conf <<EOF
-preload = $NEW_WALL
-wallpaper = ,$NEW_WALL
-EOF
- hyprpaper &
- wal -i $NEW_WALL -n
-else
- # Hyprpaper is running → change it live
- hyprctl hyprpaper preload "$NEW_WALL"
- hyprctl hyprpaper wallpaper ",$NEW_WALL"
- wal -i $NEW_WALL -n
-fi