mirror of
https://github.com/wizbright/waybox.git
synced 2025-10-29 05:40:20 -04:00
65 lines
1.9 KiB
Bash
65 lines
1.9 KiB
Bash
#
|
|
# These things are run when a Waybox Wayland session is started.
|
|
# Copy to $XDG_CONFIG_HOME/waybox/autostart to customize.
|
|
#
|
|
|
|
#
|
|
# Change from Openbox: the desktop environment's config tools should begin
|
|
# through autostart elements (e.g. /etc/xdg/autostart); there's no need to
|
|
# specify them here.
|
|
#
|
|
|
|
|
|
# Update the DBus environment
|
|
dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP XDG_SESSION_TYPE
|
|
|
|
# Start a dock
|
|
cairo-dock &
|
|
|
|
# Start a panel
|
|
(waybar || yambar) &
|
|
|
|
# Start a notification daemon
|
|
mako &
|
|
|
|
# Load a random wallpaper
|
|
get_random_wallpaper()
|
|
{
|
|
oldifs=$IFS
|
|
IFS=:
|
|
data_dirs=${XDG_DATA_DIRS:-${datadir:-/usr/share}}:${XDG_DATA_HOME:-~/.local/share}
|
|
for data_dir in $data_dirs;do
|
|
IFS=$oldifs
|
|
wpdir="$data_dir/wallpapers"
|
|
test -d "$wpdir" && \
|
|
find $wpdir -name '*.jpg' -o -name '*.png' -o -name '*.svg'
|
|
done | (shuf -n 1 || tail -n 1)
|
|
}
|
|
|
|
load_wallpaper() {
|
|
if (which hyprpaper && which socat && which wayland-info) >/dev/null 2>&1; then
|
|
hyprpaper &
|
|
HYPRPAPER_SOCKET=/tmp/hypr/.hyprpaper.sock
|
|
# Change the wallpaper every hour
|
|
while test -S $HYPRPAPER_SOCKET; do
|
|
#current_output=$(wayland-info -i wl_output | \
|
|
# grep 'name:' | tail -n 1 | cut -d : -f 2 | tr -d ' ')
|
|
random_wallpaper="$(get_random_wallpaper)"
|
|
for cmd in "preload $random_wallpaper" \
|
|
"wallpaper $current_output,$random_wallpaper" \
|
|
'unload all';
|
|
do
|
|
printf "$cmd" | socat UNIX-CONNECT:$HYPRPAPER_SOCKET -
|
|
done
|
|
[ $? -eq 0 ] && sleep 60m
|
|
done
|
|
elif which swaybg >/dev/null 2>&1; then
|
|
get_random_wallpaper | xargs swaybg -c '#303030' -m fill -i &
|
|
elif which wpaperd >/dev/null 2>&1; then
|
|
wpaperd &
|
|
fi
|
|
}
|
|
|
|
load_wallpaper &
|
|
|
|
# vim: ft=sh
|