aboutsummaryrefslogtreecommitdiff
path: root/doc/asciidoc/fluxbox-menu.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/asciidoc/fluxbox-menu.txt')
-rw-r--r--doc/asciidoc/fluxbox-menu.txt345
1 files changed, 345 insertions, 0 deletions
diff --git a/doc/asciidoc/fluxbox-menu.txt b/doc/asciidoc/fluxbox-menu.txt
new file mode 100644
index 0000000..0968202
--- /dev/null
+++ b/doc/asciidoc/fluxbox-menu.txt
@@ -0,0 +1,345 @@
1fluxbox-menu(5)
2===============
3Jim Ramsay <i.am@jimramsay.com>
4v1.1.2, 12 February 2009
5:man source: fluxbox-menu.txt
6:man version: {revision}
7:man manual: Fluxbox Manual
8
9NAME
10----
11fluxbox-menu - fluxbox(1) menu syntax
12
13SYNOPSIS
14--------
15@pkgdatadir@/menu
16
17~/.fluxbox/menu
18
19~/.fluxbox/windowmenu
20
21SYNTAX
22------
23Variable parameters are shown in emphasis: 'argument'
24
25All other characters shown are required verbatim. Whitespce is only required to
26delimit words, but it is fine to add more whitespace.
27
28DESCRIPTION
29-----------
30There are two types of menus in fluxbox which can be configured.
31
32The first is the root menu, which normally appears when you right-click on the
33desktop.
34
35The first is the *ROOT MENU* (Or right-click menu), is usually bound to a
36right-click on the desktop, though this binding can be changed in the `keys'
37file (*fluxbox-keys(5)*). This same syntax is used for the *CustomMenu* command,
38also mentioned in *fluxbox-keys(5)*.
39
40Fluxbox installs a default root menu file in *@pkgdatadir@/menu*. You can also
41use fluxbox -i to confirm this location. Of course this system-wide menu can be
42customized for all users at once, but it is also possible to create an
43individual menu file for each user. By convention, users create a menu file in
44*~/.fluxbox/menu*. Once you've created your own menu file, you'll want to make
45sure that you properly declare this location in your `init' file so that fluxbox
46knows where to look. See *RESOURCES*, below for details.
47
48The second type is the *WINDOW MENU*, which defines the contents of the menu
49which appears when you right-click on a window's titlebar or iconbar. This opens
50a menu file as defined by *~/.fluxbox/windowmenu*. If this file does not exist,
51fluxbox will copy in the default from *@pkgdatadir@/windowmenu*.
52
53You do not need to ``reload'' fluxbox after editing the apps file, the changes
54should be taken into account the next time you open the menu.
55
56ROOT MENU
57---------
58The root menu must begin with a *[begin]* tag and end with an *[end]* tag, and
59every tag must be on its own line.
60
61There are up to four fields in a menu line. They are of the form:::
62 ['tag'] ('label') {'command'} <'icon'>
63
64The <'icon'> field is always optional when show below. If specified, the 'icon'
65will be scaled down and displayed in the menu alongside the text label of the
66item. It must be in .xpm or .png format.
67
68Any line that starts with a '#' or '!' is considered a comment and ignored by
69fluxbox. Also, in the label/command/filename fields you can escape any
70character. Using '\\' inserts a literal back-slash into the
71label/command/filename field.
72
73You may enter labels, commands, and icons using characters from any *iconv(1)*
74language/locale by specifying the encoding used via the *[encoding]* tag,
75detailed below.
76
77Structural Tags
78~~~~~~~~~~~~~~~
79*[begin]* ('title');;
80 This tells fluxbox to start parsing the menu file. This tag is required for
81 fluxbox to read your menu file. If it cannot find it, the system default menu
82 is used in its place. The 'title' appears at the top of the menu. And *[end]*
83 tag is required to end the menu.
84
85*[submenu]* ('label') {'title'} <'icon'>;;
86 This tells fluxbox to create and parse a new menu, which is inserted as a
87 submenu into the parent menu. These menus are parsed recursively, so there is
88 no limit to the number of levels or nested submenus you can have. The 'label'
89 is the text that will appear in the parent menu, and the 'title' is shown at
90 the top of the submenu. If omitted, the 'title' will be the same as the
91 'label'. An *[end]* tag is required to end the submenu.
92
93*[end]*;;
94 This tells fluxbox that it is at the end of a menu. This can either be a
95 *[submenu]* or the *[begin]* tag of the main root menu. There must be at
96 least one of these tags in your menu to correspond to the required *[begin]*
97 tag, and one for each *[submenu]*.
98
99*[encoding]* {'encoding'};;
100 This begins an *[encoding]* section and specifies the string encoding of
101 all strings until the matching *[endencoding]* tag. For a list of available
102 encodings on your system, run *iconv -l*.
103
104*[endencoding]*;;
105 This ends an *[encoding]* section.
106
107*[include]* ('path');;
108 Parses the file specified by filename inline with the current menu. The
109 'path' can be the full path to a file or it can begin with *~/*, which will
110 be expanded into your home directory. If 'path' is a directory, then all
111 files in that directory are included.
112
113*[separator]*;;
114 This will create a nice separation line. Useful for splitting up sections in
115 a ``pretty'' way. The optional 'comment' is not displayed, but can be useful
116 for internal documentation or script parsing of menu files.
117
118*[nop]* ('label') <'icon'>;;
119 Insert a non-operational item into the current menu. This is much like
120 *[separator]*, but instead of a line, it inserts a 'label'. This can be used
121 to help format the menu into blocks or sections if so desired. The 'label' is
122 optional, and if omitted a blank item will be inserted.
123
124Applications
125~~~~~~~~~~~~
126*[exec]* ('label') {'command...'} <'icon'>;;
127 Inserts a command item into the menu. When you select the menu item from the
128 menu, fluxbox runs 'command...' in your *$SHELL* (or /bin/sh if $SHELL is not
129 set). You can use this to launch applications, run shell scripts, etc. Since
130 all arguments are passed verbatim to te shell, you can use environment
131 variables, pipes, or anything else the shell can do. Note that processes only
132 see environment variables that were set before fluxbox started (such as in
133 ~/.fluxbox/startup).
134
135Fluxbox Functions
136~~~~~~~~~~~~~~~~~
137*[config]* ('label') <'icon'>;;
138 Inserts a fluxbox native submenu item, containing numerous configuration
139 options concerning window placement, focus style, window moving style, etc.
140 See *Configuration Menu* in *fluxbox(1)* for details.
141
142*[reconfig]* ('label') <'icon'>;;
143 When selected this item re-reads the current style and menu files and applies
144 any changes. This is useful for creating a new style or theme, as you don't
145 have to constantly restart fluxbox every time you save your style. However,
146 fluxbox automatically rereads the menu whenever it changes.
147
148*[restart]* ('label') {'command'} <'icon'>;;
149 This tells fluxbox to restart. If 'command' is supplied, it shuts down and
150 runs the command (which is commonly the name of another window manager). If
151 'command' is omitted, fluxbox restarts itself.
152
153*[exit]* ('label') <'icon'>;;
154 Inserts an item that shuts down and exits fluxbox. Any open windows are
155 reparented to the root window before fluxbox exits.
156
157*[style]* ('label') {'filename'} <'icon'>;;
158 This tells fluxbox to insert an item that, when selected, reads style file
159 named filename and apply the new textures, colors and fonts to the current
160 running session.
161
162*[stylesmenu]* ('directory') <'icon'>;;
163 Reads all filenames from the specified directory, assuming that they are all
164 valid style files, and creates inline menu items in the current menu for
165 every filename, that, when selected by the user will apply the selected style
166 file to the current session. The labels that are created in the menu are the
167 filenames of the style files.
168
169*[stylesdir]* ('label') {'directory'} <'icon'>;;
170 Creates a submenu entry with 'label' (that is also the title of the new
171 submenu), and inserts in that submenu all filenames in the specified
172 'directory', assuming that they are all valid style files (directories are
173 ignored) in the same way as the *[stylesdir]* command does. Both
174 *[stylesdir]* and *[stylesmenu]* commands make it possible to install style
175 files without editing your init file.
176
177*[wallpapers]* ('directory') {'command'} <'icon'>;;
178 This inserts a menu item to set the wallpaper for each file in the given
179 directory. The 'command' is optional, and defaults to *fbsetbg*.
180
181*[workspaces]* ('label') <'icon'>;;
182 This tells fluxbox to insert a link to the workspaces menu directly into your
183 menu. See *Workspace Menu* in *fluxbox(1)* for details.
184
185*[*'command'*]* ('label') <'icon'>;;
186 In addition to the commands above, any legal keys file 'command' may be used
187 as a menu item. See *fluxbox-keys(5)* for more information.
188
189WINDOW MENU
190-----------
191Like the *ROOT MENU*, this menu file must start with *[begin]* and end with
192*[end]*. However, this file consists of only one *[*'tag'*]* per line with no
193labels, commands, or icons.
194
195The available tags in this menu are:
196
197*[shade]*;;
198 Provides a menu item to shade or unshade (or, roll-up) the window. This is
199 equivalent to the shade titlebar button.
200
201*[stick]*;;
202 Provides a menu item to stick or unstick the window. Stuck windows are
203 displayed on all workspaces. This is equivalent to the stick titlebar button.
204
205*[maximize]*;;
206 Provides a menu item to maximize or unmaximize the window, equivalent to the
207 maximize titlebar button. The button with which you click alters the
208 behaviour of this item as follows:
209
210 * Button 1 (Un)Maximize as normal.
211 * Button 2 (Un)Maximize window vertically.
212 * Button 3 (Un)Maximize window horizontally.
213
214*[iconify]*;;
215 Provides a menu item to iconify (or, minimize) the window, equivalent to the
216 iconify titlebar button.
217
218*[close]*;;
219 Closes the window gracefully, equivalent to the titlebar button.
220
221*[kill]*;;
222 Kills the window's process, like *xkill(1)*.
223
224*[raise]*;;
225 Raise the window to the top of the stack within its layer.
226
227*[lower]*;;
228 Lower the window to the bottom of the stack within its layer.
229
230*[settitledialog]*;;
231 Opens a dialog which can be used to set the window's title. Some applications
232 may re-set their own title from time-to-time, wiping out your setting.
233
234*[sendto]*;;
235 Sends the window to a different workspace. When you select the workspace with
236 a middle-click, fluxbox will also change to the new workspace. A regular
237 click only sends the window.
238
239*[layer]*;;
240 Adds a ``Layer...'' submenu which lets you change the layer of this window.
241
242*[alpha]*;;
243 Adds a ``Transparency...'' submenu which lets you change the focused and
244 unfocused transparency of this window.
245
246*[extramenus]*;;
247 Adds the ``Remember...'' menu item, which allows you to specify which
248 settings should be stored in the `apps' file (See *fluxbox-apps(5)* for more
249 details).
250
251*[separator]*;;
252 Adds a horizontal line to the menu
253
254FILES
255-----
256*~/.fluxbox/menu*::
257 This is the default location for the user's root menu.
258*@pkgdatadir@/menu*::
259 This is the system-wide root menu file. It will be used if the user's root
260 menu is missing or unparseable.
261*~/.fluxbox/windowmenu*::
262 This is the user's window menu definition file
263*@pkgdatadir@/menu*::
264 This is the default window menu. If the user does not have this file, it will
265 be copied to *~/.fluxbox/windowmenu* on fluxbox startup.
266
267RESOURCES
268---------
269*session.menuFile:* 'location'::
270 This may be set to override the location of the user's root menu.
271
272ENVIRONMENT
273-----------
274The 'comand...' field of the *[exec]* tag can take advantage of other
275environment variables if they are set before fluxbox is started.
276
277EXAMPLES
278--------
279.Root Menu
280....
281# fluxbox menu file
282[begin] (fluxbox)
283 [exec] (rxvt) {rxvt -ls} </usr/X11R6/share/icons/terminal.xpm>
284 [exec] (netscape) {netscape -install}
285 [exec] (The GIMP) {gimp}
286 [exec] (XV) {xv}
287 [exec] (Vim) {rxvt -geometry 132x60 -name VIM -e screen vim}
288 [exec] (Mutt) {rxvt -name mutt -e mutt}
289 [submenu] (mozilla)
290 [exec] (browser) {mozilla -browser}
291 [exec] (news) {mozilla -news}
292 [exec] (mail) {mozilla -mail}
293 [exec] (edit) {mozilla -edit}
294 [exec] (compose) {mozilla -compose}
295 [end]
296 [submenu] (Window Manager)
297 [exec] (Edit Menus) {nedit ~/.fluxbox/menu}
298 [submenu] (Style) {Which Style?}
299 [stylesdir] (~/.fluxbox/styles)
300 [stylesmenu] (fluxbox Styles) {@pkgdatadir@/styles}
301 [end]
302 [config] (Config Options)
303 [reconfig] (Reconfigure)
304 [restart] (Restart)
305 [end]
306 [exit] (Log Out)
307[end]
308....
309
310.Default Window Menu
311....
312[begin]
313 [shade]
314 [stick]
315 [maximize]
316 [iconify]
317 [raise]
318 [lower]
319 [settitledialog]
320 [sendto]
321 [layer]
322 [alpha]
323 [extramenus]
324 [separator]
325 [close]
326[end]
327....
328
329AUTHOR and CREDITS
330------------------
331This manpage is the combined work of:
332
333- Jim Ramsay <i.am at jimramsay com> (>fluxbox-1.1.1)
334- Curt Micol <asenchi at asenchi com> (>fluxbox-0.9.11)
335- Tobias Klausmann <klausman at users sourceforge net> (<=fluxbox-0.9.11)
336- Grubert <grubert at users sourceforge net> (fluxbox)
337- Matthew Hawkins <matt at mh dropbear id au> (blackbox)
338- Wilbert Berendsen <wbsoft at xs4all nl> (blackbox)
339
340- Numerous other languages could be available if someone jumps in.
341
342SEE ALSO
343--------
344fluxbox(1), xev(1), xkill(1), regex(7)
345