[Development] Qt, COSMIC and Server Side Decorations

Igor Khanin igor at khanin.biz
Sat Oct 4 00:11:05 CEST 2025


Hi All,

I've been playing a bit with the newly released first beta of the COSMIC 
desktop environment - very exciting for the future of desktop Linux!

One thing that immediately popped up is that Qt (and KDE) applications 
have client-side decorations, despite both Qt and COSMIC's compositor 
supporting server-side ones. And quite poorly at that - both the 
bradient and Adwaita decorations suffer from dialog clipping.

Essentially it boils down to Qt's Wayland xdg-shell plugin signaling 
that it doesn't care what kind of decorations it got, through invoking 
zxdg_toplevel_decoration_v1::unset_mode. According to an upstream issue 
on the topic [1] there is a difference between COSMIC and KWin on what 
to do when the application doesn't care - COSMIC prefers to let it 
decorate itself. This behavior on Qt side is old (commit c2f156e, which 
originally introduced Wayland SSD support), and seems a little strange 
to me: wasn't the motivation (and user/developer expectation) is the 
CSDs for Qt apps are a fallback and apps expect to be decorated by the 
WM/compositor?

Basically what I am asking is if anyone is aware of any downside to 
changing the xdg-shell plugin to stating in the negotiation that it 
prefers server side decorations (for non-frameless top-level windows of 
course) by invoking zxdg_toplevel_decoration_v1::set_mode instead of 
unset_mode.

Thanks!
Igor

[1] https://github.com/pop-os/cosmic-epoch/issues/542




More information about the Development mailing list