diff options
Diffstat (limited to 'doc/asciidoc/fluxbox-menu.txt')
-rw-r--r-- | doc/asciidoc/fluxbox-menu.txt | 345 |
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 @@ | |||
1 | fluxbox-menu(5) | ||
2 | =============== | ||
3 | Jim Ramsay <i.am@jimramsay.com> | ||
4 | v1.1.2, 12 February 2009 | ||
5 | :man source: fluxbox-menu.txt | ||
6 | :man version: {revision} | ||
7 | :man manual: Fluxbox Manual | ||
8 | |||
9 | NAME | ||
10 | ---- | ||
11 | fluxbox-menu - fluxbox(1) menu syntax | ||
12 | |||
13 | SYNOPSIS | ||
14 | -------- | ||
15 | @pkgdatadir@/menu | ||
16 | |||
17 | ~/.fluxbox/menu | ||
18 | |||
19 | ~/.fluxbox/windowmenu | ||
20 | |||
21 | SYNTAX | ||
22 | ------ | ||
23 | Variable parameters are shown in emphasis: 'argument' | ||
24 | |||
25 | All other characters shown are required verbatim. Whitespce is only required to | ||
26 | delimit words, but it is fine to add more whitespace. | ||
27 | |||
28 | DESCRIPTION | ||
29 | ----------- | ||
30 | There are two types of menus in fluxbox which can be configured. | ||
31 | |||
32 | The first is the root menu, which normally appears when you right-click on the | ||
33 | desktop. | ||
34 | |||
35 | The first is the *ROOT MENU* (Or right-click menu), is usually bound to a | ||
36 | right-click on the desktop, though this binding can be changed in the `keys' | ||
37 | file (*fluxbox-keys(5)*). This same syntax is used for the *CustomMenu* command, | ||
38 | also mentioned in *fluxbox-keys(5)*. | ||
39 | |||
40 | Fluxbox installs a default root menu file in *@pkgdatadir@/menu*. You can also | ||
41 | use fluxbox -i to confirm this location. Of course this system-wide menu can be | ||
42 | customized for all users at once, but it is also possible to create an | ||
43 | individual 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 | ||
45 | sure that you properly declare this location in your `init' file so that fluxbox | ||
46 | knows where to look. See *RESOURCES*, below for details. | ||
47 | |||
48 | The second type is the *WINDOW MENU*, which defines the contents of the menu | ||
49 | which appears when you right-click on a window's titlebar or iconbar. This opens | ||
50 | a menu file as defined by *~/.fluxbox/windowmenu*. If this file does not exist, | ||
51 | fluxbox will copy in the default from *@pkgdatadir@/windowmenu*. | ||
52 | |||
53 | You do not need to ``reload'' fluxbox after editing the apps file, the changes | ||
54 | should be taken into account the next time you open the menu. | ||
55 | |||
56 | ROOT MENU | ||
57 | --------- | ||
58 | The root menu must begin with a *[begin]* tag and end with an *[end]* tag, and | ||
59 | every tag must be on its own line. | ||
60 | |||
61 | There are up to four fields in a menu line. They are of the form::: | ||
62 | ['tag'] ('label') {'command'} <'icon'> | ||
63 | |||
64 | The <'icon'> field is always optional when show below. If specified, the 'icon' | ||
65 | will be scaled down and displayed in the menu alongside the text label of the | ||
66 | item. It must be in .xpm or .png format. | ||
67 | |||
68 | Any line that starts with a '#' or '!' is considered a comment and ignored by | ||
69 | fluxbox. Also, in the label/command/filename fields you can escape any | ||
70 | character. Using '\\' inserts a literal back-slash into the | ||
71 | label/command/filename field. | ||
72 | |||
73 | You may enter labels, commands, and icons using characters from any *iconv(1)* | ||
74 | language/locale by specifying the encoding used via the *[encoding]* tag, | ||
75 | detailed below. | ||
76 | |||
77 | Structural 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 | |||
124 | Applications | ||
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 | |||
135 | Fluxbox 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 | |||
189 | WINDOW MENU | ||
190 | ----------- | ||
191 | Like 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 | ||
193 | labels, commands, or icons. | ||
194 | |||
195 | The 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 | |||
254 | FILES | ||
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 | |||
267 | RESOURCES | ||
268 | --------- | ||
269 | *session.menuFile:* 'location':: | ||
270 | This may be set to override the location of the user's root menu. | ||
271 | |||
272 | ENVIRONMENT | ||
273 | ----------- | ||
274 | The 'comand...' field of the *[exec]* tag can take advantage of other | ||
275 | environment variables if they are set before fluxbox is started. | ||
276 | |||
277 | EXAMPLES | ||
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 | |||
329 | AUTHOR and CREDITS | ||
330 | ------------------ | ||
331 | This 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 | |||
342 | SEE ALSO | ||
343 | -------- | ||
344 | fluxbox(1), xev(1), xkill(1), regex(7) | ||
345 | |||