![]() |
![]()
| ![]() |
![]()
NAMElabwc - menu file DESCRIPTIONStatic menus are built based on the menu.xml file located at "~/.config/labwc" and equivalent XDG Base Directories. SYNTAXThe menu file must be entirely enclosed within <openbox_menu> and </openbox_menu> tags. Inside these tags, menus are specified as follows: <!-- A toplevel menu --> <menu id="external_menu_settings" label="External Settings" icon="preferences-other"> menu.id (when at toplevel) Define a menu tree. Each menu must be given an id, which
is a unique identifier of the menu. This id is used to refer to the menu in a
ShowMenu action. Default identifiers are
menu.id (when nested under other <menu> element) Link to a submenu defined elsewhere (by a <menu
id=""> at toplevel).
menu.label The title of the menu, shown in its parent. A label must
be given when defining a menu unless it is the topmost menu element.
Note that Openbox requires a label="" defined for topmost elements too, but for simplicity labwc handles these with or without the label attribute. menu.icon An icon to be rendered, shown in its parent. This
argument is optional. See menu.item.icon for further details.
menu.item.label The visible name of the menu item.
menu.item.icon The name of an icon to be rendered in front of the menu
entry. This attribute is optional. The name follows naming conventions of
"Icon=" entries in .desktop files. If used, it is recommended to use
the name of the icon only rather than a full path. This ensures that the icon
will be looked up in the scale of the output where the menu is rendered. E.g.
use of icon="vlc" is suggested over using
icon="/usr/share/icons/hicolor/16x16/apps/vlc.png".
menu.item.action See labwc-actions(5). Note: XML CDATA is supported for
this node in order to maintain compatibility with obmenu-generator.
menu.separator Horizontal line.
menu.separator.label In a "separator" element, the label attribute
transforms the separator from a horizontal line to a menu title (heading) with
the text specified by label in it.
menu.execute Command to execute for pipe menu. See details
below.
PIPE MENUSPipe menus are menus generated dynamically based on output of scripts or binaries. They are so-called because the output of the executable is piped to the labwc menu. For any <menu id="" label="" execute="COMMAND"/> entry in menu.xml, the COMMAND will be executed the first time the item is selected (for example by cursor or keyboard input). The XML output of the command will be parsed and shown as a submenu. The content of pipemenus is cached until the whole menu (not just the pipemenu) is closed. The content of the output must be entirely enclosed within <openbox_pipe_menu> tags. Inside these, menus are specified in the same way as static (normal) menus, for example: <openbox_pipe_menu> Inline submenus and nested pipemenus are supported. Note that it is the responsibility of the pipemenu executable to ensure that ID attributes are unique. Duplicates are ignored. When writing pipe menu scripts, make sure to escape XML special characters such as "&" ("&"), "<" ("<"), and ">" (">"). A pipemenu can also be used to define the toplevel <menu> element. In this case the entire menu.xml file would be reduced to something like this (replacing obmenu-generator with the menu generator of your choice): <?xml version="1.0"?> <openbox_menu> LOCALISATIONAvailable localisation for the default "client-menu" is only shown if no "client-menu" is present in menu.xml. Any menu definition in menu.xml is interpreted as a user-override. SEE ALSOlabwc(1), labwc-actions(5), labwc-config(5), labwc-theme(5)
|