Skip to content

Conversation

@ilsubyeega
Copy link

@ilsubyeega ilsubyeega commented Nov 14, 2025

  • Implement smithay and handler.
  • Refactor smithay implementation; i believe this is not ideal implementation and could be more cleaner. (hope yalter can fix this)
  • Figure out where to save the state of client
  • FIXME: make this protocol OPT-IN since most of client will hide the menu when this protocol exists in the session

Notes:

  • used just raw xml protocol specifications but wayland-protocol-plasma exists by smithay, but not reexported
  • compositor only need to save the 2 data(service_name and object_path) and then export somewhere, maybe realtime, if i understood correctly.
  • for dbusmenu implementation just wip stuffs are here: https://github.com/ilsubyeega/appmenu

The appmenu works with (ignoring xwayland support):

  • wayland compositor with appmenu protocol support
  • client that supports kde appmenu wayland protocol; when they do, they register new d-bus bus which contains /MenuBar/..., and then sends org_kde_kwin_appmenu#send_address(service_name, object_path) to compositor
  • the application(shell) to listen the active/focused window and its service_name/object_path. probably niri ipc could do that
image

DO NOT MERGE YET: todo!() will panic your environment

Copy link
Contributor

@HigherOrderLogic HigherOrderLogic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I dont think Yalter is going to accept this PR but anyway...

@Sempyos
Copy link
Contributor

Sempyos commented Nov 15, 2025

Can you explain why we need to implement this protocol..?

@ilsubyeega
Copy link
Author

Can you explain why we need to implement this protocol..?

@Sempyos In wayland area, there is no other way to support this feature at this time. See this 6-year old issue: Alexays/Waybar#288

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants