I have a 3D printing software that does not display well on Wayland. Instead of relogging to start a x11 session is there a way to force that one software to display in x11 instead of Wayland?
Edit
AddingQT_QPA_PLATFORM=xcb
to the enviroment variables was the solution for me.
Thanks to everyone for the help.
if its a qt application then run in a console “QT_QPA_PLATFORM=xcb program_name”, if it’s a gtk application i think it’s “GDK_BACKEND=x11” though I’m not entirely sure.
I have to do this with LMMS as on sway click and drag doesn’t work for some odd reason
Additionally once you figure out the environment variable you can add in to the .desktop file so it will launch from a launcher in that way, though updates will reset that.
On arch wiki is a page on wayland which includes info on toolkits, though you may need to figure out the x11 option it will include the variable/option needed. https://wiki.archlinux.org/title/wayland#GUI_libraries
though updates will reset that.
Copy the .desktop file from root (/usr/share/applications) to the local directory (~/.local/share/applications), then your package manger won’t overwrite your changes
https://wiki.archlinux.org/title/desktop_entries
See section 6.1, Modify desktop files
depends on the application. check here for a list how make different backends use xwayland: https://wiki.archlinux.org/title/Wayland#GUI_libraries
Have you tried using Gamescope? It’s obviously made with games in mind, but you can use it to run any application inside a nested compositor.
If not, you could try starting the application in Xwayland, or starting an X session inside Xwayland and then starting the application inside that.
Easiest is flatpak, where you just disable Wayland permission.
The env vars are always different
I’m in a similar situation. My time tracking software for work refuses to work on Wayland (I tried using xwayland as well).