The only way to run wayland apps in qubes is to use weston in a nested mode, like the example @todox gave, it is also how the community waydroid template works. Or run a full desktop in the qube that uses wayland instead of x11.
The qubes gui agent does not currently support wayland, and any apps in qubes that use the gui agent are x11.
There is limited support for running kde plasma’s wayland session in dom0, but that only gets you wayland in dom0, the apps running in each qube are still x11, and use the xwayland layer to be displayed in dom0.
You don’t need to modify dom0, its just show rendered picture from X server, just test apps above in your personal qube or smth like that. You need to install a nested Wayland server in personal qube, not in dom0.
It’s now clear (to me as well;-) that any additional work I’ll put into building a ‘litterbox’ container will affect only the personalized template - and - no changes to ‘dom0’ are needed.
I am still spending some time & work on this topic - but - make only slow progress …
I am not following up on the ‘litterbox’ container vs. host scenario for the moment, but focus on a proper configuration of the ‘Wayland’ desktop provided by Weston.
I’m using a personalized ‘weston.ini’ file, where the only ‘launcher’ entry is Firefox.
This setup does work - but - the weston log file displays …
[14:36:44.356] launching '/usr/libexec/weston-desktop-shell'
could not load cursor 'dnd-copy'
could not load cursor 'dnd-none'
could not load cursor 'dnd-copy'
could not load cursor 'dnd-none'
upon startup - and - …
[GFX1-]: glxtest: libpci missing
when I start FF from the desktop icon - and - finally …
[GFX1-]: Wayland protocol error: Compositor (x-qubes) crashed, proxy: WP:E WP:CA WP:CR WP:CPCA WP:CPCF
ExceptionHandler::GenerateDump attempting to generate:/home/user/.mozilla/firefox/hdzqg38j.default-esr/minidumps/7a0e4d59-13fe-ca0e-38ee-451e8aab082d.dmp
ExceptionHandler::GenerateDump cloned child 1726
ExceptionHandler::SendContinueSignalToChild sent continue signal to child
ExceptionHandler::WaitForContinueSignal waiting for continue signal...
ExceptionHandler::GenerateDump minidump generation succeeded
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
From a quick search in the Internet it looks like it could be the ‘Gtk’ related.
All I can add from my side is that this template is based on ‘debian-13-minimal’ with additions for Podman, Qt6, etc. - but - no GNOME or Gtk-specific additions.
No, so far I have concentrated only on weston - and - trying to better understand, what a nested wayland compositor for X server really is & how to operate / use it.
I will read now also a bit about the gamescope project & provide an update - or - ask more questions
I have restarted my activities on this topic again - and - did some reading before jumping into the next set of experiments.
I was reading about the different types of 'WL Compositors’ in the ‘Wayland Book’ [1].
Is my understanding correct, that in the context of Qubes OS any solution must currently act as / be implemented as an ‘Embedding Compositor’ [2] ?
Since ‘Dom0 / GUI VM’ currently do not support Wayland - and - I’m using the Xfce desktop default neither a ‘System’ nor a ‘Session Compositor’ can be offered.
I did more tests using personalized templates cloned from ‘debian-13’ & ‘fedora-43’ using Weston.
I can start a terminal from the Weston Desktop Shell - and - even Litterbox would operate - but - as I reported already earlier, copy & paste is not working b/w a Wayland-based & a X11-based terminal.
I learned quite a bit - BUT - for me this a NO-GO situation - AND - I’ll stop my tests !