Skip to content

Commit 0b5abe2

Browse files
committed
chore: wayland wallpaper setters
1 parent 8c323d2 commit 0b5abe2

File tree

1 file changed

+16
-14
lines changed

1 file changed

+16
-14
lines changed

scripts/wallpaper.sh

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -29,27 +29,29 @@ set_wallpaper_with_mode() {
2929
# Default xgifwallpaperMode values
3030
local xWallMode="zoom" ; local fehMode="fill"; local nitrogenMode="auto"; local swayMode="fill"
3131
local hsetrootMode="-fill"; local xfceMode=5; local gnomeMode="zoom"; local pcmanfmMode="fit"
32-
local xgifwallpaperMode="FILL"
32+
local xgifwallpaperMode="FILL" awwwMode="crop"
3333

3434
# Mode mappings
3535
case "$wallpaper_mode" in
3636
"full")
3737
xWallMode="maximize" fehMode="max" nitrogenMode="scaled" swayMode="fit"
3838
hsetrootMode="-full" xfceMode=4 gnomeMode="scaled" pcmanfmMode="stretch"
39-
xgifwallpaperMode="MAX"
39+
xgifwallpaperMode="MAX" awwwMode="fit"
4040
;;
4141
"tile")
4242
xWallMode="tile" fehMode="tile"; nitrogenMode="tiled"; swayMode="tile"
4343
hsetrootMode="-tile" xfceMode=1; gnomeMode="wallpaper"; pcmanfmMode="tile"
44+
awwwMode="tile"
4445
;;
4546
"center")
4647
xWallMode="center"; fehMode="centered"; nitrogenMode="centered"; swayMode="center"
4748
hsetrootMode="-center"; xfceMode=2; gnomeMode="centered"; pcmanfmMode="center"
49+
awwwMode="crop"
4850
;;
4951
"cover")
5052
xWallMode="stretch"; fehMode="scale"; nitrogenMode="zoom"; swayMode="stretch"
5153
hsetrootMode="-full"; xfceMode=5; gnomeMode="zoom"; pcmanfmMode="stretch"
52-
xgifwallpaperMode="NONE"
54+
xgifwallpaperMode="NONE" awwwMode="stretch"
5355
;;
5456
esac
5557

@@ -60,7 +62,7 @@ set_wallpaper_with_mode() {
6062
local WALL_SETTERS_STATIC;
6163
local WALL_SETTERS_ANIMATED;
6264

63-
if [[ $XDG_SESSION_TYPE == "wayland" ]]; then
65+
if [[ ! -z $WAYLAND_DISPLAY ]]; then
6466
WALL_SETTERS_STATIC=(awww swaybg gnome-shell)
6567
WALL_SETTERS_ANIMATED=(awww)
6668
else
@@ -79,7 +81,7 @@ set_wallpaper_with_mode() {
7981
# Detect installed setters once
8082
choose_available_setter() {
8183
for installed_wallsetter in "${WALL_SETTERS[@]}"; do
82-
command -v "$installed_wallsetter" >/dev/null 2>&1 && \
84+
command -v "$installed_wallsetter" >"$LOG_FILEPATH" 2>&1 && \
8385
AVAILABLE_SETTERS+=("$installed_wallsetter")
8486
done
8587
}
@@ -100,22 +102,22 @@ set_wallpaper_with_mode() {
100102
break
101103
fi
102104
done
103-
104-
verbose info \
105-
"Available wallpaper backends for $XDG_SESSION_TYPE are:
106-
$(echo -e "${AVAILABLE_SETTERS[@]}" | sed "s/$CH_WALLSETTER/-> \\\033[1;36m${AVAILABLE_SETTERS[@]}/g") \033[1;97m\n"
107105

108106
# Kill running wallpaper deamon if running
109-
pidof "${CH_WALLSETTER}" &>/dev/null && killall "${CH_WALLSETTER}" &>/dev/null
107+
pidof "${CH_WALLSETTER}" &>"$LOG_FILEPATH" && killall "${CH_WALLSETTER}" &>/dev/null
110108

111109
# Use the wallpaper backend first available
112110
case "$CH_WALLSETTER" in
113-
"xgifwallpaper") nohup xgifwallpaper -s $xgifwallpaperMode "$image_path" >/dev/null 2>&1 & disown || wallsetERROR ;;
111+
"xgifwallpaper") nohup xgifwallpaper -s $xgifwallpaperMode "$image_path" >"$LOG_FILEPATH" 2>&1 & disown || wallsetERROR ;;
114112
"xwallpaper") xwallpaper "--$xWallMode" "$image_path" || wallsetERROR;;
115113
"hsetroot") hsetroot "$hsetrootMode" "$image_path" || wallsetERROR;;
116114
"feh") feh --bg-"$fehMode" "$image_path" || wallsetERROR;;
117115
"nitrogen") nitrogen --set-$nitrogenMode "$image_path" || wallsetERROR;;
118-
"swaybg") swaybg -i "$image_path" --mode "$swayMode" >/dev/null 2>&1 & disown || wallsetERROR;;
116+
"swaybg") swaybg -i "$image_path" --mode "$swayMode" >"$LOG_FILEPATH" 2>&1 & disown || wallsetERROR;;
117+
"awww")
118+
pidof "${CH_WALLSETTER}-deamon" &>"$LOG_FILEPATH" || "${CH_WALLSETTER}-deamon" &>"$LOG_FILEPATH"
119+
awww img "$image_path" --resize "$awwwMode" >"$LOG_FILEPATH" 2>&1 & disown || wallsetERROR
120+
;;
119121
"xfconf-query")
120122
if xfconf-query --channel xfce4-desktop --property /backdrop/screen0/monitor0/image-style --set $xfceMode; then
121123
xfconf-query --channel xfce4-desktop --property /backdrop/screen0/monitor0/image-path --set "$image_path"; else wallsetERROR; fi
@@ -134,9 +136,9 @@ setup_wallpaper() {
134136
verbose info "Changing the wallpaper"
135137
case "$wallpaper" in
136138
*.png) cp "$wallpaper" "$WALLPAPER_CACHE" ;;
137-
*.gif) magick "$wallpaper" -coalesce -flatten "$WALLPAPER_CACHE">/dev/null
139+
*.gif) magick "$wallpaper" -coalesce -flatten "$WALLPAPER_CACHE">"$LOG_FILEPATH"
138140
$wallpaper_animated && cp "$wallpaper" "$WALLPAPER_CACHE.gif";;
139-
*) magick "$wallpaper" "$WALLPAPER_CACHE">/dev/null
141+
*) magick "$wallpaper" "$WALLPAPER_CACHE">"$LOG_FILEPATH"
140142
esac
141143
case "$wallpaper_type" in
142144
"solid") magick -size 10x10 xc:"$color8" "$WALLPAPER_CACHE"

0 commit comments

Comments
 (0)