Provided by: waybar_0.12.0-1_amd64 bug

NAME

       waybar - menu property

OVERVIEW

       Some  modules  support  a 'menu', which allows to have a popup menu whan a defined click is done over the
       module.

PROPERTIES

       A module that implements a 'menu' needs 3 properties defined in its config :

       menu:
            typeof: string
            Action that popups the menu. The possibles actions are :

       ┌───────────────────────────┬───────────────────────────────────────────────────────────────────────────┐
       │          OptionDescription                                │
       ├───────────────────────────┼───────────────────────────────────────────────────────────────────────────┤
       │ on-click                  │ When you left-click on the module                                         │
       ├───────────────────────────┼───────────────────────────────────────────────────────────────────────────┤
       │ on-click-release          │ When you release left button on the module                                │
       ├───────────────────────────┼───────────────────────────────────────────────────────────────────────────┤
       │ on-double-click           │ When you double left click on the module                                  │
       ├───────────────────────────┼───────────────────────────────────────────────────────────────────────────┤
       │ on-triple-click           │ When you triple left click on the module                                  │
       ├───────────────────────────┼───────────────────────────────────────────────────────────────────────────┤
       │ on-click-middle           │ When you middle click on the module using mousewheel                      │
       ├───────────────────────────┼───────────────────────────────────────────────────────────────────────────┤
       │ on-click-middle-release   │ When you release mousewheel button on the module                          │
       ├───────────────────────────┼───────────────────────────────────────────────────────────────────────────┤
       │ on-double-click-middle    │ When you double middle click on the module                                │
       ├───────────────────────────┼───────────────────────────────────────────────────────────────────────────┤
       │ on-triple-click-middle    │ When you triple middle click on the module                                │
       ├───────────────────────────┼───────────────────────────────────────────────────────────────────────────┤
       │ on-click-right            │ When you right click on the module using                                  │
       ├───────────────────────────┼───────────────────────────────────────────────────────────────────────────┤
       │ on-click-right-release    │ When you release right button on the module                               │
       ├───────────────────────────┼───────────────────────────────────────────────────────────────────────────┤
       │ on-double-click-right     │ When you double right click on the module                                 │
       ├───────────────────────────┼───────────────────────────────────────────────────────────────────────────┤
       │ on-triple-click-right     │ When you triple middle click on the module                                │
       ├───────────────────────────┼───────────────────────────────────────────────────────────────────────────┤
       │ on-click-backward         │ When you  click on the module using mouse backward button                 │
       ├───────────────────────────┼───────────────────────────────────────────────────────────────────────────┤
       │ on-click-backward-release │ When you release mouse backward button on the module                      │
       ├───────────────────────────┼───────────────────────────────────────────────────────────────────────────┤
       │ on-double-click-backward  │ When you double click on the module using mouse backward button           │
       ├───────────────────────────┼───────────────────────────────────────────────────────────────────────────┤
       │ on-triple-click-backward  │ When you triple click on the module using mouse backawrd button           │
       ├───────────────────────────┼───────────────────────────────────────────────────────────────────────────┤
       │ on-click-forward          │ When you  click on the module using mouse forward button                  │
       ├───────────────────────────┼───────────────────────────────────────────────────────────────────────────┤
       │ on-click-forward-release  │ When you release mouse forward button on the module                       │
       ├───────────────────────────┼───────────────────────────────────────────────────────────────────────────┤
       │ on-double-click-forward   │ When you double click on the module using mouse forward button            │
       ├───────────────────────────┼───────────────────────────────────────────────────────────────────────────┤
       │ on-triple-click-forward   │ When you triple click on the module using mouse forward button            │
       └───────────────────────────┴───────────────────────────────────────────────────────────────────────────┘

       menu-file:
            typeof: string
            Location of the menu descriptor file. There need to be an element of type
           GtkMenu with id menu.

       menu-actions:
            typeof: array
            The actions corresponding to the buttons of the menu. The identifiers of
           each actions needs to exists as an id in the 'menu-file' for it to be linked properly.

MENU-FILE

       The menu-file is an `.xml` file representing a GtkBuilder. Documentation for  it  can  be  found  here  :
       https://docs.gtk.org/gtk4/class.Builder.html

       Here,  it  needs  to  have  an  element of type GtkMenu with id "menu". Eeach actions in menu-actions are
       linked to elements in the menu-file file by the id of the elements.

EXAMPLE

       Module config :
           "custom/power": {
                "format" : "⏻ ",
                     "tooltip": false,
                     "menu": "on-click",
                     "menu-file": "~/.config/waybar/power_menu.xml",
                     "menu-actions": {
                          "shutdown": "shutdown",
                          "reboot": "reboot",
                          "suspend": "systemctl suspend",
                          "hibernate": "systemctl hibernate",
                     },
           },

       ~/.config/waybar/power_menu.xml :
           <?xml version="1.0" encoding="UTF-8"?>
           <interface>
             <object class="GtkMenu" id="menu">
                <child>
                     <object class="GtkMenuItem" id="suspend">
                          <property name="label">Suspend</property>
                   </object>
                </child>
                <child>
                   <object class="GtkMenuItem" id="hibernat">
                          <property name="label">Hibernate</property>
                   </object>
                </child>
               <child>
                   <object class="GtkMenuItem" id="shutdown">
                          <property name="label">Shutdown</property>
                   </object>
               </child>
               <child>
                 <object class="GtkSeparatorMenuItem" id="delimiter1"/>
               </child>
               <child>
                     <object class="GtkMenuItem" id="reboot">
                          <property name="label">Reboot</property>
                     </object>
               </child>
             </object>
           </interface>

STYLING MENUS

menu Style for the menu

       •   menuitem Style for items in the menu

EXAMPLE:

           menu {
                border-radius: 15px;
                background: #161320;
                color: #B5E8E0;
           }
           menuitem {
                border-radius: 15px;
           }

                                                   2025-02-21                                     waybar-menu(5)