added bash script to set wallpaper on wayland environments (eg. Hyprland)
This commit is contained in:
Executable
+69
@@ -0,0 +1,69 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Written by: fennek182
|
||||
# Version: 4
|
||||
# Last change: Sun 2026-06-14
|
||||
# Git repo: https://git.fennek.xyz/fennek182/dotfiles
|
||||
# Latest version: https://git.fennek.xyz/fennek182/dotfiles/src/branch/main/.local/bin/stats
|
||||
# Description: This is a script for managing the wallpaper/background image
|
||||
|
||||
# TODO: add comments to better describe functionality
|
||||
|
||||
pick_random_wallpaper () {
|
||||
image=$(/bin/ls "$HOME/pix/wallpaper/desktop" | grep -E '(jpg|jpeg|png)$' | sort -R | tail -1)
|
||||
path="$HOME/pix/wallpaper/desktop/$image"
|
||||
}
|
||||
|
||||
run_cmd () {
|
||||
cmd_string="hyprctl 'dispatch hl.dsp.exec_cmd(\"$@\")'"
|
||||
echo $cmd_string
|
||||
eval $cmd_string
|
||||
}
|
||||
|
||||
set_bg () {
|
||||
echo "setting bg..."
|
||||
swaybg_pid=$(pidof swaybg)
|
||||
run_cmd "swaybg -i $(tail -n1 /tmp/wallpaper)" > /dev/null 2>&1
|
||||
sleep 0.5
|
||||
kill $swaybg_pid
|
||||
sleep 2 && copy_wallpaper
|
||||
}
|
||||
|
||||
copy_wallpaper() {
|
||||
echo "running copy proccess..."
|
||||
/bin/cp -f "$(tail -n1 /tmp/wallpaper)" ~/.config/wallpaper
|
||||
/bin/cp -f "/tmp/wallpaper" "/tmp/wallpaper_set"
|
||||
}
|
||||
|
||||
case $1 in
|
||||
"--restore")
|
||||
# restores previously set wallpaper (e.g. on startup):
|
||||
echo "~/.config/wallpaper" > /tmp/wallpaper
|
||||
echo "~/.config/wallpaper" > /tmp/wallpaper_set
|
||||
set_bg
|
||||
;;
|
||||
|
||||
"--copy")
|
||||
copy_wallpaper
|
||||
;;
|
||||
|
||||
"--file")
|
||||
echo $2 > /tmp/wallpaper
|
||||
set_bg
|
||||
;;
|
||||
|
||||
"--pick")
|
||||
# deprecated - wip, searching for new UIs to pick a wallpaper
|
||||
;;
|
||||
|
||||
* | "--random")
|
||||
# when no parameter is given, pick a random image from wallpaper folder
|
||||
# choose random wallpaper again if current wallaper is the same
|
||||
# overwrite symlink to ~/.config/wallpaper
|
||||
pick_random_wallpaper
|
||||
# while [ $(tail -n1 /tmp/wallpaper) -ef "$path" ]; do pick_random_wallpaper; done
|
||||
echo $path > /tmp/wallpaper
|
||||
echo "setting wallpaper $path"
|
||||
set_bg
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user