Menu icon indicating copy to clipboard operation
Menu copied to clipboard

[Wayland] Global menu is broken

Open probonopd opened this issue 1 year ago • 2 comments

Raspberry Pi OS, when running in Wayland (as it is the default), breaks the global menu functionality.

export QT_QPA_PLATFORMTHEME=panda
featherpad

When I start featherpad, I do see com.canonical.dbusmenu activity.

But the application menus are not shown in Menu.

Someone knowledgable in Wayland would need to look at this.

Some possibly relevant details:

$ env | grep way
WLR_XWAYLAND=/usr/bin/xwayland-xauth
DESKTOP_SESSION=LXDE-pi-wayfire
XDG_SESSION_DESKTOP=LXDE-pi-wayfire
XDG_SESSION_TYPE=wayland
WAYLAND_DISPLAY=wayland-1
GDMSESSION=LXDE-pi-wayfire
WAYFIRE_CONFIG_FILE=/home/user/.config/wayfire.ini

probonopd avatar Nov 17 '23 12:11 probonopd

KDE seems to be using a non-standard KDE-proprietary Wayland protocol for this?

https://github.com/KDE/plasma-wayland-protocols/blob/master/src/protocols/appmenu.xml

What is the Wayland standard for this, so that it works not only in KDE Plasma/KWin?

probonopd avatar Nov 17 '23 14:11 probonopd

Reading https://blog.broulik.de/2016/10/global-menus-returning/ it seems we'd need to use the (Qt proprietary?) Extended Surface Wayland protocol which allows you to set (and read?) arbitrary properties on a window. We'd likely need to use this (instead of X11 atoms) to get the values of the (KDE proprietary) _KDE_NET_WM_APPMENU_OBJECT_PATH and _KDE_NET_WM_APPMENU_SERVICE_NAME.

Quite we'd also need to change QtPlugin to use the (Qt proprietary?) Extended Surface Wayland protocol.

But there isn't a Wayland documentation that precisely tells you what you need to do to get global menus working.

While it's nice that KDE has found some way to make global menus work for them under Wayland, it seems very hackish and proprietary, meaning it won't work for everyone in all desktop environments.

probonopd avatar Nov 17 '23 14:11 probonopd