Displayport disabled and layout changes on suspend with xscreensaver power management

Greetings,

I have an ongoing issue with hibernate/suspend and dual monitor setup.

Hibernate works great! Suspend works great! Dual monitors work great!

Xscreensaver works great! I do not lock my session. I do not have systemD (I do have elogind/libpam).

The problem: When I launch Xscreensaver, it works great, when it calls for the system to suspend, it will blank one monitor, and then someone, somehwere, disables the output of the displayport, effectively turning off the second monitor. The first monitor stays powered on and blanked. Then, because the displayport is disabled, the system/Xscreensavers thinks there is no monitor attached and changes the layout to single monitor setup.

On resume the second monitor wakes, and the system thinks there is yet another setup and mirrors the display output onto the second monitor - yet when I go and manually change it back to the proper layout, all of the open programs on that screen are still there and the wallpaper is restored - like it never happened.

I checked with Xscreensaver and he tested his systems and confirmed this behavior is not an Xscreensaver bug.

Here is the log output from Xscreensaver:

xscreensaver-gfx: 19:57:48: 0: screen change event: layout unchanged
xscreensaver-gfx: 19:58:30: set monitor power to Suspend
xscreensaver-gfx: 19:58:30: monitor has powered down; killing running hacks
xscreensaver-gfx: 19:58:30: 0: killing pid 15211 (fuzzyflakes)
xscreensaver-gfx: 19:58:30: 1: killing pid 15299 (fuzzyflakes)
xscreensaver-gfx: 19:58:30: 0: child pid 15211 (fuzzyflakes) exited normally with SIGTERM
xscreensaver-gfx: 19:58:30: 1: child pid 15299 (fuzzyflakes) exited normally with SIGTERM
xscreensaver-gfx: 19:58:41: 0: screen change event: new layout:
xscreensaver-gfx: 19:58:41: RANDR screens: 4, Xinerama: 2; believing RANDR
xscreensaver-gfx: 19:58:41: screens in use: 1
xscreensaver-gfx: 19:58:41: 3/0: 1920x1080+1920+0 (HDMI-A-0)
xscreensaver-gfx: 19:58:41: rejected screens: 3
xscreensaver-gfx: 19:58:41: 0/0: 1920x1080+0+0 (DisplayPort-0) -- output disabled
xscreensaver-gfx: 19:58:41: 1/0: 1920x1080+0+0 (DisplayPort-1) -- output disabled
xscreensaver-gfx: 19:58:41: 2/0: 1920x1080+0+0 (DisplayPort-2) -- output disabled
xscreensaver-gfx: 19:58:41: 0: resize 0x8800060 from 1920x1080+0+0 to 1920x1080+1920+0
xscreensaver-gfx: 19:58:41: 0: X says monitor has powered down; not launching a hack
xscreensaver-gfx: 19:58:41: 0: next cycle in 0:10:00 at 20:08:41
xscreensaver: 19:58:41: checking init file
xscreensaver-gfx: 19:58:42: 0: screen change event: new layout:
xscreensaver-gfx: 19:58:42: RANDR screens: 4, Xinerama: 2; believing RANDR
xscreensaver-gfx: 19:58:42: screens in use: 2
xscreensaver-gfx: 19:58:42: 1/0: 1920x1080+0+0 (DisplayPort-1)
xscreensaver-gfx: 19:58:42: 3/0: 1920x1080+1920+0 (HDMI-A-0)
xscreensaver-gfx: 19:58:42: rejected screens: 2
xscreensaver-gfx: 19:58:42: 0/0: 1920x1080+0+0 (DisplayPort-0) -- output disabled
xscreensaver-gfx: 19:58:42: 2/0: 1920x1080+0+0 (DisplayPort-2) -- output disabled
xscreensaver-gfx: 19:58:42: 0: resize 0x8800060 from 1920x1080+1920+0 to 1920x1080+0+0
xscreensaver-gfx: 19:58:42: 0: X says monitor has powered down; not launching a hack
xscreensaver-gfx: 19:58:42: 0: next cycle in 0:10:00 at 20:08:42
xscreensaver-gfx: 19:58:42: 1: X says monitor has powered down; not launching a hack
xscreensaver-gfx: 19:58:42: 1: offsetting cycle time by 300 sec
xscreensaver-gfx: 19:58:42: 1: next cycle in 0:15:00 at 20:13:42
xscreensaver-gfx: 19:58:42: 0: screen change event: new layout:
xscreensaver-gfx: 19:58:42: RANDR screens: 4, Xinerama: 1; believing RANDR
xscreensaver-gfx: 19:58:42: screens in use: 1
xscreensaver-gfx: 19:58:42: 3/0: 1920x1080+0+0 (HDMI-A-0)
xscreensaver-gfx: 19:58:42: rejected screens: 3
xscreensaver-gfx: 19:58:42: 0/0: 0x0+0+0 (DisplayPort-0) -- output disabled
xscreensaver-gfx: 19:58:42: 1/0: 0x0+0+0 (DisplayPort-1) -- enclosed by 3 (1920x1080+0+0)
xscreensaver-gfx: 19:58:42: 2/0: 0x0+0+0 (DisplayPort-2) -- output disabled
xscreensaver-gfx: 19:58:42: 0: GL visual is 0x21 (default)
xscreensaver-gfx: 19:58:42: 0: forked "fuzzyflakes --root --speed 7 --layers 4 --thickness 13 --bthickness 5" in pid
15677 on window 0x8800064

KDE Plasma 6.3.6

Kernel 6.12.57

X11 v. number: 11.0

xorg version: 21.1.16

Radeon RX 5500 / amdgpu driver latest from source (23? something)

I just want a whimsical screensaver to make me smile, and my computer to hibernate and not change my display layout. Any thoughts?