<div dir="ltr">Thanks Vlad, I'll give them a go.<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Oct 21, 2024 at 10:19 AM Vlad Zahorodnii <<a href="mailto:vlad.zahorodnii@kde.org">vlad.zahorodnii@kde.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
On 10/18/24 11:03 PM, Viet Dang wrote:<br>
> Hi,<br>
><br>
> I'm working on some improvements of my third-party dock (written in <br>
> C++ here: <a href="https://github.com/dangvd/crystal-dock" rel="noreferrer" target="_blank">https://github.com/dangvd/crystal-dock</a>) and have some <br>
> questions about AutoHide (Screen Edge) and Global Shortcuts support in <br>
> KWin:<br>
> - AutoHide: I'd like to get my dock to have an AutoHide behaviour like <br>
> that of a Plasma panel. Is Screen Edge protocol <br>
> (<a href="https://wayland.app/protocols/kde-screen-edge-v1" rel="noreferrer" target="_blank">https://wayland.app/protocols/kde-screen-edge-v1</a>) the right one to <br>
> use? And if it is, what's the best way to get wl_surface object from <br>
> my main widget? (I already use layer-shell-qt for my main widget)<br>
<br>
You could use the QNativeInterface API to access the wl_surface object. <br>
See <br>
<a href="https://invent.kde.org/plasma/kwin/-/blob/3740a1b52adc1e5dcaa13320e28bf988e9fb5aec/src/helpers/killer/killer.cpp#L298" rel="noreferrer" target="_blank">https://invent.kde.org/plasma/kwin/-/blob/3740a1b52adc1e5dcaa13320e28bf988e9fb5aec/src/helpers/killer/killer.cpp#L298</a> <br>
for an example how to do it.<br>
<br>
> - Global Shortcuts: how do I support global shortcuts for my dock <br>
> (e.g. Meta-1 to activate launcher 1 and so on). Is xdg-desktop-portal <br>
> (<a href="https://github.com/flatpak/xdg-desktop-portal/blob/main/data/org.freedesktop.portal.GlobalShortcuts.xml" rel="noreferrer" target="_blank">https://github.com/flatpak/xdg-desktop-portal/blob/main/data/org.freedesktop.portal.GlobalShortcuts.xml</a>) <br>
> the right one to use?<br>
<br>
That, or if you know that the dock will run mostly in Plasma, you could <br>
use KGlobalAccel to save yourself some time.<br>
<br>
Regards,<br>
Vlad<br>
<br>
</blockquote></div>