Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Global menu functionality



  • Hi there.
    I want to know how does global menu functionality work in desktops like KDE and Unity in linux?
    I mean how does the desktop environment prevent the toolbar from being rendered in the window area in order to draw it somewhere else?
    Is there any special technique?
    Does the global menu widget need special protocols to communicate with the application and to retrieve its menus?
    Thanks.
    Best regards.



  • @Parsa-Mousavi

    Can you explain what you mean by "global menu"? Are you talking about QMenu or QMenuBar?



  • @Pl45m4

    Yes.
    Screenshot


  • Lifetime Qt Champion

    Hi,

    AFAIK, KDE currently does not have a global menu as macOS does.

    As for unity, it has been abandoned by Canonical.

    The desktop environment does not prevent anything to be drawn, the related window manager is responsible of the drawing.

    Beside that, yes there are low level protocols. You might want to check for example Wayland and the QtWayland module.



  • As a continuation of our previous article about making Gnome Shell more like Unity by using the Unite extension, this article includes instructions for adding a global menu and a searchable menu HUD in Gnome Shell, by using the Gnome Global AppMenu extension myprepaidcenter



  • @SGaist
    It's not enabled by default but it's available as a widget that you can place on the panel.
    Please tell me if I'm wrong here:
    Each application is given an area in the framebuffer to do its drawings and WM place additional window borders , shadows , effects and some handles to control windows.
    But I wonder how can WM separate toolbars from the window ? Are toolbars placed on some queue or special buffer which is visible to WM and DE(to use with the global menu widget)?