Skip to content

Draft: kdecoration: Locally Integrated Menus support

Artem Grinev requested to merge agrinev/breeze:lim into master

This MR is supposed to add Locally Integrated Menu (LIM) concept into Breeze decoration.

My work is based on Material Decoration LIM implementation and shares almost all of logic with it. Visual part for Breeze is coded by me.

  • For now it still lacks overflow button to be shown when width of menu is more than titlebar width but other than that it’s pretty usable and I’m already using it for around a month.
  • Titlebar label and menu overlapping causes the menu to hide and being available only on hover similar to Unity behavior.

The same as Material Decoration it requires dbusmenu implementation that Plasma has but I haven’t found any way to link to so it’s bundled for now and this should be revisited.

I’m not sure if this implementation way is good enough as it will enable this menu only for Breeze and maybe it’s worth it to port logic code into KWin itself so any themes could use it.

Also this implementation has very dirty draft of menu rolling (hold menu item and select submenu action) support but it’s worth it to discuss it from usability side.

Some screenshots: image 2021-08-23_14-51 image image

And video to show how it looks in action as well: LIM

To try it you should enable menu here:

image

and add application menu button so application will know they should export their menus over DBus

image

Any suggestions are welcome!

BUG: 466816

Edited by Nate Graham

Merge request reports