Man page - waybar-menu(5)

Packages contains this manual

Manual

waybar-menu

NAME
OVERVIEW
PROPERTIES
MENU-FILE
EXAMPLE
STYLING MENUS
EXAMPLE:

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 :

Image grohtml-4155911-1.png

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;

}