Third-party dock (C++): how to support AutoHide (Screen Edge) and Global Shortcuts ?
Vlad Zahorodnii
vlad.zahorodnii at kde.org
Mon Oct 21 10:19:36 BST 2024
Hi,
On 10/18/24 11:03 PM, Viet Dang wrote:
> Hi,
>
> I'm working on some improvements of my third-party dock (written in
> C++ here: https://github.com/dangvd/crystal-dock) and have some
> questions about AutoHide (Screen Edge) and Global Shortcuts support in
> KWin:
> - AutoHide: I'd like to get my dock to have an AutoHide behaviour like
> that of a Plasma panel. Is Screen Edge protocol
> (https://wayland.app/protocols/kde-screen-edge-v1) the right one to
> use? And if it is, what's the best way to get wl_surface object from
> my main widget? (I already use layer-shell-qt for my main widget)
You could use the QNativeInterface API to access the wl_surface object.
See
https://invent.kde.org/plasma/kwin/-/blob/3740a1b52adc1e5dcaa13320e28bf988e9fb5aec/src/helpers/killer/killer.cpp#L298
for an example how to do it.
> - Global Shortcuts: how do I support global shortcuts for my dock
> (e.g. Meta-1 to activate launcher 1 and so on). Is xdg-desktop-portal
> (https://github.com/flatpak/xdg-desktop-portal/blob/main/data/org.freedesktop.portal.GlobalShortcuts.xml)
> the right one to use?
That, or if you know that the dock will run mostly in Plasma, you could
use KGlobalAccel to save yourself some time.
Regards,
Vlad
More information about the kwin
mailing list