- 
          
 - 
                Notifications
    
You must be signed in to change notification settings  - Fork 921
 
Module: Custom: Menu
        jmrepetti edited this page Oct 7, 2025 
        ·
        2 revisions
      
    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 :
| option | typeof | default | description | 
|---|---|---|---|
menu | 
string | Action that popups the menu. i.e: on-click
 | 
|
menu-file | 
string | Location of the menu descriptor file. There need to be an element of type GtkMenu with id menu. | |
menu-actions | 
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 ele‐ ments in the menu-file file by the id of the elements.
Module config:
~/.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>- 
menuStyle for the menu - 
menuitemStyle for items in the menu 
menu {
    border-radius: 15px;
    background: #161320;
    color: #B5E8E0;
}
menuitem {
    border-radius: 15px;
}- Home
 - Installation
 - Configuration
 - Styling
 - Examples
 - FAQ
 - Modules:
- Backlight/Slider
 - Backlight
 - Battery
 - Bluetooth
 - CPU
 - Cava
 - CFFI
 - Clock
 - Custom
 - DWL
 - Disk
 - Gamemode
 - Group
 - Hyprland
 - Idle Inhibitor
 - Image
 - JACK
 - Keyboard State
 - Language
 - Load
 - MPD
 - MPRIS
 - Memory
 - Network
 - Niri
 - Power Profiles Daemon
 - Privacy
 - PulseAudio/Slider
 - PulseAudio
 - River
 - Sndio
 - Sway
 - Systemd failed units
 - Taskbar
 - Temperature
 - Tray
 - UPower
 - User
 - WirePlumber
 - Workspaces
 
 - Writing Modules