Just providing one more data point to this: tried to find differences WRT
#1116943 stemming from my configuration. I have the following snippet:
exec swayidle -w \
timeout 300 'swaylock -f -c 000000' \
timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms
on"' \
before-sleep 'swaylock -f -c 000000'
I tested setting DPMS off and on, and it does _not_ kill the Sway session,
although there might be a race condition in its handling. I tried the
following:
$ export LOG=/tmp/death_by_dpms
$ export SLEEP=5
$ for i in $(seq 1 10) do
> echo -n "$i..."
> echo "Starting $i" >> $LOG
> swaymsg output \* dpms off
> sleep $SLEEP
> swaymsg output \* dpms on
> sleep $SLEEP
> echo "Finished $i" >> $LOG
> echo ''
> done
Succeeds. However, reducing SLEEP to 2 kills Sway at the second iteration
(reliably). Of course, I don't know how badly am I abusing DPMS if I do so
— and I know that's not what happens when my session idles!