You are not logged in.
Hello!
I've ran into some weird issues while swapping from i3 to wayland/sway:
My terminal of choice is termite and from what I gather it should work natively with wayland, but for some reason it didn't start until I installed the xorg-server-xwayland package and that makes me think that it runs on X.
The second issue I faced is that termite has these borders and titlebar which don't show up when using i3. I even swapped to the termite-nocsd package from the AUR which disables client side decorations but that doesn't seem to change anything for me. Firefox and discord don't have these borders (perhaps because they run on xwayland?) at all.
I hope you guys can help me out with this.
Last edited by occasionally_smart (2019-08-26 15:48:23)
Offline
Those blue (or gray/black if not in focus) borders are the sway decorations (assuming you meant those ones). These are server-side decorations and not client-side ones. If you want to disable them you'd set "border none" in your configuration.
Now for the termite+Wayland thing, it should indeed support Wayland natively. If you have no custom configuration or variables set that override things to force X11 (be it globally or specific for termite), afaik, there should be no reason why it wouldn't run natively on Wayland.
I believe in Sway, every application/window that is running natively in Wayland has the field 'app_id' filled in under `swaymsg -t get_tree`. If it does not (value == null) it should be an Xwayland window. Additionally I believe the Xwayland applications have the 'window_properties' object set, which in turn is null for native Wayland applications.
So in theory, `swaymsg -t get_tree | jq '.. | .window_properties? | select(type != "null")'` should only return the Xwayland windows and `swaymsg -t get_tree | jq '.. | .app_id? | select(type != "null")'` should only return the native Wayland windows.
Last edited by Omar007 (2019-08-26 14:53:26)
Offline
Those blue (or gray/black if not in focus) borders are the sway decorations (assuming you meant those ones). These are server-side decorations and not client-side ones. If you want to disable them you'd set "border none" in your configuration.
That did indeed get rid of the borders - thanks! I thought sway and i3 work pretty much the same but I guess there are different defaults for them? Since the bars didn't show up with the same config while using i3.
Now for the termite+Wayland thing, it should indeed support Wayland natively. If you have no custom configuration or variables set that override things to force X11 (be it globally or specific for termite), afaik, there should be no reason why it wouldn't run natively on Wayland.
I believe in Sway, every application/window that is running natively in Wayland has the field 'app_id' filled in under `swaymsg -t get_tree`. If it does not (value == null) it should be an Xwayland window. Additionally I believe the Xwayland applications have the 'window_properties' object set, which in turn is null for native Wayland applications.
So in theory, `swaymsg -t get_tree | jq '.. | .window_properties? | select(type != "null")'` should only return the Xwayland windows and `swaymsg -t get_tree | jq '.. | .app_id? | select(type != "null")'` should only return the native Wayland windows.
Weird.. the second command does indeed return termite and also firefox (which I started with GDK_BACKEND="wayland") - so termite should be running natively on wayland. I just tried to remove xorg-server-xwayland again but it still doesn't start termite without it.
I just found this however, so I'm guessing it's a known bug? Thanks for your help!
Offline
If you want to completely get rid of Xwayland, update your Sway config to explicitly disable it. Should be "xwayland disable". Otherwise Sway will still prepare Xwayland related items such as environment variables.
Otherwise, try to unset the 'DISPLAY' environment variable when you run termite and see if that helps.
Last edited by Omar007 (2019-08-26 15:36:06)
Offline
If you want to completely get rid of Xwayland, update your Sway config to explicitly disable it. Should be "xwayland disable". Otherwise Sway will still prepare Xwayland related items such as environment variables.
Otherwise, try to unset the 'DISPLAY' environment variable when you run termite and see if that helps.
I'm fine with using xwayland - I was just curious and confused as to why it didnt work. Knowing that my terminal runs natively on wayland is good enough for me.
If I do however disable xwayland in the sway config and remove the xorg-server-xwayland package it works as intended.
Thanks for your help - I'll go ahead and mark this as solved.
Offline