waybar - menu property
Some modules support a ’menu’, which allows to have a popup menu when a defined click is done over the module.
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 : |
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.
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.
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>
|
• |
menu Style for the menu |
|||
|
• |
menuitem Style for items in the menu |
menu {
|
border-radius: 15px; | |
|
background: #161320; | |
|
color: #B5E8E0; |
}
menuitem {
|
border-radius: 15px; |
}