Menu
Menu copied to clipboard
[Wayland] Global menu is broken
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
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?
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.