Keep the wallpaper when movie restores the screen layout
.fehbg now saves its random picks to ~/.cache/wallpapers and redraws them with --keep; screen-layout passes this through with --keep-wallpaper, used by movie.
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
# Sets a random wallpaper on each monitor; with --keep, redraws the last ones picked instead.
|
||||
|
||||
cache=${XDG_CACHE_HOME:-$HOME/.cache}/wallpapers
|
||||
|
||||
if [[ $1 != --keep || ! -s $cache ]]; then
|
||||
# One image per connected output, so --keep still has enough after an output was off
|
||||
count=$(xrandr --query | grep -c ' connected')
|
||||
shuf -n "$count" -e ~/.local/share/backgrounds/random/* > "$cache"
|
||||
fi
|
||||
|
||||
mapfile -t walls < "$cache"
|
||||
exec /usr/bin/feh --no-fehbg --bg-fill "${walls[@]}"
|
||||
+1
-1
@@ -7,7 +7,7 @@ if ! xrandr --query | grep -q '^HDMI-1-0 connected'; then
|
||||
exec mpv "$@"
|
||||
fi
|
||||
|
||||
trap ~/.local/bin/screen-layout EXIT
|
||||
trap '"$HOME"/.local/bin/screen-layout --keep-wallpaper' EXIT
|
||||
trap 'exit 130' INT TERM HUP
|
||||
|
||||
xrandr --output eDP-1 --off
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#!/bin/bash
|
||||
# Sets up the outputs, wallpaper and trayer for whatever monitors are connected.
|
||||
# Called by xmonad at startup and on monitor (dis)connect, and by `movie` on exit.
|
||||
# --keep-wallpaper redraws the current wallpaper instead of picking new random ones.
|
||||
|
||||
if xrandr --query | grep -q '^HDMI-1-0 connected'; then
|
||||
xrandr --output HDMI-1-0 --preferred --primary --output eDP-1 --right-of HDMI-1-0 --preferred
|
||||
@@ -10,7 +11,11 @@ else
|
||||
tray=0
|
||||
fi
|
||||
|
||||
if [[ $1 == --keep-wallpaper ]]; then
|
||||
~/.fehbg --keep
|
||||
else
|
||||
~/.fehbg
|
||||
fi
|
||||
|
||||
# Replace any running trayer, so there's never more than one
|
||||
pkill -x trayer
|
||||
|
||||
Reference in New Issue
Block a user