340 lines
12 KiB
Text
340 lines
12 KiB
Text
fluxbox-menu(5)
|
|
===============
|
|
Jim Ramsay <i.am@jimramsay.com>
|
|
v1.3.5, 13 February 2013
|
|
:man source: fluxbox-menu.txt
|
|
:man version: {revision}
|
|
:man manual: Fluxbox Manual
|
|
|
|
NAME
|
|
----
|
|
fluxbox-menu - fluxbox(1) menu syntax
|
|
|
|
SYNOPSIS
|
|
--------
|
|
@pkgdatadir@/menu
|
|
|
|
~/.fluxbox/menu
|
|
|
|
~/.fluxbox/windowmenu
|
|
|
|
SYNTAX
|
|
------
|
|
Variable parameters are shown in emphasis: 'argument'
|
|
|
|
All other characters shown are required verbatim. Whitespace is only required to
|
|
delimit words, but it is fine to add more whitespace.
|
|
|
|
DESCRIPTION
|
|
-----------
|
|
There are two types of menus in fluxbox which can be configured.
|
|
|
|
The first is the root menu, which normally appears when you right-click on the
|
|
desktop.
|
|
|
|
The first is the *ROOT MENU* (Or right-click menu), is usually bound to a
|
|
right-click on the desktop, though this binding can be changed in the `keys'
|
|
file (*fluxbox-keys(5)*). This same syntax is used for the *CustomMenu* command,
|
|
also mentioned in *fluxbox-keys(5)*.
|
|
|
|
Fluxbox installs a default root menu file in *@pkgdatadir@/menu*. You can also
|
|
use fluxbox -i to confirm this location. Of course this system-wide menu can be
|
|
customized for all users at once, but it is also possible to create an
|
|
individual menu file for each user. By convention, users create a menu file in
|
|
*~/.fluxbox/menu*. Once you've created your own menu file, you'll want to make
|
|
sure that you properly declare this location in your `init' file so that fluxbox
|
|
knows where to look. See *RESOURCES*, below for details.
|
|
|
|
The second type is the *WINDOW MENU*, which defines the contents of the menu
|
|
which appears when you right-click on a window's titlebar or iconbar. This opens
|
|
a menu file as defined by *~/.fluxbox/windowmenu*. If this file does not exist,
|
|
fluxbox will copy in the default from *@pkgdatadir@/windowmenu*.
|
|
|
|
You do not need to ``reload'' fluxbox after editing the apps file, the changes
|
|
should be taken into account the next time you open the menu.
|
|
|
|
ROOT MENU
|
|
---------
|
|
The root menu must begin with a *[begin]* tag and end with an *[end]* tag, and
|
|
every tag must be on its own line.
|
|
|
|
There are up to four fields in a menu line. They are of the form:::
|
|
['tag'] ('label') {'command'} <'icon'>
|
|
|
|
The <'icon'> field is always optional when shown below. If specified, the 'icon'
|
|
will be scaled down and displayed in the menu alongside the text label of the
|
|
item. It must be in .xpm or .png format.
|
|
|
|
Any line that starts with a '#' or '!' is considered a comment and ignored by
|
|
fluxbox. Also, in the label/command/filename fields you can escape any
|
|
character. Using '\\' inserts a literal back-slash into the
|
|
label/command/filename field.
|
|
|
|
You may enter labels, commands, and icons using characters from any *iconv(1)*
|
|
language/locale by specifying the encoding used via the *[encoding]* tag,
|
|
detailed below.
|
|
|
|
Structural Tags
|
|
~~~~~~~~~~~~~~~
|
|
*[begin]* ('title');;
|
|
This tells fluxbox to start parsing the menu file. This tag is required for
|
|
fluxbox to read your menu file. If it cannot find it, the system default menu
|
|
is used in its place. The 'title' appears at the top of the menu. And *[end]*
|
|
tag is required to end the menu.
|
|
|
|
*[submenu]* ('label') {'title'} <'icon'>;;
|
|
This tells fluxbox to create and parse a new menu, which is inserted as a
|
|
submenu into the parent menu. These menus are parsed recursively, so there is
|
|
no limit to the number of levels or nested submenus you can have. The 'label'
|
|
is the text that will appear in the parent menu, and the 'title' is shown at
|
|
the top of the submenu. If omitted, the 'title' will be the same as the
|
|
'label'. An *[end]* tag is required to end the submenu.
|
|
|
|
*[end]*;;
|
|
This tells fluxbox that it is at the end of a menu. This can either be a
|
|
*[submenu]* or the *[begin]* tag of the main root menu. There must be at
|
|
least one of these tags in your menu to correspond to the required *[begin]*
|
|
tag, and one for each *[submenu]*.
|
|
|
|
*[encoding]* {'encoding'};;
|
|
This begins an *[encoding]* section and specifies the string encoding of
|
|
all strings until the matching *[endencoding]* tag. For a list of available
|
|
encodings on your system, run *iconv -l*.
|
|
|
|
*[endencoding]*;;
|
|
This ends an *[encoding]* section.
|
|
|
|
*[include]* ('path');;
|
|
Parses the file specified by filename inline with the current menu. The
|
|
'path' can be the full path to a file or it can begin with *~/*, which will
|
|
be expanded into your home directory. If 'path' is a directory, then all
|
|
files in that directory are included.
|
|
|
|
*[separator]*;;
|
|
This will create a nice separation line. Useful for splitting up sections in
|
|
a ``pretty'' way. The optional 'comment' is not displayed, but can be useful
|
|
for internal documentation or script parsing of menu files.
|
|
|
|
*[nop]* ('label') <'icon'>;;
|
|
Insert a non-operational item into the current menu. This is much like
|
|
*[separator]*, but instead of a line, it inserts a 'label'. This can be used
|
|
to help format the menu into blocks or sections if so desired. The 'label' is
|
|
optional, and if omitted a blank item will be inserted.
|
|
|
|
Applications
|
|
~~~~~~~~~~~~
|
|
*[exec]* ('label') {'command...'} <'icon'>;;
|
|
Inserts a command item into the menu. When you select the menu item from the
|
|
menu, fluxbox runs 'command...' in your *$SHELL* (or /bin/sh if $SHELL is not
|
|
set). You can use this to launch applications, run shell scripts, etc. Since
|
|
all arguments are passed verbatim to the shell, you can use environment
|
|
variables, pipes, or anything else the shell can do. Note that processes only
|
|
see environment variables that were set before fluxbox started (such as in
|
|
~/.fluxbox/startup).
|
|
|
|
Fluxbox Functions
|
|
~~~~~~~~~~~~~~~~~
|
|
*[config]* ('label') <'icon'>;;
|
|
Inserts a fluxbox native submenu item, containing numerous configuration
|
|
options concerning window placement, focus style, window moving style, etc.
|
|
See *Configuration Menu* in *fluxbox(1)* for details.
|
|
|
|
*[reconfig]* ('label') <'icon'>;;
|
|
When selected this item re-reads the current style and menu files and applies
|
|
any changes. This is useful for creating a new style or theme, as you don't
|
|
have to constantly restart fluxbox every time you save your style. However,
|
|
fluxbox automatically rereads the menu whenever it changes.
|
|
|
|
*[restart]* ('label') {'command'} <'icon'>;;
|
|
This tells fluxbox to restart. If 'command' is supplied, it shuts down and
|
|
runs the command (which is commonly the name of another window manager). If
|
|
'command' is omitted, fluxbox restarts itself.
|
|
|
|
*[exit]* ('label') <'icon'>;;
|
|
Inserts an item that shuts down and exits fluxbox. Any open windows are
|
|
reparented to the root window before fluxbox exits.
|
|
|
|
*[style]* ('label') {'filename'} <'icon'>;;
|
|
This tells fluxbox to insert an item that, when selected, reads style file
|
|
named filename and apply the new textures, colors and fonts to the current
|
|
running session.
|
|
|
|
*[stylesmenu]* ('directory') <'icon'>;;
|
|
Reads all filenames from the specified directory, assuming that they are all
|
|
valid style files, and creates inline menu items in the current menu for
|
|
every filename, that, when selected by the user will apply the selected style
|
|
file to the current session. The labels that are created in the menu are the
|
|
filenames of the style files.
|
|
|
|
*[stylesdir]* ('label') {'directory'} <'icon'>;;
|
|
Creates a submenu entry with 'label' (that is also the title of the new
|
|
submenu), and inserts in that submenu all filenames in the specified
|
|
'directory', assuming that they are all valid style files (directories are
|
|
ignored) in the same way as the *[stylesdir]* command does. Both
|
|
*[stylesdir]* and *[stylesmenu]* commands make it possible to install style
|
|
files without editing your init file.
|
|
|
|
*[wallpapers]* ('directory') {'command'} <'icon'>;;
|
|
This inserts a menu item to set the wallpaper for each file in the given
|
|
directory. The 'command' is optional, and defaults to *fbsetbg*.
|
|
|
|
*[workspaces]* ('label') <'icon'>;;
|
|
This tells fluxbox to insert a link to the workspaces menu directly into your
|
|
menu. See *Workspace Menu* in *fluxbox(1)* for details.
|
|
|
|
*[*'command'*]* ('label') <'icon'>;;
|
|
In addition to the commands above, any legal keys file 'command' may be used
|
|
as a menu item. See *fluxbox-keys(5)* for more information.
|
|
|
|
WINDOW MENU
|
|
-----------
|
|
Like the *ROOT MENU*, this menu file must start with *[begin]* and end with
|
|
*[end]*. However, this file consists of only one *[*'tag'*]* per line with no
|
|
labels, commands, or icons.
|
|
|
|
The available tags in this menu are:
|
|
|
|
*[shade]*;;
|
|
Provides a menu item to shade or unshade (or, roll-up) the window. This is
|
|
equivalent to the shade titlebar button.
|
|
|
|
*[stick]*;;
|
|
Provides a menu item to stick or unstick the window. Stuck windows are
|
|
displayed on all workspaces. This is equivalent to the stick titlebar button.
|
|
|
|
*[maximize]*;;
|
|
Provides a menu item to maximize or unmaximize the window, equivalent to the
|
|
maximize titlebar button. The button with which you click alters the
|
|
behaviour of this item as follows:
|
|
|
|
* Button 1 (Un)Maximize as normal.
|
|
* Button 2 (Un)Maximize window vertically.
|
|
* Button 3 (Un)Maximize window horizontally.
|
|
|
|
*[iconify]*;;
|
|
Provides a menu item to iconify (or, minimize) the window, equivalent to the
|
|
iconify titlebar button.
|
|
|
|
*[close]*;;
|
|
Closes the window gracefully, equivalent to the titlebar button.
|
|
|
|
*[kill]*;;
|
|
Kills the window's process, like *xkill(1)*.
|
|
|
|
*[raise]*;;
|
|
Raise the window to the top of the stack within its layer.
|
|
|
|
*[lower]*;;
|
|
Lower the window to the bottom of the stack within its layer.
|
|
|
|
*[settitledialog]*;;
|
|
Opens a dialog which can be used to set the window's title. Some applications
|
|
may re-set their own title from time-to-time, wiping out your setting.
|
|
|
|
*[sendto]*;;
|
|
Sends the window to a different workspace. When you select the workspace with
|
|
a middle-click, fluxbox will also change to the new workspace. A regular
|
|
click only sends the window.
|
|
|
|
*[layer]*;;
|
|
Adds a ``Layer...'' submenu which lets you change the layer of this window.
|
|
|
|
*[alpha]*;;
|
|
Adds a ``Transparency...'' submenu which lets you change the focused and
|
|
unfocused transparency of this window.
|
|
|
|
*[extramenus]*;;
|
|
Adds the ``Remember...'' menu item, which allows you to specify which
|
|
settings should be stored in the `apps' file (See *fluxbox-apps(5)* for more
|
|
details).
|
|
|
|
*[separator]*;;
|
|
Adds a horizontal line to the menu
|
|
|
|
FILES
|
|
-----
|
|
*~/.fluxbox/menu*::
|
|
This is the default location for the user's root menu.
|
|
*@pkgdatadir@/menu*::
|
|
This is the system-wide root menu file. It will be used if the user's root
|
|
menu is missing or unparseable.
|
|
*~/.fluxbox/windowmenu*::
|
|
This is the user's window menu definition file
|
|
*@pkgdatadir@/menu*::
|
|
This is the default window menu. If the user does not have this file, it will
|
|
be copied to *~/.fluxbox/windowmenu* on fluxbox startup.
|
|
|
|
RESOURCES
|
|
---------
|
|
*session.menuFile:* 'location'::
|
|
This may be set to override the location of the user's root menu.
|
|
|
|
ENVIRONMENT
|
|
-----------
|
|
The 'comand...' field of the *[exec]* tag can take advantage of other
|
|
environment variables if they are set before fluxbox is started.
|
|
|
|
EXAMPLES
|
|
--------
|
|
.Root Menu
|
|
....
|
|
# fluxbox menu file
|
|
[begin] (fluxbox)
|
|
[exec] (rxvt) {rxvt -ls} </usr/X11R6/share/icons/terminal.xpm>
|
|
[exec] (netscape) {netscape -install}
|
|
[exec] (The GIMP) {gimp}
|
|
[exec] (XV) {xv}
|
|
[exec] (Vim) {rxvt -geometry 132x60 -name VIM -e screen vim}
|
|
[exec] (Mutt) {rxvt -name mutt -e mutt}
|
|
[submenu] (mozilla)
|
|
[exec] (browser) {mozilla -browser}
|
|
[exec] (news) {mozilla -news}
|
|
[exec] (mail) {mozilla -mail}
|
|
[exec] (edit) {mozilla -edit}
|
|
[exec] (compose) {mozilla -compose}
|
|
[end]
|
|
[submenu] (Window Manager)
|
|
[exec] (Edit Menus) {nedit ~/.fluxbox/menu}
|
|
[submenu] (Style) {Which Style?}
|
|
[stylesdir] (~/.fluxbox/styles)
|
|
[stylesmenu] (fluxbox Styles) {@pkgdatadir@/styles}
|
|
[end]
|
|
[config] (Config Options)
|
|
[reconfig] (Reconfigure)
|
|
[restart] (Restart)
|
|
[end]
|
|
[exit] (Log Out)
|
|
[end]
|
|
....
|
|
|
|
.Default Window Menu
|
|
....
|
|
[begin]
|
|
[shade]
|
|
[stick]
|
|
[maximize]
|
|
[iconify]
|
|
[raise]
|
|
[lower]
|
|
[settitledialog]
|
|
[sendto]
|
|
[layer]
|
|
[alpha]
|
|
[extramenus]
|
|
[separator]
|
|
[close]
|
|
[end]
|
|
....
|
|
|
|
AUTHORS
|
|
-------
|
|
- Jim Ramsay <i.am at jimramsay com> (>fluxbox-1.0.0)
|
|
- Curt Micol <asenchi at asenchi com> (>fluxbox-0.9.11)
|
|
- Tobias Klausmann <klausman at users sourceforge net> (<=fluxbox-0.9.11)
|
|
- Grubert <grubert at users sourceforge net> (fluxbox)
|
|
- Matthew Hawkins <matt at mh dropbear id au> (blackbox)
|
|
- Wilbert Berendsen <wbsoft at xs4all nl> (blackbox)
|
|
|
|
SEE ALSO
|
|
--------
|
|
fluxbox(1) fluxbox-keys(5) fluxbox-apps(5) xkill(1) iconv(1)
|