edit: see follow-up, hopefully none of this is relevent when i actually do as suggested >u<
Thank you! Filled with determination, I had another crack at it. Should probably link GUI virtualization | Qubes OS, for lurkers.
I stripped back my modifications to the XDG autostart units, ignoring qvm-start-daemon’s --kde flag for now and disabling Xwayland-related units so I can start them manualy (in both XDG-Autostart and the global-user service /usr/lib/systemd/user/xwayland-satellite.service), making sure to keep a Polkit daemon. I think narrowed my issue down to XAUTHORITY, which was not being set by SDDM. I switched back to LightDM, but that doesn’t setup Xauthority unless you’re starting an X11 session? Not my area of expertise, but I think we can fake something permissive…
$ export XAUTHORITY="$HOME/.Xauthority"
$ xauth add :0 . $(xxd -l 16 -p /dev/urandom)
$ systemctl stop --user app-qvm\\x2dstart\\x2ddaemon@autostart
# Nothing changes with `--kde` or if ran as root, which I did try bc of `root:qubes` perms on prior log files
$ /usr/bin/qvm-start-daemon --all --watch &
$ LD_PRELOAD=/usr/lib64/quibes-gui-daemon/shmoverride.so xwayland-satellite &
$ qvm-shutdown untrusted || true
$ qvm-run untrusted glxgears # ret 1
$ tail /var/log/qubes/guid.untrusted.log
Invalid MIT-MAGIC-COOKIE-1 key
# uhhh...
$ xhost +
access control disabled, clients can connect from any host
$ qvm-run untrusted glxgears
We get a window!! It’s blank white, but, goals! VSync’s correctly, too.
guid.untrusted.log
$ tail /var/log/qubes/guid.untrusted.log
Cannot obtain current desktop
Icon size: 128x128
Falling back to setting _NET_WM_USER_TIME on the root window
WARNING: Running setxkbmap against an Xwayland server
Created 0x1c00187(0x200003) ovr=0 x/y 0/0 w/h 100/100
XDestroyWindow 0x1c00187
cannot lookup 0x1c00187 in wid2windowdata
# [...]
set WM_NORMAL_HINTS for window 0x1c0018a to min=0/0, max=0/0, base=0/0, inc=0/0 (flags 0x0)
set title for window 0x1c0018a
set class hint for window 0x1c0018a to (untrusted:Xfsettingsd, untrusted:xfsettingsd)
Created 0x1c0018b(0x200002) ovr=0 x/y -1/-1 w/h 1/1
Created 0x1c0018c(0x200003) ovr=0 x/y 0/0 w/h 10/10
Created 0x1c0018d(0xa00002) ovr=0 x/y 0/0 w/h 300/300
set WM_NORMAL_HINTS for window 0x1c0018d to min=0/0, max=0/0, base=0/0, inc=0/0 (flags 0x1)
set title for window 0x1c0018d
set title for window 0x1c0018d
do_shm_update for 0x1c0018d(remote 0xa00002), after border calc: x=0, y=0, w=300, h=300
MSG_WINDOW_DUMP for 0x1c0018d(0xa00002): 300x300, type = 0
xcb_shm_attach_fd failed for window 0x1c0018d(remote 0xa00002)
ErrorHandler: BadMatch (invalid parameter attributes)
Major opcode: 130 ()
Minor opcode: 6
ResourceID: 0x11c
Failed serial number: 986
Current serial number: 984
shmimage for 0x1c0018d(remote 0xa00002), x: 0, y: 0, w: 300, h: 300
do_shm_update for 0x1c0018d(remote 0xa00002), after border calc: x=0, y=0, w=300, h=300
shmimage for 0x1c0018d(remote 0xa00002), x: 0, y: 0, w: 300, h: 300
do_shm_update for 0x1c0018d(remote 0xa00002), after border calc: x=0, y=0, w=300, h=300
process_xevent_configure(synth 0) local 0x1c0018d remote 0xa00002, 1256/1348, was 300/300, xy 0/0 was 0/0
do_shm_update for 0x1c0018d(remote 0xa00002), after border calc: x=0, y=0, w=1256, h=1348
handle_configure_from_vm, local 0x1c0018d remote 0xa00002, 1256/1348, was 1256/1348, ovr=0 (ignored), xy 0/0, was 0/0
MSG_WINDOW_DUMP for 0x1c0018d(0xa00002): 1256x1348, type = 0
xcb_shm_attach_fd failed for window 0x1c0018d(remote 0xa00002)
ErrorHandler: BadMatch (invalid parameter attributes)
Major opcode: 130 ()
Minor opcode: 6
ResourceID: 0x11c
Failed serial number: 988
Current serial number: 987
shmimage for 0x1c0018d(remote 0xa00002), x: 300, y: 0, w: 956, h: 300
do_shm_update for 0x1c0018d(remote 0xa00002), after border calc: x=300, y=0, w=956, h=300
shmimage for 0x1c0018d(remote 0xa00002), x: 0, y: 300, w: 1256, h: 1048
do_shm_update for 0x1c0018d(remote 0xa00002), after border calc: x=0, y=300, w=1256, h=1048
shmimage for 0x1c0018d(remote 0xa00002), x: 0, y: 0, w: 1256, h: 1348
do_shm_update for 0x1c0018d(remote 0xa00002), after border calc: x=0, y=0, w=1256, h=1348
# [...]
xcb_shm_attach_fd failed for window 0x1c0018d(remote 0xa00002)
I’ve triple-checked that the running Xwayland-satellite has the LD_PRELOAD (via /proc/[...]/environ/output), but FWIW I didn’t see any log activity in Xwayland-satellite when I ran a foreground instance – qubesd logs look positive: I wouldn’t necessarily know if anything was missing but looks like it’s actively going down the happy-path, and the SHM errors probably indicate the remaining issue.
I do not have enough of an X11 background to make heads or tails of the xauth situation, but think I’ve learned enough that another long look at a running Plasma instance might be fruit-full, if only to get to this point at startup. Thank you for your insights!