Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Wayland] Global menu is broken #178

Open
probonopd opened this issue Nov 17, 2023 · 2 comments
Open

[Wayland] Global menu is broken #178

probonopd opened this issue Nov 17, 2023 · 2 comments
Labels
wayland Wayland breaks working software by mandating new concepts, leaving it to others to fix the breakage

Comments

@probonopd
Copy link
Member

probonopd commented Nov 17, 2023

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 probonopd added the wayland Wayland breaks working software by mandating new concepts, leaving it to others to fix the breakage label Nov 17, 2023
@probonopd probonopd changed the title [Wayland] Global menu broken [Wayland] Global menu is broken Nov 17, 2023
@probonopd
Copy link
Member Author

probonopd commented Nov 17, 2023

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
Copy link
Member Author

probonopd commented Nov 17, 2023

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
wayland Wayland breaks working software by mandating new concepts, leaving it to others to fix the breakage
Projects
None yet
Development

No branches or pull requests

1 participant