#!/bin/bash getpids() { pids=( $(pgrep swaybg) ) } killpids() { # sleep 5 for i in ${pids[@]};do # kill "${i}" && echo "killed ${i}" echo "${pids[@]}" done } getwpno() { # wpno_last="${wpno}" wpno=$(printf "%02d\n" $(($(echo "$1" | awk '{print $1}' | grep -o "^[1-9]*")-1)) | cut -c 1 | sed 's/[^0-9]*//g') echo "${wpno}" | tee "$HOME/.cache/sway-wallpaper/${2}" } setbg() { # swaybg -i "$HOME/.config/sway/assets/wallpaper/${output}/${wpno}.jpg" -o "${output}" & for d in ${outputs[@]};do d_wpno=$(cat "$HOME/.cache/sway-wallpaper/${d}") # echo "hi ${d}" swaymsg output "${d}" bg "$HOME/.config/sway/assets/wallpaper/${d}/${d_wpno}.jpg" fill # swaybg -i "$HOME/.config/sway/assets/wallpaper/${output}/${wpno}.jpg" -o "${output}" done } #wpno_last="9" getpids output=$(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | {name} | "\(.name)"') outputs=( $(swaymsg -t get_outputs | jq -r '.[] | {name} | "\(.name)"') ) workspace=$(swaymsg -t get_workspaces | jq -r '.[] | select(.focused) | {name} | "\(.name)"') getwpno "${workspace}" "${output}" setbg "${output}" "${wpno}" killpids swaymsg -r -t subscribe -m '["workspace"]' | jq -rc --unbuffered 'select(.change == "focus") | .current | "\(.name) \(.output)"' | while read name output;do wsno=$(($(echo "$name" | awk '{print $1}' | grep -o "^[1-9]*")-1)) echo $name echo $output getpids wpno_last=$(cat "$HOME/.cache/sway-wallpaper/${output}") getwpno "${name}" "${output}" echo "${wpno_last}" if [[ "${wpno}" -ne "${wpno_last}" ]];then echo "hi" setbg "${output}" "${wpno}" killpids fi done