Recently I had installed CachyOS with KDE, along with Incus to manage the lxc container.
overall, I had a decent time following some of the guides to get GUI based applications to run and even a completely separate KDE plasma DE. however, I didn’t want the separate KDE plasma DE window that I would have to tab to for controlling the GUI apps. So I was able to just run just the plasmashell, which seems to be the app launcher/task manager bar.
sudo incus exec kde-container -- sudo -u user bash -c 'source /home/user/.profile && dbus-run-session plasmashell'
this gets me a working bar and moved it to the top right of the screen. works fine and all the host apps and container apps respect both bars by not covering them at all. I have Wayland and Xwayland working. so everything is working great? not really…
Now there an issue. its fine If I run the full KDE plasma DE, which opens a window that holds the entire container’s GUI instead of just displaying on the Host’s DE, all the apps work fine. However, as I mentioned, I do not like that. Where the issue comes in is when I am running a specific GUI Xwayland app from inside the container through the Host’s DE.(tbh, I only have the one app that is using Xwayland rn)
This Xwayland app is QT5 based running under xcb. If I try to run this specific app with the native wayland QT implementation, then there is an annoying bug with the menus popping out as separate windows… this is besides the point but I feel like I should mention that this app doesnt play nice with wayland and forces me to run it under X.
Now everything seems to work fine with X, however this specific app causes the host’s screen/DE to freeze. running journalctl
, I notice one outstanding message when I reproduce the screen freeze from using the app.
kwin_wayland[1090]: kwin_wayland_drm: The main thread was hanging temporarily!
well, that is the only clue I have to this problem. of course everything I am doing is basically running deep into “Here be dragons” territory. I unfortunately don’t know enough about kwin wayland’s drm to ascertain how to prevent hangups.
before you claim it is because I am running plasmashell or DBus separately. simply doing
sudo incus exec kde-container -- sudo -u user bash -c 'source /home/user/.profile && QT_QPA_PLATFORM=xcb /path/to/GUI_app'
this will launch it without plasmashell or the temp DBus. so it is something off with the kwin wayland drm hanging temporarily error.
All the guides have mostly been about running the GUI apps in their own DE/display and use ubuntu/debian with gnome/mutter.
If anyone knows how kwin wayland drm works or if I need to better integrate that with the container so that it works better, that would be nice.
at the moment, my only option is to run the app on the host, which I don’t really like because I am using the container to keep these specific apps I use separate from the main host install. you know to keep the main host files less cluttered as possible by isolating them in containers.
wayland so far is working dandy, and was by far the easiest to get up and running, discounting the fact that this specific QT5 app has poor wayland support.