At Fosdem 2026 we had some discussions if it would be feasible to add the currently missing Wayland xdg_shell extension to sailfishos lipstick compositor as an “lipstick extension”.. I thought of starting to explore that this weekend, and then I figured it has already been done!
xdg_shell Wayland extension is needed by most of the modern wayland apps, and also by recent app frameworks and toolkits (Qt6, GTK, etc), so it’s really important to get that extension implemented and merged in to stock sailfishos lipstick compositor.
I just wanted to open a forum thread about this important development, to bring some attention to this important feature.
xdg_shell support is also needed to be able to run Qt6 apps directly without the separate qt-runner wrapper (not sure if some other extensions are needed aswell to run qt6 apps natively, but at least the xdg_shell is a major blocker).
Note that this method of adding xdg_shell extension as “lipstick extension” is much easier (for Jolla) compared to doing the full sailfishos Qt6 upgrade (which would also bring newer QtWayland with xdg_shell support to lipstick, but would be a much bigger task, not to mention to GPLv3/LGPLv3 issue).
Now let the reviews start and let’s get the xdg_shell extension support merged in to lipstick!
Feel free to comment on the PR if you see something that can be improved. If you are referring to the missing subsurface support, I think it would be better to have that reviewed separately, it’s not really part of xdg-shell.
I’d like to ask (dumbly, I’m sure) what this does?
I noticed that lipstick and most of SFOS’ environment does not recognize common XDG directories under /home/defaultuser. Does that have something to do with it?
I don’t think that’s related. What you’re referring to sounds like xdg-user-dirs.
xdg-user-dirs is a tool to help manage “well known” user directories like the desktop folder and the music folder. It also handles localization (i.e. translation) of the filenames.
On the other hand, xdg_shell is a Wayland protocol extension designed to replace the core wl_shell interface, which Lipstick already implements.
The XDG (cross-desktop group) shell is a standard protocol extension for Wayland which describes the semantics for application windows.
Many modern applications depend on xdg_shell to communicate with the compositor. Its absence has been one of the factors limiting the portability of applications from other desktop environments to Sailfish OS. Since n2klb also appears to be working on packaging Firefox for Sailfish OS, this was likely a requirement.