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.
And video to show how it looks in action as well: LIM
To try it you should enable menu here:
and add application menu button so application will know they should export their menus over DBus
Any suggestions are welcome!