The patch is now merged upstream (yay), though it’ll be some time before RPMs with this change are released to stable. The color is configurable through a new gui-default-window-background-color feature [0]:
# Substitute your actual guivm if not dom0
[user@dom0 ~]$ qvm-features dom0 gui-default-window-background-color 'dark blue'
Then start or restart relevant app qubes to have the new color applied. [1] Color options are English color names from /etc/X11/rgb.txt or hex format RGB: '0xRRGGBB'.
I’m pretty pleased with this. There is still an occasional white flash when first starting up programs with complex rendering like Firefox or KeePassXC, and some minor rectangular white tearing when rapidly resizing windows for programs like these, but I believe it’s an application-level rendering issue, not a Qubes issue. And it’s rare and predictable.
[0] Also the feature gui-window-background-color to change the color on a per-VM basis, but I don’t see an obvious use case for this.
[1] What’s actually needed is to restart the qubes-guid process for the VM. Restarting the whole VM is the simplest and safest way.