<div>Hello,<br></div><div><br></div><div>I am interested in providing support for custom window decorations for GTK applications with Client Sided Decorations. Currently I have an idea in mind, that may or may not work depending on multiple circumstances. One of the things I need to implement that idea is to tell KWin to draw window decorations with different states (hover, clicked, normal) to images (.png and .svg). If I understand correctly, to do that I need to call <a rel="nofollow" title="https://api.kde.org/kdecoration/html/classKDecoration2_1_1DecorationButton.html#ab57e4b79de9bf233a8cd5b7812c19c75" target="_blank" href="https://api.kde.org/kdecoration/html/classKDecoration2_1_1DecorationButton.html#ab57e4b79de9bf233a8cd5b7812c19c75">paint</a> method from KDecoration library with a custom QPainter. However, to call it, I need to create a KDecoration2::DecorationButton instance first. Unfortunately, I do not fully understand how to do so from an arbitrary place. <br></div><div><br></div><div>As I could see Window Decorations KCM and <a rel="nofollow" title="https://github.com/psifidotos/applet-window-buttons" target="_blank" href="https://github.com/psifidotos/applet-window-buttons">Latte Dock Buttons applet</a> uses some kind of complicated bridge to draw decorations in QML. I am not really sure if I need exactly that to just draw decorations to images, so I tried to build a custom minimal solution here:<br></div><div><a href="https://phabricator.kde.org/D28623">https://phabricator.kde.org/D28623</a><br></div><div class="protonmail_signature_block"><div class="protonmail_signature_block-user"><div>Unfortunately it does not work and the program just crashes with seg fault.<br></div><div><br></div><div>So, I want to ask the experts for help with that part: how can I correctly ask KWin to draw decorations buttons to images?<br></div><div><br></div><div>Best regards,<br></div><div>Mikhail Zolotukhin<br></div></div><div class="protonmail_signature_block-proton protonmail_signature_block-empty"><br></div></div><div><br></div>