diff options
author | mathias <mathias> | 2006-04-22 07:03:58 (GMT) |
---|---|---|
committer | mathias <mathias> | 2006-04-22 07:03:58 (GMT) |
commit | dc532830606461182f5b9fbac54847a1b3c5b080 (patch) | |
tree | 19067747564dca5d1bdabd00c1e0024735187d73 | |
parent | edafa987bee64b898ab301263431f97fbd9445e2 (diff) | |
download | fluxbox-dc532830606461182f5b9fbac54847a1b3c5b080.zip fluxbox-dc532830606461182f5b9fbac54847a1b3c5b080.tar.bz2 |
* cosmetics to Workspace.hh CurrentWindowCmd.cc
* added first draft of new docs in asciidoc format, needs to be converted
properly to roff-format, right now its just a temporary "home"
* rename of Coding_style to CODESTYLE
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | doc/CODESTYLE (renamed from doc/Coding_style) | 0 | ||||
-rw-r--r-- | doc/asciidoc/README.txt | 31 | ||||
-rw-r--r-- | doc/asciidoc/fluxbox.txt | 1572 | ||||
-rw-r--r-- | src/CurrentWindowCmd.cc | 26 | ||||
-rw-r--r-- | src/Workspace.hh | 26 |
6 files changed, 1635 insertions, 26 deletions
@@ -1,5 +1,8 @@ | |||
1 | (Format: Year/Month/Day) | 1 | (Format: Year/Month/Day) |
2 | Changes for 0.9.16: | 2 | Changes for 0.9.16: |
3 | *06/04/22: | ||
4 | * First draft of new docs in docs/asciidoc (Mathias) | ||
5 | * Cosmetics to Workspace.hh CurrentWindowCmd.cc | ||
3 | *06/04/21: | 6 | *06/04/21: |
4 | * Minor fixes to slit transparency (esp if autohidden) (Simon) | 7 | * Minor fixes to slit transparency (esp if autohidden) (Simon) |
5 | Slit.cc | 8 | Slit.cc |
@@ -213,6 +216,7 @@ Changes for 0.9.16: | |||
213 | fluxbox.cc Screen.hh/cc Window.hh/cc FbWinFrame.hh/cc Remember.cc | 216 | fluxbox.cc Screen.hh/cc Window.hh/cc FbWinFrame.hh/cc Remember.cc |
214 | Container.hh/cc FbTk/XLayer.hh/cc XLayerItem.cc fluxbox-nls.hh | 217 | Container.hh/cc FbTk/XLayer.hh/cc XLayerItem.cc fluxbox-nls.hh |
215 | RowSmart/ColSmart/UnderMousePlacement.cc WinButton.cc | 218 | RowSmart/ColSmart/UnderMousePlacement.cc WinButton.cc |
219 | |||
216 | ------------------------------------------------------------- | 220 | ------------------------------------------------------------- |
217 | Changes for 0.9.15: | 221 | Changes for 0.9.15: |
218 | *06/03/19: | 222 | *06/03/19: |
@@ -377,6 +381,8 @@ Changes for 0.9.15: | |||
377 | src/ScreenResources.cc | 381 | src/ScreenResources.cc |
378 | * Use fbsetroot in Default-Styles (Mathias) | 382 | * Use fbsetroot in Default-Styles (Mathias) |
379 | data/styles/* | 383 | data/styles/* |
384 | |||
385 | ------------------------------------------------------------- | ||
380 | Changes for 0.9.14: | 386 | Changes for 0.9.14: |
381 | *05/09/12: | 387 | *05/09/12: |
382 | * Fixes #1281708, MenuIcon doesnt scale properly (thanx Erik-Jan) | 388 | * Fixes #1281708, MenuIcon doesnt scale properly (thanx Erik-Jan) |
diff --git a/doc/Coding_style b/doc/CODESTYLE index 47bd173..47bd173 100644 --- a/doc/Coding_style +++ b/doc/CODESTYLE | |||
diff --git a/doc/asciidoc/README.txt b/doc/asciidoc/README.txt new file mode 100644 index 0000000..a09eef6 --- /dev/null +++ b/doc/asciidoc/README.txt | |||
@@ -0,0 +1,31 @@ | |||
1 | whats this? this is the attempt to write the documentation for | ||
2 | fluxbox in ascii-doc format. how does it work? | ||
3 | |||
4 | well, we just edit fluxbox.txt from this directory. save it. | ||
5 | then we can produce pretty much any format we like: | ||
6 | |||
7 | man: | ||
8 | |||
9 | $> asciidoc -b docbook -d manpage fluxbox.txt | ||
10 | $> xmlto man fluxbox.xml | ||
11 | |||
12 | pdf: | ||
13 | |||
14 | $> asciidoc -b docbook -d manpage fluxbox.txt | ||
15 | $> docbook2pdf fluxbox.xml | ||
16 | |||
17 | docbook: | ||
18 | |||
19 | $> asciidoc -b docbook-sgml -d manpage fluxbox.txt | ||
20 | |||
21 | html: | ||
22 | |||
23 | $> asciidoc -b xhtml -d manpage fluxbox.txt | ||
24 | |||
25 | and many many more ways to do it. | ||
26 | what do we need? well, at least: | ||
27 | |||
28 | http://www.methods.co.nz/asciidoc/ | ||
29 | http://cyberelk.net/tim/xmlto/ | ||
30 | |||
31 | and the rest of the docbook-family + maybe pdftex. | ||
diff --git a/doc/asciidoc/fluxbox.txt b/doc/asciidoc/fluxbox.txt new file mode 100644 index 0000000..a45c432 --- /dev/null +++ b/doc/asciidoc/fluxbox.txt | |||
@@ -0,0 +1,1572 @@ | |||
1 | fluxbox(1) | ||
2 | ========== | ||
3 | Henri Kinnunen <fluxgen@fluxbox.org> | ||
4 | v0.9.15, 18th March 2006 | ||
5 | |||
6 | NAME | ||
7 | ---- | ||
8 | fluxbox - A lightweight window manager for the X Windowing System | ||
9 | |||
10 | SYNOPSIS | ||
11 | -------- | ||
12 | 'fluxbox' [-vhi] [-rc rcfile] [-l logfile] [-d display] [-screens scr,scr] | ||
13 | |||
14 | DESCRIPTION | ||
15 | ----------- | ||
16 | fluxbox(1) provides configurable window decorations, a root menu to launch | ||
17 | applications and a toolbar that shows the current workspace name, a set of | ||
18 | application names and the current time. There is also a workspace menu to add | ||
19 | or remove workspaces. The `slit' can be used to dock small applications, e.g. | ||
20 | most of the bbtools can use slit. | ||
21 | |||
22 | |||
23 | fluxbox(1) can iconify windows to the toolbar, in addition to adding the window | ||
24 | to the 'Icons' submenu of the workspace menu. One click and they reappear. A | ||
25 | double-click on the titlebar of the window will 'shade' it, i.e. the window | ||
26 | will disappear, only the titlebar remains visible. | ||
27 | |||
28 | |||
29 | fluxbox(1) uses its own graphics class to render its images on the fly. By using | ||
30 | style files, you can determine in great detail how your desktop looks. | ||
31 | fluxbox styles are compatible with those of Blackbox 0.65 or earlier versions, | ||
32 | so users migrating can still use their current favourite themes. | ||
33 | |||
34 | |||
35 | fluxbox(1) supports the majority of the Extended Window Manager Hints (EWMH) | ||
36 | specification, as well as numerous other Window Hinting standards. This | ||
37 | allows all compliant window managers to provide a common interface to | ||
38 | standard features used by applications and desktop utilities. | ||
39 | |||
40 | OPTIONS | ||
41 | ------- | ||
42 | -d display, -display display:: | ||
43 | Start fluxbox on the specified display. Programs started by fluxbox | ||
44 | will share the DISPLAY environment variable also. | ||
45 | -h, -help:: | ||
46 | Display command line options. | ||
47 | -i, -info:: | ||
48 | Display useful information concerning the defaults and compiled-in | ||
49 | options. | ||
50 | -l logfile:: | ||
51 | Starting fluxbox with this option will designate a file in which you | ||
52 | want to log events to. | ||
53 | -rc rcfile:: | ||
54 | Use a different config file other than the default ~/.fluxbox/init. | ||
55 | -v, -version:: | ||
56 | The version of fluxbox installed. | ||
57 | |||
58 | STARTING FLUXBOX | ||
59 | ---------------- | ||
60 | fluxbox(1) comes with a program called startfluxbox(8) usually located wherever | ||
61 | you installed fluxbox. This script provides you with many options and | ||
62 | variables that can be set when starting fluxbox. To actually call fluxbox and | ||
63 | begin using it, you should place "exec startfluxbox" in your ~/.xinitrc or | ||
64 | ~/.xsession (depending on your distributions and/or display manager) as the | ||
65 | last executed command. This is assuming that the location of fluxbox(1) and | ||
66 | startfluxbox(8) are in your shell's $PATH. Also note that you may need to | ||
67 | create the ~/.xinitrc file or your setup may use ~/.xsession instead, | ||
68 | depending on your X setup. For more information on your shell, please visit | ||
69 | your shell's manual page. | ||
70 | |||
71 | By using fluxbox -i you'll see the defaults used by fluxbox(1). These are what | ||
72 | fluxbox looks for upon startup. In the list of `Defaults:' you'll see a menu | ||
73 | file location, this is where you can provide a system-wide menu file for your | ||
74 | users. | ||
75 | |||
76 | On exit or restart, fluxbox will save user defaults in the file | ||
77 | ~/.fluxbox/init. Resources in this file can be edited by hand. fluxbox also | ||
78 | has many tools to edit these, look through the main menu once fluxbox has | ||
79 | started to find different ways of managing your session. | ||
80 | |||
81 | USING FLUXBOX | ||
82 | ------------- | ||
83 | When using fluxbox for the first time, users who are more accustomed to | ||
84 | full desktop environments such as KDE or Gnome may be a little surprised by | ||
85 | the minimal screen content. fluxbox is designed to be fast and powerful, so it | ||
86 | may take a bit of getting used to -- however, the rewards are worthwhile. | ||
87 | user. | ||
88 | We'll give a quick summary of the common things in this section. However, we | ||
89 | recommend that you consult the referenced sections of this manual to further | ||
90 | develop your understanding of what you can do with fluxbox. | ||
91 | |||
92 | Root Window (Main) | ||
93 | ~~~~~~~~~~~~~~~~~~ | ||
94 | Looking at the fluxbox desktop immediately after startup you'll generally | ||
95 | see only one thing: The toolbar. If you were to right click (mouse button | ||
96 | 3) somewhere else blank, you would be able to access the RootMenu, a | ||
97 | middle click (mouse button 2) on the desktop shows you the WorkspaceMenu. | ||
98 | |||
99 | RootMenu and WorkspaceMenu | ||
100 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
101 | From the RootMenu you can launch applications and configure fluxbox. The | ||
102 | WorkspaceMenu shows all windows and on which workspaces they are. See | ||
103 | section MENUS on how to customize thess menus. | ||
104 | |||
105 | Toolbar | ||
106 | ~~~~~~~ | ||
107 | The toolbar contains up to eight fields/tools: | ||
108 | |||
109 | - *Workspace Name*: | ||
110 | Name of the current visible workspace | ||
111 | - *Iconbar*: | ||
112 | Show Windows | ||
113 | - *System Tray*: | ||
114 | Area for applets | ||
115 | - *Clock*: | ||
116 | Date and Time | ||
117 | - *Workspace Arrows*: | ||
118 | Previous/Next Workspace | ||
119 | - *Window Arrows*: | ||
120 | Previous/Next Application Window | ||
121 | |||
122 | The contents of the toolbar can be configured in the `init' file, we | ||
123 | discuss the `init' file at great length in the RESOURCES section. | ||
124 | |||
125 | Slit | ||
126 | ~~~~ | ||
127 | Initially you won't be able to see the slit. It is there, it just isn't | ||
128 | being utilized yet. The slit confuses some people initially. Think of it | ||
129 | as a dock where you can place smaller programs. If you've looked at any | ||
130 | screenshots on the offical fluxbox web site you'll have noticed some small | ||
131 | programs on the edge of some of the screens. These were more than likely | ||
132 | those docked programs in the slit. To learn more about the slit, we have | ||
133 | an entire section below that goes into detail about the options you have. | ||
134 | |||
135 | Layers | ||
136 | ~~~~~~ | ||
137 | fluxbox manages the following layers (from highest to lowest layer): | ||
138 | |||
139 | * Above Dock | ||
140 | * Dock | ||
141 | * Top | ||
142 | * Normal | ||
143 | * Bottom | ||
144 | * Desktop | ||
145 | |||
146 | Windows on a higher layer will always appear above those on a lower one. These | ||
147 | layers can be used on application windows, the slit or the toolbar. You can | ||
148 | assign applications to a certain layer by specifying it in the `apps' file. We | ||
149 | discuss the `apps' file in the APPLICATIONS section. We discuss layers in more | ||
150 | detail in the LAYERS section. | ||
151 | |||
152 | Focus Model | ||
153 | ~~~~~~~~~~~ | ||
154 | The window that has the focus is the one that receives key and mouse | ||
155 | events. The focus model is selectable via the Configuration menu located | ||
156 | in the root menu. We'll discuss the different types of focus below in the | ||
157 | FOCUS MODEL section. | ||
158 | |||
159 | Windows | ||
160 | ~~~~~~~ | ||
161 | A left click (mouse button 1) on any part of the window's border will | ||
162 | raise it. Dragging then moves the window to another part of the desktop. | ||
163 | Dragging the resize grips at the left and right bottom corners resizes the | ||
164 | window. Middle clicking on a border or titlebar will immediately lower the | ||
165 | window. Right clicking on a border or titlebar pops the Window menu up. | ||
166 | The commands in this menu alone are discussed in detail in the Window Menu | ||
167 | section of MENUS. | ||
168 | |||
169 | Tabs | ||
170 | ~~~~ | ||
171 | fluxbox allows windows to be `grouped' by middle clicking and holding on a | ||
172 | window's title bar and dragging it onto another window. This will `tab' | ||
173 | the titlebars, allowing you the user to select each window individually. | ||
174 | This `tabbing' allows you to put multiple applications in one location on | ||
175 | the desktop, and do several operations (for example, moving or resizing) | ||
176 | to all windows in the group. | ||
177 | |||
178 | Miscellaneous | ||
179 | ~~~~~~~~~~~~~ | ||
180 | When you want to drag a window, but cannot see either the bottom handle or | ||
181 | its titlebar you can press (and hold!) | ||
182 | |||
183 | ALT + Left Mousebutton (mouse button 1) | ||
184 | |||
185 | and move it anywhere in the current workspace. This key combination can | ||
186 | also be used to raise a partially visible window. | ||
187 | |||
188 | The key combination | ||
189 | |||
190 | ALT + Right Mousebutton (mouse button 3) | ||
191 | |||
192 | will allow you to resize the window. These can be disabled in the | ||
193 | resource file with: | ||
194 | |||
195 | session.session0.useMod1: <boolean> | ||
196 | |||
197 | MENUS | ||
198 | ----- | ||
199 | fluxbox installs a default menu file in @pkgdatadir@/menu. You | ||
200 | can also use fluxbox -i to confirm this action. Of course this system-wide | ||
201 | menu can be customized for all users at once, but it is also possible to | ||
202 | create an individual menu file for each user. By convention, users create a | ||
203 | menu file in ~/.fluxbox . Once you've created your own menu file, you'll want | ||
204 | to make sure that you properly declare this location in your `init' file so | ||
205 | that fluxbox knows where to look. The value you'll want to add or change is: | ||
206 | |||
207 | session.session0.menuFile: <menufile> | ||
208 | |||
209 | For this change to take effect, fluxbox must be restarted. Be sure that your | ||
210 | menu is usable, then choose `Restart' from the default fluxbox root menu. | ||
211 | This restart is only necessary if you make changes to the `init' file, | ||
212 | otherwise a `Reload Config' is acceptable. A menu reload can also be | ||
213 | forced by sending SIGUSR2 signal (see the SIGNALS section). | ||
214 | |||
215 | Root Menu | ||
216 | ~~~~~~~~~ | ||
217 | The root menu is where you can change different aspects of fluxbox by | ||
218 | simply clicking on a menu item. Most of the changes in this menu can also | ||
219 | be done in the `init' file. However it makes it very easy to change | ||
220 | certain options without having to open up an editor and find the resource. | ||
221 | In the root menu, you usually have a `fluxbox menu' or `Settings' submenu, | ||
222 | where you will find lots of different options. We'll take a look at most, | ||
223 | if not all, of those here. | ||
224 | |||
225 | - *Configure*: | ||
226 | The next level under this menu is where you can set certain resources and | ||
227 | really begin to cus- tomize the look and feel of your desktop. | ||
228 | |||
229 | - *System Styles*: | ||
230 | This is where the standard styles are listed. You can select one of these | ||
231 | by clicking on it. You may have to `reload' the config or `restart' to get | ||
232 | every graphical element to change to the new style. System styles are | ||
233 | located in @pkgdatadir@/styles/ upon a default install. | ||
234 | Remember that you can confirm this with fluxbox -i. | ||
235 | |||
236 | - *User Styles*: | ||
237 | ~/.fluxbox/styles This is the location where you will store new styles | ||
238 | that you grab from the Internet. If you create your own styles this is | ||
239 | also where you will put yours (provided that you follow the 'standards' | ||
240 | described in fluxstyle(1)). | ||
241 | |||
242 | - *Workspace List*: | ||
243 | This is a list of the workspaces configured in your `init' file. If there | ||
244 | are programs running on any of the workspaces, they will be listed one | ||
245 | level down. | ||
246 | |||
247 | - *Tools*: | ||
248 | Listed here are different tools that you can use. You can rename your | ||
249 | workspace, run programs from a command line or regenerate your menu. | ||
250 | |||
251 | - *Window*: | ||
252 | Allows you to switch your window manager. (Only listed if you have other | ||
253 | window managers/desktop environments installed.) | ||
254 | |||
255 | - *Lock Screen*: | ||
256 | Locks the screen... | ||
257 | |||
258 | - *fluxbox Command*: | ||
259 | A little Commandline will popup where you can enter a fluxbox command. | ||
260 | |||
261 | - *Reload Config*: | ||
262 | Use this to reload any menu files or style files. Just a basic re-read of | ||
263 | the files by a running fluxbox. | ||
264 | |||
265 | - *Restart*: | ||
266 | Restart the whole darn thing, this rereads files and redraws all graphical | ||
267 | elements. | ||
268 | |||
269 | - *Exit: | ||
270 | Exits fluxbox and shuts down the X Window server. | ||
271 | |||
272 | Configuration Menu | ||
273 | ~~~~~~~~~~~~~~~~~~ | ||
274 | This menu offers the opportunity to set up fluxbox. It ca also achieved by | ||
275 | editing the init file, but this is a easier and faster way to most users. | ||
276 | |||
277 | - *Focus Model*: | ||
278 | Please read the FOCUS MODEL section at the end of this manual. | ||
279 | |||
280 | - *Slit*: | ||
281 | This Menu can be opend by right clicking the slit (if visible). | ||
282 | |||
283 | - *Placement*: | ||
284 | This lets you set the position of the slit. | ||
285 | |||
286 | - *Layer*: | ||
287 | Look above for the layer priorities. | ||
288 | |||
289 | - *Auto hide*: | ||
290 | If enabled, the slit will disappear after a given amount of time and hide | ||
291 | from the view of the user. You can make it appear if you move the mouse to | ||
292 | the edge of the desktop where the slit is psitioned. | ||
293 | |||
294 | - *Maximize over*: | ||
295 | If this is enabled, all windows, if you maximize them, will stretch | ||
296 | over/under the slit. Otherwise the will be limited to the slit's edge. | ||
297 | |||
298 | - *Alpha*: | ||
299 | By changing the value the slit (only the decoration not the apps in the | ||
300 | slit) will become transparent. 0 (transparent) - 255 (opaque) | ||
301 | |||
302 | - *Slit direction*: | ||
303 | Changing the value will set the slit's direction for ordering apps sitting | ||
304 | in the slit. There is no effect with only on application. | ||
305 | |||
306 | - *Clients*: | ||
307 | This submenu lets you reorder the the applications running in the | ||
308 | slit. You are able to hide apps from the slit by unselecting them in | ||
309 | the list showing. This will not kill the app. You can make them appear | ||
310 | by selecting them in the list. The "Save SlitList" option saves the | ||
311 | new order to you slitlist located in ~/.fluxbox (useful if you | ||
312 | reordered the apps with the cycle option). | ||
313 | |||
314 | - *Toolbar*: | ||
315 | Please take a look at the "Configuration via the Toolbar Menu" part of the | ||
316 | TOOLBAR section. | ||
317 | |||
318 | - *Image Dithering*: | ||
319 | Enable or disable dithering of images. | ||
320 | |||
321 | - *Opaque Window Moving*: | ||
322 | If enabled, you will see the window content while dragging it. Otherwise | ||
323 | the window will be shown as a "border". | ||
324 | |||
325 | - *Full Maximization*: | ||
326 | Enabling this will override the seperate settings for the slit/toolbar. | ||
327 | Windows will always maximize over/under both of them. | ||
328 | |||
329 | - *Focus New Window*: | ||
330 | If enabled, a newly opend window will gain focus. | ||
331 | |||
332 | - *Focus Last Window on Workspace*: | ||
333 | This focuses the last window if switching back to a worspace if the option | ||
334 | is enabled. | ||
335 | |||
336 | - *Windows Warping*: | ||
337 | If enabled, you can drag windows from one to another workspace. | ||
338 | |||
339 | - *Desktop MouseWheel Switching*: | ||
340 | You will be able to change the workspace with your mousewheel if used on | ||
341 | the desktop or over the toolbar if the option is enabled. | ||
342 | |||
343 | - *Decorate Transient Windows*: | ||
344 | With this option enabled all temporary windows will have a border and | ||
345 | grips. | ||
346 | |||
347 | - *Click Raises*: | ||
348 | If enabled a click anywhere on a window area (including the decorations) | ||
349 | will raise it. Otherwise you can only raise it by clicking the titlebar. | ||
350 | |||
351 | - *Transparency*: | ||
352 | This sets the transparency for an focused, unfocused window and the menu. | ||
353 | |||
354 | Window Menu | ||
355 | ~~~~~~~~~~~ | ||
356 | The Window menu is displayed when you right click on the titlebar or | ||
357 | border of a window. The options available are: | ||
358 | |||
359 | - *Send To...*: | ||
360 | Send window to another workspace. When you select the workspace with | ||
361 | a middle click, fluxbox will send you along with the application to | ||
362 | the selected workspace. | ||
363 | |||
364 | - *Shade*: | ||
365 | Shade the window (display the titlebar only). | ||
366 | |||
367 | - *Iconify*: | ||
368 | Iconify window. The `icon' can be found in the Icons submenu of the | ||
369 | workspace menu as well as in the toolbar (if a Toolbar mode showing | ||
370 | Icons is selected). | ||
371 | |||
372 | - *Maximize*: | ||
373 | (Un)Maximize window. Depending on your toolbar and slit | ||
374 | configuration, maximize may cover them. You can use the different | ||
375 | mouse buttons for different aspects of maximize function. | ||
376 | |||
377 | * Button 1 (Un)Maximize as normal. | ||
378 | * Button 2 (Un)Maximize window vertically. | ||
379 | * Button 3 (Un)Maximize window horizontally. | ||
380 | |||
381 | - *Raise*: | ||
382 | Raise the window. | ||
383 | |||
384 | - *Lower*: | ||
385 | Lower the window. | ||
386 | |||
387 | - *Stick*: | ||
388 | (Un)Stick window. A `stuck' window will always be displayed on all | ||
389 | workspaces. | ||
390 | |||
391 | - *Next Client*: | ||
392 | Activate the next client in this window's group. | ||
393 | |||
394 | - *Prev Client*: | ||
395 | Activate the previous client in this window's group. | ||
396 | |||
397 | - *Layer...*: | ||
398 | Change the layer of this window. | ||
399 | |||
400 | - *Remember...*: | ||
401 | Specify which window settings should be stored in the apps file, | ||
402 | covered later on in the APPLICATIONS section. | ||
403 | |||
404 | - *Close*: | ||
405 | Close the application softly. | ||
406 | |||
407 | Workspace Menu | ||
408 | ~~~~~~~~~~~~~~ | ||
409 | The workspace menu can be found by middle clicking on the background. A | ||
410 | menu will popup giving you the option to add or remove a workspace. You | ||
411 | will also see your workspaces listed there, in a lower menu under these | ||
412 | the programs that are running on those respective workspaces will be | ||
413 | displayed. Last but not least you will notice the Icons menu. This is for | ||
414 | applications which have been `iconified'. | ||
415 | |||
416 | Menu Behavior | ||
417 | ~~~~~~~~~~~~~ | ||
418 | The behavior of the submenus in a menu can be configured in the `init' | ||
419 | file, with the following entries (default for both is 0): | ||
420 | |||
421 | session.screen0.menuDelay: <msec> | ||
422 | session.screen0.menuDelayClose: <msec> | ||
423 | |||
424 | Menu Syntax | ||
425 | ~~~~~~~~~~~ | ||
426 | There are up to four fields in a menu line. They are of the form: | ||
427 | |||
428 | [tag] (label|filename) {command|filename} <icon file> | ||
429 | |||
430 | The supported tags are: | ||
431 | |||
432 | [begin] (label);; | ||
433 | This tells fluxbox to start parsing the menu file. This tag is | ||
434 | required for fluxbox to read your menu file. If it cannot find it, the | ||
435 | system default menu is used in it's place. | ||
436 | |||
437 | [end];; | ||
438 | This tells fluxbox that it is at the end of a menu. This can either be | ||
439 | a submenu or the main root menu. There must be at least one of these | ||
440 | tags in your menu to correspond to the required [begin] tag. | ||
441 | |||
442 | [exec] (label) \{command\};; | ||
443 | Inserts a command item into the menu. When you select the menu item | ||
444 | from the menu, fluxbox runs 'command'. | ||
445 | |||
446 | [exit] (label);; | ||
447 | Inserts an item that shuts down and exits fluxbox. Any open windows | ||
448 | are reparented to the root window before fluxbox exits. | ||
449 | |||
450 | [include] (file-or-directory-name);; | ||
451 | Parses the file specified by filename inline with the current menu. | ||
452 | The filename can be the full path to a file or it can begin with ~/, | ||
453 | which will be expanded into your home directory. If the path is a | ||
454 | directory, then all files in the directory are included. | ||
455 | |||
456 | [nop] (label);; | ||
457 | Insert a non-operational item into the current menu. This can be used | ||
458 | to help format the menu into blocks or sections if so desired. This | ||
459 | tag does support a label, but one is not required in which case a | ||
460 | blank item will be used instead. | ||
461 | |||
462 | [separator];; | ||
463 | This will create a nice separation line. Useful for splitting up | ||
464 | sections in a 'pretty' way. | ||
465 | |||
466 | [style] (label) \{filename\};; | ||
467 | This tells fluxbox to insert an item that, when selected, reads style | ||
468 | file named filename and apply the new textures, colors and fonts to | ||
469 | the current running session. | ||
470 | |||
471 | [stylesmenu] (directory);; | ||
472 | Reads all filenames from the specified directory, assuming that they | ||
473 | are all valid style files, and creates menu items in the current menu | ||
474 | for every filename, that, when selected by the user will apply the | ||
475 | selected style file to the current session. The labels that are | ||
476 | created in the menu are the filenames of the style files. | ||
477 | |||
478 | [stylesdir] (label) \{directory\};; | ||
479 | Creates a submenu entry with label (that is also the title of the new | ||
480 | submenu), and inserts in that submenu all filenames in the | ||
481 | specified directory, assuming that they are all valid style files | ||
482 | (directories are ignored) in the same way as the [stylesdir] command | ||
483 | does. | ||
484 | Both [stylesdir] and [stylesmenu] commands make it possible to install | ||
485 | style files without editing your init file. | ||
486 | |||
487 | [submenu] (label) \{menutitle\};; | ||
488 | This tells fluxbox to create and parse a new menu. This menu is | ||
489 | inserted as a submenu into the parent menu. These menus are parsed | ||
490 | recursively, so there is no limit to the number of levels or nested | ||
491 | submenus you can have. The title for the new menu is optional, if none | ||
492 | is supplied, the new menu's title is the same as the item label. An | ||
493 | [end] tag is required to end the submenu. | ||
494 | |||
495 | [reconfig] (label);; | ||
496 | When selected this item re-reads the current style and menu files and | ||
497 | applies any changes. This is useful for creating a new style or theme, | ||
498 | as you don't have to constantly restart fluxbox every time you save | ||
499 | your style. However, fluxbox automagically rereads the menu whenever | ||
500 | it changes. | ||
501 | |||
502 | [restart] (label) \{command\};; | ||
503 | This tells fluxbox to restart. If command is supplied, it shuts down | ||
504 | and runs the command (which is commonly the name of another window | ||
505 | manager). If the command is omitted, fluxbox restarts itself. | ||
506 | |||
507 | [config] (label);; | ||
508 | Inserts a fluxbox native submenu item, containing numerous | ||
509 | configuration options concerning window placement, focus style, window | ||
510 | moving style, etc. | ||
511 | |||
512 | [wallpaper] (label);; | ||
513 | This allows you to list your backgrounds. This tag is built in to use | ||
514 | fbsetbg(1) and allows you to simply click on an image to set your | ||
515 | wallpaper. See? fluxbox makes it easy... | ||
516 | |||
517 | [workspaces] (label);; | ||
518 | This tells fluxbox to insert a link to the workspaces menu directly | ||
519 | into your menu. This is handy for those users who can't access the | ||
520 | workspace menu directly (e.g. if you don't have a 3 button mouse, it | ||
521 | is rather hard to middle click to show the workspace menu). | ||
522 | |||
523 | Any line that starts with a '#' or '!' is considered a comment and ignored by | ||
524 | fluxbox. Also, in the label/command/filename fields you can escape any character. | ||
525 | Using '\' inserts a literal back-slash into the label/command/filename field. | ||
526 | |||
527 | ------------------------------------------------------------------ | ||
528 | # fluxbox menu file | ||
529 | [begin] (fluxbox) | ||
530 | [exec] (rxvt) {rxvt -ls} </usr/X11R6/share/icons/terminal.xpm> | ||
531 | [exec] (netscape) {netscape -install} | ||
532 | [exec] (The GIMP) {gimp} | ||
533 | [exec] (XV) {xv} | ||
534 | [exec] (Vim) {rxvt -geometry 132x60 -name VIM -e screen vim} | ||
535 | [exec] (Mutt) {rxvt -name mutt -e mutt} | ||
536 | [submenu] (mozilla) | ||
537 | [exec] (browser) {mozilla -browser} | ||
538 | [exec] (news) {mozilla -news} | ||
539 | [exec] (mail) {mozilla -mail} | ||
540 | [exec] (edit) {mozilla -edit} | ||
541 | [exec] (compose) {mozilla -compose} | ||
542 | [end] | ||
543 | [submenu] (Window Manager) | ||
544 | [exec] (Edit Menus) {nedit ~/.fluxbox/menu} | ||
545 | [submenu] (Style) {Which Style?} | ||
546 | [stylesdir] (~/.fluxbox/styles) | ||
547 | [stylesmenu] (fluxbox Styles) {@pkgdatadir@/styles} | ||
548 | [end] | ||
549 | [config] (Config Options) | ||
550 | [reconfig] (Reconfigure) | ||
551 | [restart] (Restart) | ||
552 | [end] | ||
553 | [exit] (Log Out) | ||
554 | [end] | ||
555 | ------------------------------------------------------------------ | ||
556 | |||
557 | TOOLBAR | ||
558 | ------- | ||
559 | The toolbar is a small area to display information by fluxbox like a clock, | ||
560 | the identifier for the workspaces, a systemtray or a taskbar (iconbar) | ||
561 | that can contain the running programs. The color, look, font etc. is | ||
562 | defined in the the style and can't be defined as a global setting. | ||
563 | |||
564 | The parts of the Toolbar can be enabled/disabled in the Init-File with the | ||
565 | arguments given to the line: | ||
566 | |||
567 | session.screen0.toolbar.tools | ||
568 | |||
569 | The order and the count of the Tools is freely selectable and has to be | ||
570 | seperated by a ",". E.g.: | ||
571 | |||
572 | session.screen0.toolbar.tools: workspacename, systemtray, iconbar, clock | ||
573 | |||
574 | The possible parts (Tools) of the Toolbar are: | ||
575 | |||
576 | - *Clock*: | ||
577 | This will show an area to display a clock and the date according to the | ||
578 | format specification listed in "man strtftime" | ||
579 | |||
580 | - *Iconbar*: | ||
581 | This is the area that contains all windows (all running applications, all | ||
582 | minimized windows or maybe no window, all depending on the Toolbar Settings). | ||
583 | |||
584 | - *Systemtray*: | ||
585 | The Systemtray can hold Applications that are made to sit in it. | ||
586 | |||
587 | - *WorkspaceName*: | ||
588 | This displays the name of the actual name of the Workspace. | ||
589 | |||
590 | - *PrevWorkspace*: | ||
591 | This displays an arrow that allows to switch to the next Workspace left of | ||
592 | the actual. Same as MouseWheelDown with "Desktop MouseWheel Switching" | ||
593 | enabled. | ||
594 | |||
595 | - *NextWorkspace*: | ||
596 | This displays an arrow that allows to switch to the next Workspace right | ||
597 | of the actual. Same as MouseWheelUp with "Desktop MouseWheel Switching" | ||
598 | enabled. | ||
599 | |||
600 | - *PrevWindow*: | ||
601 | This displays an arrow that allows to gain focus of the previous visible | ||
602 | window on the actual workspace. | ||
603 | |||
604 | - *NextWindow*: | ||
605 | This displays an arrow that allows to gain focus of the next visible | ||
606 | window on the actual workspace. | ||
607 | |||
608 | |||
609 | The Toolbar can be configured in two ways. Either through the Configure-Menu | ||
610 | for the Toolbar, which is accessable in the Configuration Part of the | ||
611 | Root-Menu or with a right-click on the Workspace Name/Arrows/Clock in the | ||
612 | Toolbar, or by editing the Init-File by hand (Check the RESOURCES section for | ||
613 | more information about that). | ||
614 | |||
615 | |||
616 | Configuration via the Toolbar Menu | ||
617 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
618 | All Changes work on the fly and you can notice them immediately, except for a | ||
619 | change of the "Toolbar Alpha", that needs a restart to make the change | ||
620 | visible: | ||
621 | |||
622 | - *Visible*: | ||
623 | Sets the toolbar either to visible or invisible (Well, this should be | ||
624 | obvious). | ||
625 | |||
626 | session.screen0.toolbar.visible: <boolean> | ||
627 | |||
628 | - *Auto hide*: | ||
629 | If this is enabled the toolbar will disappear after a defined time when | ||
630 | the mouse-pointer leaves the area of the toolbar. It will slide in when | ||
631 | the cursor hits the remaining edge of the toolbar. The delay-time can be | ||
632 | set in init. | ||
633 | |||
634 | session.screen0.toolbar.autoHide: <boolean> | ||
635 | session.autoRaiseDelay: <int> | ||
636 | |||
637 | - *Toolbar width percentage*: | ||
638 | Sets the width of the toolbar in percent. Use the left mouse button to | ||
639 | decrease and the right mouse-button to increase the value. The value can | ||
640 | be from 0-100. | ||
641 | |||
642 | session.screen0.toolbar.widthPercent: <int> | ||
643 | |||
644 | - *Maximize Over*: | ||
645 | Enabling this option will prevent windows from maximizing over the | ||
646 | toolbar. With this switched on they will only dock to the edge of the bar. | ||
647 | To use this option, "Full Maximazition" from the fluxbox Configuration | ||
648 | menu has to be DISABLED. Otherwise this option will not work. | ||
649 | |||
650 | session.screen0.toolbar.maxOver: <boolean> | ||
651 | session.screen0.fullMaximization: <boolean> | ||
652 | |||
653 | - *Layer...*: | ||
654 | This sets the layer on which the toolbar is set. With this you can set the | ||
655 | toolbar to "Always on top". | ||
656 | |||
657 | session.screen0.toolbar.layer: <layer> | ||
658 | |||
659 | - *Placement*: | ||
660 | Sets the toolbar to either the top or the bottom edge of the screen with a | ||
661 | left, right or center alignment | ||
662 | |||
663 | session.screen0.toolbar.placement: <direction> | ||
664 | |||
665 | - *Alpha*: | ||
666 | This sets the alpa value for the toolbar. Use the left mouse-button to | ||
667 | decrease and the right mouse-button to increase the value. 0 is invisible, | ||
668 | 255 is not transparent at all. | ||
669 | |||
670 | session.screen0.toolbar.alpha: <int> | ||
671 | |||
672 | - *Iconbar Mode*: | ||
673 | |||
674 | Specifies the mode of the iconbar: | ||
675 | |||
676 | - *None*: | ||
677 | will show not a single window | ||
678 | - *Icons*: | ||
679 | will only show the windows of all workspaces that are minimzed | ||
680 | (iconified) | ||
681 | - *NoIcons*: | ||
682 | will only show the windows of all workspaces that are not minimzed | ||
683 | (iconified) | ||
684 | - *WorkspaceIcons*: | ||
685 | will only show the windows of the current workspace that are | ||
686 | minimzed (iconified) | ||
687 | - *WorkspaceNoIcons*: | ||
688 | will only show the windows of the current workspace that are not | ||
689 | minimzed (iconified) | ||
690 | - *Workspace*: | ||
691 | will show all windows of the current workspace | ||
692 | - *All Windows*: | ||
693 | will show all windows of all workspaces | ||
694 | |||
695 | session.screen0.iconbar.mode: <mode> | ||
696 | |||
697 | - *Alignment*: | ||
698 | |||
699 | - *Left*: | ||
700 | all Icons/Windows will be left aligned according to the width set in | ||
701 | init | ||
702 | - *Relative*: | ||
703 | all Icons/Windows will be averaged so that the iconbar will always be | ||
704 | completely filled | ||
705 | - *Right*: | ||
706 | all Icons/Windows will be left aligned according to the width set in | ||
707 | init | ||
708 | |||
709 | session.screen0.iconbar.alignment: <alignment> | ||
710 | session.screen0.iconbar.iconWidth: <int> | ||
711 | |||
712 | |||
713 | - *Show Pictures*: | ||
714 | If enabled the iconbar will show the Application's Icon (if it is | ||
715 | available) | ||
716 | |||
717 | session.screen0.iconbar.usePixmap: <boolean> | ||
718 | |||
719 | - *Clock*: | ||
720 | Lets you switch between the 00:00am - 12:00pm and 00:00-24:00 notation | ||
721 | |||
722 | - *Edit Clock Format*: | ||
723 | clicking this entry will pop up a little window in which the clock format | ||
724 | according to 'man strftime' can be set. | ||
725 | |||
726 | session.screen0.strftimeFormat: <format> | ||
727 | |||
728 | |||
729 | RESOURCES | ||
730 | --------- | ||
731 | Usually the ~/.fluxbox/init resource file is created and maintained by fluxbox | ||
732 | itself. You can use the [config] menu to set most of these options. However, | ||
733 | we'll cover all of the resource options that are available to the user. | ||
734 | If you edit this file while fluxbox is running, you must `restart' as to | ||
735 | reload the resource options. | ||
736 | |||
737 | When running fluxbox in a multiple desktop environment the screen0 key can | ||
738 | also be screen1, screenN etc. You can customize the behaviour of fluxbox on | ||
739 | each desktop accordingly. Here is an example, and a favourite of the fluxbox | ||
740 | documentation manager: | ||
741 | |||
742 | ................................................. | ||
743 | session.screen0.toolbar.onTop: False | ||
744 | session.screen0.toolbar.autoHide: True | ||
745 | session.screen0.toolbar.placement: BottomCenter | ||
746 | session.screen0.toolbar.widthPercent: 42 | ||
747 | session.screen0.slit.onTop: False | ||
748 | session.screen0.slit.autoHide: True | ||
749 | session.screen0.slit.placement: TopLeft | ||
750 | session.screen0.slit.direction: Vertical | ||
751 | session.screen0.strftimeFormat: %I:%M %p | ||
752 | session.screen1.toolbar.onTop: True | ||
753 | session.screen1.slit.autoHide: False | ||
754 | session.screen1.slit.placement: CenterRight | ||
755 | session.screen1.slit.direction: Vertical | ||
756 | session.screen1.strftimeFormat: %a %d %R [%s] | ||
757 | ................................................. | ||
758 | |||
759 | Here are the resources that are currently available: | ||
760 | |||
761 | .................................................................................... | ||
762 | session.screen0.window.focus.alpha: <integer> | ||
763 | session.screen0.window.unfocus.alpha: <integer> | ||
764 | These resources are available to the user to set different lev- | ||
765 | els of transparency for different components of fluxbox. Each | ||
766 | one accepts a value between 0-255, 255 being opaque and 0 being | ||
767 | completely transparent. Default: 255 | ||
768 | |||
769 | session.screen0.slit.autoHide: <boolean> | ||
770 | session.screen0.toolbar.autoHide: <boolean> | ||
771 | The autoHide resources allow the user to set the behaviour of | ||
772 | the toolbar and slit. This behaviour can be that they disappear | ||
773 | when they are not being used actively by the user, or they | ||
774 | remain visible at all times. Default: <boolean> | ||
775 | |||
776 | session.screen0.desktopwheeling: <boolean> | ||
777 | session.screen0.toolbar.wheeling: <boolean> | ||
778 | These set the ability to utilize the users mouse scroll wheel. | ||
779 | Setting these values to `<boolean>' allows the user to essentially | ||
780 | scroll through workspaces or applications on the toolbar. | ||
781 | Default: <boolean> | ||
782 | |||
783 | session.screen0.slit.layer: <layer> | ||
784 | session.screen0.toolbar.layer: <layer> | ||
785 | With these two resources, you can set the layer you want the | ||
786 | toolbar and the slit to appear on. Please read the LAYER sec- | ||
787 | tion for more information. Default: Desktop | ||
788 | |||
789 | session.screen0.slit.onTop: <boolean> | ||
790 | session.screen0.toolbar.onTop: <boolean> | ||
791 | A user can set whether or not the toolbar or slit are always on | ||
792 | top of the screen. Setting these resources will put the slit | ||
793 | and toolbar above everything visible in the window. Default: | ||
794 | False | ||
795 | |||
796 | session.screen0.slit.placement: <placement> | ||
797 | session.screen0.toolbar.placement: <placement> | ||
798 | These allow a user to place the slit and toolbar where ever they | ||
799 | like. Possible options are: | ||
800 | - BottomCenter | ||
801 | - BottomLeft | ||
802 | - BottomRight | ||
803 | - LeftCenter | ||
804 | - RightCenter | ||
805 | - TopCenter | ||
806 | - TopLeft | ||
807 | - TopRight | ||
808 | |||
809 | session.screen0.slit.maxOver: <boolean> | ||
810 | session.screen0.toolbar.maxOver: <boolean> | ||
811 | Setting these to `<boolean>' will allow application windows to maximize | ||
812 | over the complete screen. Setting to `<boolean>' allows the slit and | ||
813 | toolbar to hold their territory and will always be visible when an | ||
814 | application is maximized. Default: <boolean> | ||
815 | |||
816 | session.screen0.toolbar.height: <integer> | ||
817 | Set the height of the toolbar. Default: 0 | ||
818 | If the value is set to 0, the style file will gain control over the | ||
819 | toolbar height. It is possible to set a fixed height by changing it in | ||
820 | the init to something >0. | ||
821 | |||
822 | session.screen0.toolbar.visible: <boolean> | ||
823 | The user can set whether they want to have a toolbar on screen at | ||
824 | all. Setting to `<boolean>' removes the toolbar from the screen. This | ||
825 | ultimately depends on whether or not the toolbar was compiled into | ||
826 | the fluxbox build. The default is that the toolbar will be visible. | ||
827 | Default: <boolean> | ||
828 | |||
829 | session.screen0.toolbar.widthPercent: <integer> | ||
830 | This resource sets the width of the toolbar on the screen to | ||
831 | integer. Default: 100 | ||
832 | |||
833 | session.screen0.toolbar.tools: <tools> | ||
834 | This resource specifies the tools plugged into the toolbar. Read | ||
835 | the TOOLBAR section in this manual for a description of each of | ||
836 | these. Possible tools:: | ||
837 | - clock | ||
838 | - iconbar | ||
839 | - nextwindow | ||
840 | - prevwindow | ||
841 | - nextworkspace | ||
842 | - prevworkspace | ||
843 | - systemtray | ||
844 | - workspacename | ||
845 | |||
846 | session.screen0.slit.onhead: <integer> | ||
847 | session.screen0.toolbar.onhead: <integer> | ||
848 | For those that have dual head systems, users can set this value | ||
849 | to the number of the screen where they would like to see the | ||
850 | slit and toolbar. Default: 0 | ||
851 | |||
852 | session.screen0.iconbar.iconWidth: 70 | ||
853 | session.screen0.iconbar.mode: <mode> | ||
854 | This value is set in the Iconbar Mode menu. The available | ||
855 | options are:: | ||
856 | - All Windows | ||
857 | - Icons | ||
858 | - None | ||
859 | - Workspace | ||
860 | - WorkspaceIcons | ||
861 | |||
862 | session.screen0.iconbar.usePixmap: <boolean> | ||
863 | This is also set in the Iconbar Mode menu. When set to `<boolean>' | ||
864 | this will show the native icon of applications. Default: <boolean> | ||
865 | |||
866 | session.screen0.iconbar.iconTextPadding: 10l | ||
867 | session.screen0.iconbar.deiconifyMode: Current | ||
868 | session.screen0.iconbar.wheelMode: Screen | ||
869 | session.screen0.iconbar.alignment: <position> | ||
870 | This value should be changed in the Iconbar Mode menu. Default: | ||
871 | Relative | ||
872 | |||
873 | Available options: | ||
874 | - Left: Fixed width, aligned left | ||
875 | - Relative | ||
876 | - Right: Fixed width, aligned right | ||
877 | |||
878 | session.screen0.iconbar.clientWidth: <integer> | ||
879 | Used to specify the iconbar button width for Left/Right align- | ||
880 | ment. Default: 0 | ||
881 | |||
882 | session.screen0.overlay.lineWidth: 1 | ||
883 | session.screen0.overlay.lineStyle: LineSolid | ||
884 | session.screen0.overlay.joinStyle: JoinMiter | ||
885 | session.screen0.overlay.capStyle: CapNotLast | ||
886 | session.screen0.slit.direction: Vertical | ||
887 | session.screen0.strftimeFormat: <date> | ||
888 | This adjusts the way the current time is displayed in the tool- | ||
889 | bar. The strftime(3) format is used. Default: %I:%M %p | ||
890 | |||
891 | session.screen0.tab.alignment: Left | ||
892 | session.screen0.tab.height: 16 | ||
893 | session.screen0.tab.placement: Top | ||
894 | session.screen0.tab.rotatevertical: True | ||
895 | session.screen0.tab.width: 64 | ||
896 | session.screen0.followModel: Ignore | ||
897 | session.screen0.rowPlacementDirection: LeftToRight | ||
898 | session.screen0.colPlacementDirection: TopToBottom | ||
899 | session.screen0.resizeMode: Bottom | ||
900 | session.screen0.focusModel: ClickToFocus | ||
901 | session.screen0.autoRaise: <boolean> | ||
902 | session.screen0.clickRaises: <boolean> | ||
903 | session.screen0.workspacewarping: <boolean> | ||
904 | session.screen0.showwindowposition: <boolean> | ||
905 | Setting this resource to `<boolean>' shows the user, in a little window, | ||
906 | the exact position of the application window while the user is | ||
907 | dragging it. Allows a precise placement of windows on a screen. | ||
908 | Default: <boolean> | ||
909 | |||
910 | session.screen0.decorateTransient: <boolean> | ||
911 | session.screen0.showposinsidewindow: <boolean> | ||
912 | session.screen0.menuMode: Delay | ||
913 | session.screen0.focusNewWindows: <boolean> | ||
914 | session.screen0.workspaceNames: workspace1, workspaceN | ||
915 | Here is where the user can name their workspaces. However it is | ||
916 | recommended to use the tool available in the Configuration Menu to | ||
917 | set these. Default: one, two, three, four | ||
918 | |||
919 | session.screen0.menuDelayClose: 0 | ||
920 | This value sets the delay (in milli-sec) that you would like the | ||
921 | menu to remain visible after you've clicked out of it. Default: 0 | ||
922 | |||
923 | session.screen0.edgeSnapThreshold: <integer> | ||
924 | When moving a window across your screen, fluxbox is able to have it | ||
925 | `snap' to the edges of the screen for easy placement. This variable | ||
926 | tells fluxbox the distance (in pixels) at which the window will jump | ||
927 | to the edge. Default: 0 | ||
928 | |||
929 | session.screen0.windowPlacement: RowSmartPlacement | ||
930 | |||
931 | session.screen0.fullMaximization: <boolean> | ||
932 | session.screen0.sloppywindowgrouping: <boolean> | ||
933 | session.screen0.rootCommand: <command> | ||
934 | This overrides the styles rootCommand. When this value is set, it | ||
935 | will keep your background the same, regardless of what any style | ||
936 | would like your background to be. NOTE: Setting this command can be | ||
937 | dangerous. Please make sure you know what you are doing when setting | ||
938 | this resource to a value other than a desktop wallpaper command. | ||
939 | |||
940 | session.screen0.imageDither: <boolean> | ||
941 | session.screen0.opaqueMove: <boolean> | ||
942 | Sets the visibility level of application windows while being | ||
943 | dragged. Default: <boolean> | ||
944 | |||
945 | session.screen0.menuDelay: <msec> | ||
946 | session.screen0.workspaces: <integer> | ||
947 | Set this to the number of workspaces the users wants. Default: 4 | ||
948 | |||
949 | session.screen0.focusLastWindow: <boolean> | ||
950 | session.screen0.windowMenu: | ||
951 | |||
952 | session.appsFile: <location> | ||
953 | session.groupFile: <location> | ||
954 | session.keyFile: <location> | ||
955 | session.menuFile: <location> | ||
956 | session.slitlistFile: <location> | ||
957 | session.styleFile: <location> | ||
958 | All of these resources require a pathname to their specific | ||
959 | requests.This is where you can specify different files. Most of | ||
960 | the defaults will be located in the users ~/.fluxbox directory. | ||
961 | |||
962 | session.autoRaiseDelay: <integer> | ||
963 | Adjusts the delay (in milli-sec) before focused windows will raise | ||
964 | when using the Autoraise option. Default: 250 | ||
965 | |||
966 | session.cacheLife: <integer> | ||
967 | This tells fluxbox how long (in minutes) unused pixmaps may stay in | ||
968 | the X server's memory. Default: 5 | ||
969 | |||
970 | session.cacheMax: <integer> | ||
971 | This tells fluxbox how much memory (in Kb) it may use to store | ||
972 | cached pixmaps on the X server. If your machine runs short of | ||
973 | memory, you may lower this value. Default: 200 | ||
974 | |||
975 | session.colorsPerChannel: <integer> | ||
976 | This tells fluxbox how many colors to take from the X server on | ||
977 | pseudo-color displays. A channel would be red, green, or blue. | ||
978 | fluxbox will allocate this variable ^ 3 and make them always | ||
979 | available. Value must be between 2-6. When you run fluxbox on an | ||
980 | 8bpp display, you must set this resource to 4. Default: 4 | ||
981 | |||
982 | session.doubleClickInterval: <integer> | ||
983 | Adjust the delay (in milli-sec) between mouse clicks for fluxbox | ||
984 | to consider a double click. Default: 250 | ||
985 | |||
986 | session.forcePseudoTransparency: <boolean> | ||
987 | session.focusTabMinWidth: 0 | ||
988 | session.iconbar: <boolean> | ||
989 | Set this value to `<boolean>' or `<boolean>' to enable or disable fluxbox | ||
990 | using the toolbar to display iconified windows. Default: <boolean> | ||
991 | |||
992 | session.ignoreBorder: <boolean> | ||
993 | session.imageDither: <boolean> | ||
994 | Set `<boolean>' or `<boolean>', respectively, to enable or disable dithering | ||
995 | of images. Only necessary on systems with small colour depths (8bpp | ||
996 | or less). Default: <boolean> | ||
997 | |||
998 | session.numLayers: 13 | ||
999 | session.opaqueMove: <boolean> | ||
1000 | When moving a window, setting this to `<boolean>' will draw the window | ||
1001 | contents as it moves (this is nasty on slow systems). If `<boolean>' it | ||
1002 | will only draw an outline of the window border. Default: <boolean> | ||
1003 | |||
1004 | session.tabs: <boolean> | ||
1005 | session.tabPadding: 0 | ||
1006 | session.tabsAttachArea: Window | ||
1007 | session.titlebar.left: Stick | ||
1008 | session.titlebar.right: Minimize Maximize Close | ||
1009 | session.updateDelayTime: 0 | ||
1010 | session.useMod1: <boolean> | ||
1011 | .................................................................................... | ||
1012 | |||
1013 | |||
1014 | KEYS | ||
1015 | ---- | ||
1016 | You can customize fluxbox's key handling through the ~/.fluxbox/keys file. The | ||
1017 | file takes the format of: | ||
1018 | |||
1019 | <modifier> <key> :[...] <operation> | ||
1020 | |||
1021 | In the example below, Mod1 is the 'ALT' key on the PC keyboard and Mod4 is one | ||
1022 | of the three extra keys on a pc104 branded with a familiar company logo. | ||
1023 | Lines beginning with a '#' or '!' are considered comments and unread by fluxbox. | ||
1024 | |||
1025 | ............................ | ||
1026 | # fluxbox keys file. | ||
1027 | Mod1 Tab :NextWindow | ||
1028 | Mod1 Shift Tab :PrevWindow | ||
1029 | Mod1 F1 :Workspace 1 | ||
1030 | Mod1 F2 :Workspace 2 | ||
1031 | Mod1 F3 :Workspace 3 | ||
1032 | Mod1 F4 :Workspace 4 | ||
1033 | Mod1 F5 :Workspace 5 | ||
1034 | Mod1 F6 :Workspace 6 | ||
1035 | Mod1 F7 :Workspace 7 | ||
1036 | Mod1 F8 :Workspace 8 | ||
1037 | Mod1 F9 :Workspace 9 | ||
1038 | Mod4 b :PrevWorkspace | ||
1039 | Mod4 c :Minimize | ||
1040 | Mod4 r :ExecCommand rxvt | ||
1041 | Mod4 v :NextWorkspace | ||
1042 | Mod4 x :Close | ||
1043 | Mod4 m :RootMenu | ||
1044 | Control n Mod1 n :NextTab | ||
1045 | ............................ | ||
1046 | |||
1047 | As you can see from the last line, keybindings can be chained in a fashion | ||
1048 | similar to Emacs keybindings. | ||
1049 | |||
1050 | Some things to know: | ||
1051 | - Commands are case-insensitive. | ||
1052 | - Workspace numbering starts at "1". | ||
1053 | - Some commands have synonyms. | ||
1054 | - The space between the last key and the :Command is mandatory. | ||
1055 | |||
1056 | Here are fluxbox key commands to use: | ||
1057 | |||
1058 | Window Manager Commands | ||
1059 | ~~~~~~~~~~~~~~~~~~~~~~~ | ||
1060 | - Restart <argument> | ||
1061 | - Quit | ||
1062 | - Reconfigure | ||
1063 | - SetStyle <argument> | ||
1064 | - ExecCommand <argument> | ||
1065 | |||
1066 | Currently Focused Window Commands | ||
1067 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
1068 | - Minimize | ||
1069 | - MinimizeWindow | ||
1070 | - Iconify | ||
1071 | - Maximize | ||
1072 | - MaximizeWindow | ||
1073 | - MaximizeHorizontal | ||
1074 | - MaximizeVertical | ||
1075 | - ResizeTo <width> <height> | ||
1076 | - Resize <delta-width> <delta-height> | ||
1077 | - ResizeHorizontal <delta-width> | ||
1078 | - ResizeVertical <delta-height> | ||
1079 | - MoveTo <x> <y> | ||
1080 | - Move <delta-x> <delta-y> | ||
1081 | - MoveRight <delta-x> | ||
1082 | - MoveLeft <delta-x> | ||
1083 | - MoveUp <delta-y> | ||
1084 | - MoveDown <delta-y> | ||
1085 | - Raise | ||
1086 | - Lower | ||
1087 | - Close | ||
1088 | - Shade | ||
1089 | - ShadeWindow | ||
1090 | - Stick | ||
1091 | - StickWindow | ||
1092 | - ToggleDecor | ||
1093 | - SendToWorkspace <number> | ||
1094 | - SentToWorkspace <number> | ||
1095 | - KillWindow | ||
1096 | - NextTab | ||
1097 | - PrevTab | ||
1098 | - MoveTabLeft | ||
1099 | - MoveTabRight | ||
1100 | - DetachClient | ||
1101 | |||
1102 | Workspace Commands | ||
1103 | ~~~~~~~~~~~~~~~~~~ | ||
1104 | - NextWorkspace | ||
1105 | - PrevWorkspace | ||
1106 | - RightWorkspace <by-number> | ||
1107 | - LeftWorkspace <by-number> | ||
1108 | - Workspace <number> | ||
1109 | - NextWindow <bitmask> | ||
1110 | - PrevWindow <bitmask> | ||
1111 | - NextGroup <by-number> | ||
1112 | - PrevGroup <by-number> | ||
1113 | - ArrangeWindows | ||
1114 | - ShowDesktop (Iconifies all windows) | ||
1115 | - RootMenu | ||
1116 | - WorkspaceMenu | ||
1117 | - WindowMenu | ||
1118 | - SetWorkspaceName <name> | ||
1119 | |||
1120 | Special Commands | ||
1121 | ~~~~~~~~~~~~~~~~ | ||
1122 | - MacroCmd | ||
1123 | - ReloadStyle | ||
1124 | - SetResourceValue <resourcename> <resource> value | ||
1125 | - BindKey <key><value>: <action> | ||
1126 | |||
1127 | Couple of things | ||
1128 | ~~~~~~~~~~~~~~~~ | ||
1129 | - SentToWorkspace: | ||
1130 | Will send you along with the window to the selected workspace. | ||
1131 | SendToWorkspace just sends the window. | ||
1132 | |||
1133 | - PrevWindow/NextWindow parameters take an integer: | ||
1134 | 0 or unspecified = Default/current behavior - no skipping | ||
1135 | 1 = Skip lower tabs | ||
1136 | 2 = Skip stuck windows | ||
1137 | 3 = Skip lower tabs/stuck windows | ||
1138 | 4 = Skip shaded windows | ||
1139 | 5 = Skip lower tabs/shaded windows | ||
1140 | 6 = Skip stuck windows/shaded windows | ||
1141 | 7 = Skip lower tabs/stuck windows/shaded windows | ||
1142 | |||
1143 | - Bindkey will append key string and action to your keys file and bind the key. | ||
1144 | |||
1145 | - The 'delta' value means the difference between the current setting and the | ||
1146 | requested setting. So if you have a window that is 100 pixels wide, you could | ||
1147 | set | ||
1148 | |||
1149 | ........................... | ||
1150 | Mod1 r :ResizeHorizontal 10 | ||
1151 | ............................ | ||
1152 | |||
1153 | and when you use that key it would increase the size of your window | ||
1154 | to 110 pixels. If you had used | ||
1155 | |||
1156 | ............................. | ||
1157 | Mod1 R :ResizeHorizontal -10 | ||
1158 | ............................. | ||
1159 | |||
1160 | then it would have decreased the size by 10, setting it to 90 pixels. | ||
1161 | |||
1162 | - Resize commands do not necessarily change the number of pixels. For | ||
1163 | instance, many terminals will use the size of a character as the resize | ||
1164 | unit. Most applications, however, use pixels. | ||
1165 | |||
1166 | - MacroCmd: | ||
1167 | |||
1168 | ...................................... | ||
1169 | Mod1 r MacroCmd: {command1} {command2} | ||
1170 | ...................................... | ||
1171 | |||
1172 | allows you to execute more than one command with one keybinding. The commands | ||
1173 | will be executed in serial. | ||
1174 | |||
1175 | LAYERS | ||
1176 | ------ | ||
1177 | Layers affect the way that windows will overlap each other on the screen. | ||
1178 | Windows on a higher layer will always appear above those on a lower one, | ||
1179 | whether they are focused or not. By default, fluxbox uses 13 layers, | ||
1180 | starting from 1 (highest). The number of layers can be changed by | ||
1181 | using the following resource: | ||
1182 | |||
1183 | session.numLayers: <integer> | ||
1184 | |||
1185 | There are two ways to assign a window to a different layer. When the window is | ||
1186 | open, you may select the layer in the `Layer ...' submenu of the window menu. | ||
1187 | The menu gives six choices for the layer, which fluxbox manages by name. The | ||
1188 | names are (from highest to lowest layer): | ||
1189 | |||
1190 | * 2 - Above Dock | ||
1191 | * 4 - Dock | ||
1192 | * 6 - Top | ||
1193 | * 8 - Normal | ||
1194 | * 10 - Bottom | ||
1195 | * 12 - Desktop | ||
1196 | |||
1197 | The other way to set the layer for a window is through the `apps' file. This | ||
1198 | method is described in the APPLICATIONS section. | ||
1199 | |||
1200 | |||
1201 | FOCUS MODEL | ||
1202 | ----------- | ||
1203 | The Focus Model defines how windows gain focus (i.e. become the active window, | ||
1204 | which receives keyboard and mouse events). The focus model can be changed in | ||
1205 | the configuration menu (usually located under 'fluxbox menu' in the Root Menu. | ||
1206 | |||
1207 | There are two main aspects of the focus model: how windows gain focus and how | ||
1208 | tabs gain focus. Each of these has two options: focus follows mouse and click | ||
1209 | to focus. Focus follows mouse means that windows will gain focus when the mouse | ||
1210 | hovers over them. Click to focus means that windows will gain focus when the | ||
1211 | mouse clicks on them. | ||
1212 | |||
1213 | Thus, there are four main options when choosing a focus model. You should choose | ||
1214 | one of the first two and one of the last two. They are: | ||
1215 | |||
1216 | - *Click To Focus*: | ||
1217 | click to focus windows | ||
1218 | - *Mouse Focus*: | ||
1219 | window focus follows mouse | ||
1220 | - *ClickTabFocus*: | ||
1221 | click to focus tabs | ||
1222 | - *MouseTabFocus*: | ||
1223 | tab focus follows mouse | ||
1224 | |||
1225 | There is one more option in the focus model menu. It is called AutoRaise. When | ||
1226 | AutoRaise is enabled, focused windows will appear on top of other windows in | ||
1227 | the same layer. When AutoRaise is disabled, you must explicitly raise a focused | ||
1228 | window, using the window menu or keybinding. | ||
1229 | |||
1230 | STYLES | ||
1231 | ------ | ||
1232 | fluxbox enables you to use specialized files that contain X(1) resources to | ||
1233 | specify colors, textures, pixmaps and fonts, and thus the overall look of your | ||
1234 | window borders, menus and the toolbar. | ||
1235 | |||
1236 | The default installation of fluxbox provides some of these style files. See | ||
1237 | fluxstyle(1) to accomodate the growing number of style components. | ||
1238 | |||
1239 | APPLICATIONS | ||
1240 | ------------ | ||
1241 | It is possible to force an application to always have the same dimensions, | ||
1242 | position, and other settings when it is first launched. This is done using | ||
1243 | either the window-menu `Remember...' submenu, or by directly using the | ||
1244 | ~/.fluxbox/apps file. Be careful to edit the apps file manually only when | ||
1245 | fluxbox is not running. Otherwise your changes will be overwritten. Following | ||
1246 | is a listing of the valid entries for the `apps' file. The `Remember...' | ||
1247 | submenu has entries for most options that stores the current state in the `apps' | ||
1248 | file for loading next time. | ||
1249 | |||
1250 | The format of a line in the `apps' file is: | ||
1251 | |||
1252 | .................................... | ||
1253 | [app] (app-name) {count - optional} | ||
1254 | [Property1] {value1} | ||
1255 | [Property2] {value2} | ||
1256 | ... | ||
1257 | [end] | ||
1258 | .................................... | ||
1259 | |||
1260 | Each app-name can be a string, or a regular expression. By default the name | ||
1261 | is matched against a windows WM_CLASS property (the first string in it, called | ||
1262 | the "instance"). You can match against the title, instance name | ||
1263 | (default), class name, or role (the WM_WINDOW_ROLE property) by explicitly | ||
1264 | specifying it. You can also specify multiple matches, which must ALL match | ||
1265 | for the properties to be applied. If a count is supplied in curly brackets at | ||
1266 | the end of the app line, then the entry will only match at most count at any | ||
1267 | time (default is to match all matching windows). | ||
1268 | |||
1269 | ................................................................... | ||
1270 | # match a standard xterm | ||
1271 | [app] (xterm) | ||
1272 | # match an xterm started like: xterm -name myshell | ||
1273 | [app] (myshell) | ||
1274 | # match any one Firefox window (the instance name is "Gecko") | ||
1275 | [app] (class=Firefox-bin) {1} | ||
1276 | # match the gaim buddy list window | ||
1277 | [app] (role=buddy_list) | ||
1278 | # match an rdesktop window to a particular host | ||
1279 | [app] (title=rdesktop - hostname.*) | ||
1280 | ................................................................... | ||
1281 | |||
1282 | The following are the properties that can be defined in each [app] entry. | ||
1283 | Each name must be enclosed in square brackets, and the value is generally in | ||
1284 | curly brackets: | ||
1285 | |||
1286 | - [Workspace] \{0-N\}: | ||
1287 | Forces the application to open on the workspace specified. Workspaces are | ||
1288 | set by number, beginning with 0. | ||
1289 | |||
1290 | - [Dimensions] \{Width Height\}: | ||
1291 | Open the application with the specified width and height, in pixels. | ||
1292 | |||
1293 | - [Position] (*refspot*)) {X Y}: | ||
1294 | Position the application at a particular spot: | ||
1295 | + | ||
1296 | * WINCENTER | ||
1297 | * CENTER | ||
1298 | * UPPERLEFT | ||
1299 | * UPPERRIGHT | ||
1300 | * LOWERLEFT | ||
1301 | * LOWERRIGHT | ||
1302 | + | ||
1303 | |||
1304 | You can optionally specify what X and Y are relative to. By default the | ||
1305 | upper left corner is placed at screen coordinates (X, Y). If you specify | ||
1306 | LOWERRIGHT, then the lower right corner of the window is positioned (X,Y) | ||
1307 | pixels from the lower right of the screen. Note that CENTER puts the top | ||
1308 | left corner of the window relative to the center of the screen (WINCENTER | ||
1309 | acts like the rest - positions the center of the window relative to the | ||
1310 | center of the screen). | ||
1311 | |||
1312 | - [Layer] {Layernum}: | ||
1313 | Specify the layer to open the window on (by number). Each layer has a | ||
1314 | number. The named ones are: 2-AboveDock, 4-Dock, 6-Top, 8-Normal, | ||
1315 | 10-Bottom, 12-Desktop. | ||
1316 | |||
1317 | - [Shaded] {yes|no}: | ||
1318 | The window is started shaded, or not. | ||
1319 | |||
1320 | - [Tab] {yes|no}: | ||
1321 | Whether this window can be tabbed with others. | ||
1322 | |||
1323 | - [IconHidden] {yes|no}: | ||
1324 | Hides the app from the icon bar | ||
1325 | |||
1326 | - [FocusHidden] {yes|no}: | ||
1327 | Hides the app from the window cycling list used Next/PrevWindow key | ||
1328 | bindings. | ||
1329 | |||
1330 | - [Hidden] {yes|no}: | ||
1331 | is both [IconHidden] plus [FocusHidden] | ||
1332 | |||
1333 | - [Deco] {NONE|NORMAL|TOOL|TINY|BORDER}: | ||
1334 | Specify the decoration state. There are several predefined dec- | ||
1335 | oration sets: | ||
1336 | |||
1337 | o NORMAL - standard decorations | ||
1338 | o NONE - no decorations | ||
1339 | o BORDER - like NONE except keep the X window border | ||
1340 | o TINY - titlebar with an iconify button | ||
1341 | o TOOL - titlebar only | ||
1342 | |||
1343 | A bitmask can also be used for fine-grained control. The bits are (from | ||
1344 | "1" to 1<<10): titlebar, handle/grips, border, iconify button, maximize | ||
1345 | button, close button, menu enabled, sticky button, shade button, tabbing | ||
1346 | enabled, focus enabled. | ||
1347 | |||
1348 | - [Sticky] {yes|no}: | ||
1349 | Whether the window is initially stuck or not. | ||
1350 | |||
1351 | - [Jump] {yes|no}: | ||
1352 | Jump to workspace. This one is only useful if `Workspace' is set too. The | ||
1353 | workspace is changed to the workspace containing the application being | ||
1354 | launched. | ||
1355 | |||
1356 | - [Close] {yes|no}: | ||
1357 | Save settings on close. By default, application settings are not saved | ||
1358 | when a window is closed. Set this option if you want previous settings to | ||
1359 | be saved when the window is closed. | ||
1360 | |||
1361 | The apps file also allows you to specify applications that should be started | ||
1362 | on fluxbox startup using [startup] (options) {application} lines. Options | ||
1363 | could be used to specify the screen, not the workspace, on which the | ||
1364 | application should be started. Startup is not yet setable by menu. | ||
1365 | |||
1366 | Finally, you can set windows to group together by using the `apps' file. This | ||
1367 | is achieved with either regular expressions using: | ||
1368 | |||
1369 | [app] (property=expr) ... {number} | ||
1370 | |||
1371 | Property can be one of the following tags: | ||
1372 | |||
1373 | o name - the name of the window (the first field of WM_CLASS) | ||
1374 | o class - class of the window (the second field of WM_CLASS) | ||
1375 | o title - title of the window ( WM_NAME property) | ||
1376 | o role - role of the window (the WM_WINDOW_ROLE property) | ||
1377 | |||
1378 | If no `property' is specified, the name property is assumed. You can find out | ||
1379 | the value for these fields for a particular window by running xprop(1). | ||
1380 | |||
1381 | You can also place [group] tag around several [app] tags, with an [end] tag to | ||
1382 | indicate the end of the group. You can also specify dimensions, positions, | ||
1383 | etc. for the group as for normal app entries. Here is a short example | ||
1384 | of an `apps' file: | ||
1385 | |||
1386 | ......................................................... | ||
1387 | [startup] {xterm} | ||
1388 | # match anything ending with term, up to 2 instances | ||
1389 | [app] (.*[tT]erm) {2} | ||
1390 | # match anything with `gaim' in the title | ||
1391 | [app] (title=.*gaim.*) | ||
1392 | [app] (kate) | ||
1393 | [Dimensions] (WINCENTER) {1022 747} | ||
1394 | [Position] {0 0} | ||
1395 | [Close] {yes} | ||
1396 | [end] | ||
1397 | [app] (konqueror) | ||
1398 | [Workspace] {1} | ||
1399 | [Dimensions] {1006 749} | ||
1400 | [Position] {16 0} | ||
1401 | [Jump] {yes} | ||
1402 | [end] | ||
1403 | # start all aterms without decorations | ||
1404 | [app] (aterm) | ||
1405 | [Deco] {NONE} | ||
1406 | [end] | ||
1407 | # a group with all windows called "special-term", | ||
1408 | # appears on layer 4 (bottom) | ||
1409 | [group] | ||
1410 | [app] (special-term) | ||
1411 | [Layer] {4} | ||
1412 | [end] | ||
1413 | ......................................................... | ||
1414 | |||
1415 | Parameters in the `apps' file are case-sensitive. Application names are taken | ||
1416 | from the first X window WM_CLASS attribute by default (WM_NAME = title, | ||
1417 | WM_WINDOW_ROLE = role). You can see this attribute by using the xprop | ||
1418 | command. Transient windows are not affected by application settings. Take care | ||
1419 | when using regular expressions. If you are not familiar with regular | ||
1420 | expressions you can disable this feature by specifying --disable-regexp during | ||
1421 | configure. Plain strings will then be matched. | ||
1422 | |||
1423 | GROUPS | ||
1424 | ------ | ||
1425 | Since version 0.1.11, fluxbox has a feature called autogrouping, that is apps | ||
1426 | are automatically grouped together if they are in the same group. NOTE: that | ||
1427 | this feature is deprecated since version 0.9.1 in favor of grouping using the | ||
1428 | `apps' file, since it is much more powerful. | ||
1429 | |||
1430 | You can create groups simply by editing the ~/.fluxbox/groups file. This file | ||
1431 | takes the format of: | ||
1432 | |||
1433 | <app1> <app2> <app3> <...> <appN> | ||
1434 | |||
1435 | where elements can be found with this command: | ||
1436 | |||
1437 | .................. | ||
1438 | $> xprop WM_CLASS | ||
1439 | .................. | ||
1440 | |||
1441 | Just type this command into a terminal and use the mouse to click on the | ||
1442 | desired app and it will tell you what to write as an element (use the first of | ||
1443 | the two names returned). Each line forms a different group, e.g.: | ||
1444 | |||
1445 | ................ | ||
1446 | Navigator nedit | ||
1447 | xterm | ||
1448 | ................ | ||
1449 | |||
1450 | This will create two groups, one with netscape and nedit, and one with xterm. | ||
1451 | The new window will only group itself to other windows on the same workspace | ||
1452 | and to the last window that was focused. | ||
1453 | |||
1454 | THE SLIT | ||
1455 | -------- | ||
1456 | The slit is a special fluxbox window frame that can contain dockable | ||
1457 | applicatioins, e.g. 'bbtools' or 'wmapps'. | ||
1458 | |||
1459 | When applications are run in the slit they have no window borders of their | ||
1460 | own; instead they are framed in the slit, and they are always visible in the | ||
1461 | current workspace. | ||
1462 | |||
1463 | You can click button 3 on the edge of the slit window to get a menu to | ||
1464 | determine its position, whether its contained applications should be grouped | ||
1465 | horizontally or vertically and whether the slit should hide itself when the | ||
1466 | mouse moves away. | ||
1467 | |||
1468 | Most dockable applications use the -w option to run in the slit. For example, | ||
1469 | you could put in your ~/.xinitrc: | ||
1470 | |||
1471 | .............. | ||
1472 | bbmail -w & | ||
1473 | bbpager -w & | ||
1474 | wmdrawer & | ||
1475 | exec fluxbox | ||
1476 | .............. | ||
1477 | |||
1478 | NOTE: | ||
1479 | You can also put all of these in the startfluxbox(8) script. This way you | ||
1480 | would only need to specify: exec startfluxbox in your ~/.xinitrc. | ||
1481 | |||
1482 | To use the slit you must have it compiled into fluxbox, this is the default | ||
1483 | action. | ||
1484 | |||
1485 | Slitlist File | ||
1486 | ------------- | ||
1487 | fluxbox's slitlist file is available for those that use dockapps in the slit. | ||
1488 | This file helps fluxbox keep track of the *order* of the dockapps that you want | ||
1489 | started. The file is generally located in ~/.fluxbox/slitlist | ||
1490 | |||
1491 | A simple procedure for getting the slit sequences the way you like it is: | ||
1492 | 1. Run fluxbox with no pre-loaded dockapps | ||
1493 | 2. Run dockapps individually in the order you want them | ||
1494 | 3. Add dockapps to your auto-run script, or better yet your | ||
1495 | startfluxbox(8) script. | ||
1496 | |||
1497 | This sequence will be saved by default to ~/.fluxbox/slitlist and will be | ||
1498 | maintained in future versions of fluxbox. | ||
1499 | |||
1500 | Users are free to manually edit the slitlist file. It is a simple list of | ||
1501 | window names, one per dockapp. Similar to the init file it should not be | ||
1502 | edited while fluxbox is running. Otherwise changes may get overwritten. | ||
1503 | |||
1504 | The user also has the option of choosing a different path for the slit list | ||
1505 | file. The following is the init file component that needs changed: | ||
1506 | |||
1507 | session.session0.slitlistFile: <filename> | ||
1508 | |||
1509 | ENVIRONMENT | ||
1510 | ----------- | ||
1511 | HOME:: | ||
1512 | fluxbox uses HOME to find it's .fluxbox/init file, and to resolve style | ||
1513 | file and -directory names. | ||
1514 | |||
1515 | DISPLAY:: | ||
1516 | When no other display was given on the command line, fluxbox will start on | ||
1517 | the display specified by this variable. | ||
1518 | |||
1519 | fluxbox can also take advantage of other environment variables if they are set | ||
1520 | before fluxbox is started. For example, if $XTERM is set, then fluxbox will | ||
1521 | allow $XTERM to be used in keys and menu files. So one can do: | ||
1522 | |||
1523 | ........................... | ||
1524 | Mod1 x ExecCommand :$XTERM | ||
1525 | ........................... | ||
1526 | |||
1527 | The way of using this in a clever way are endless. | ||
1528 | |||
1529 | SIGNALS | ||
1530 | ------- | ||
1531 | fluxbox has the following signals and upon receipt of: | ||
1532 | |||
1533 | - SIGHUP fluxbox loads the configuration. | ||
1534 | - SIGUSR1 Forces reloading of configuration. | ||
1535 | - SIGUSR2 Forces reloading of menu file. | ||
1536 | |||
1537 | AUTHOR and CREDITS | ||
1538 | ------------------ | ||
1539 | fluxbox is written and maintained by Henrik Kinnunen <fluxgen at fluxbox org>, | ||
1540 | Simon Bowden <rathnor at fluxbox org> and Mathias Gumz <akira at fluxbox org>. | ||
1541 | with contributions and patches merged from many individuals around the world. | ||
1542 | |||
1543 | Blackbox was written and maintained by Brad Hughes <blackbox at alug org> and | ||
1544 | Jeff Raven <jraven at psu edu>. | ||
1545 | |||
1546 | The Official fluxbox website: http://www.fluxbox.org | ||
1547 | |||
1548 | Many compatible themes: | ||
1549 | - http://boxwhore.org | ||
1550 | - http://themes.freshmeat.net/ | ||
1551 | |||
1552 | This manpage is the combined work of: | ||
1553 | |||
1554 | - Curt Micol <asenchi at asenchi com> (>fluxbox-0.9.11) | ||
1555 | |||
1556 | - Tobias Klausmann <klausman at users sourceforge net> (<=fluxbox-0.9.11) | ||
1557 | - Grupert <grubert at users sourceforge net> (fluxbox) | ||
1558 | |||
1559 | - Matthew Hawkins <matt at mh dropbear id au> (blackbox) | ||
1560 | - Wilbert Berendsen <wbsoft at xs4all nl> (blackbox) | ||
1561 | |||
1562 | - Numerous other languages could be available if someone jumps in. | ||
1563 | |||
1564 | BUGS | ||
1565 | ---- | ||
1566 | If you find any bugs, please visit the #fluxbox irc channel on | ||
1567 | irc.freenode.net. Or you may subscribe to one of the mailinglists. More | ||
1568 | information can be found on the official website. | ||
1569 | |||
1570 | SEE ALSO | ||
1571 | -------- | ||
1572 | bsetroot(1) fbsetbg(1) fbrun(1) fluxstyle(1) | ||
diff --git a/src/CurrentWindowCmd.cc b/src/CurrentWindowCmd.cc index 7bc7977..de50c60 100644 --- a/src/CurrentWindowCmd.cc +++ b/src/CurrentWindowCmd.cc | |||
@@ -53,15 +53,15 @@ void SendToWorkspaceCmd::real_execute() { | |||
53 | } | 53 | } |
54 | 54 | ||
55 | void SendToNextWorkspaceCmd::real_execute() { | 55 | void SendToNextWorkspaceCmd::real_execute() { |
56 | const int ws_nr = | 56 | const int ws_nr = |
57 | ( fbwindow().screen().currentWorkspaceID() + m_workspace_num ) % | 57 | ( fbwindow().screen().currentWorkspaceID() + m_workspace_num ) % |
58 | fbwindow().screen().numberOfWorkspaces(); | 58 | fbwindow().screen().numberOfWorkspaces(); |
59 | fbwindow().screen().sendToWorkspace(ws_nr, &fbwindow(), false); | 59 | fbwindow().screen().sendToWorkspace(ws_nr, &fbwindow(), false); |
60 | } | 60 | } |
61 | 61 | ||
62 | void SendToPrevWorkspaceCmd::real_execute() { | 62 | void SendToPrevWorkspaceCmd::real_execute() { |
63 | int ws_nr = fbwindow().screen().currentWorkspaceID() - m_workspace_num; | 63 | int ws_nr = fbwindow().screen().currentWorkspaceID() - m_workspace_num; |
64 | if ( ws_nr < 0 ) | 64 | if ( ws_nr < 0 ) |
65 | ws_nr += fbwindow().screen().numberOfWorkspaces(); | 65 | ws_nr += fbwindow().screen().numberOfWorkspaces(); |
66 | fbwindow().screen().sendToWorkspace(ws_nr, &fbwindow(), false); | 66 | fbwindow().screen().sendToWorkspace(ws_nr, &fbwindow(), false); |
67 | } | 67 | } |
@@ -71,15 +71,15 @@ void TakeToWorkspaceCmd::real_execute() { | |||
71 | } | 71 | } |
72 | 72 | ||
73 | void TakeToNextWorkspaceCmd::real_execute() { | 73 | void TakeToNextWorkspaceCmd::real_execute() { |
74 | unsigned int workspace_num= | 74 | unsigned int workspace_num= |
75 | ( fbwindow().screen().currentWorkspaceID() + m_workspace_num ) % | 75 | ( fbwindow().screen().currentWorkspaceID() + m_workspace_num ) % |
76 | fbwindow().screen().numberOfWorkspaces(); | 76 | fbwindow().screen().numberOfWorkspaces(); |
77 | fbwindow().screen().sendToWorkspace(workspace_num, &fbwindow()); | 77 | fbwindow().screen().sendToWorkspace(workspace_num, &fbwindow()); |
78 | } | 78 | } |
79 | 79 | ||
80 | void TakeToPrevWorkspaceCmd::real_execute() { | 80 | void TakeToPrevWorkspaceCmd::real_execute() { |
81 | int workspace_num= fbwindow().screen().currentWorkspaceID() - m_workspace_num; | 81 | int workspace_num= fbwindow().screen().currentWorkspaceID() - m_workspace_num; |
82 | if ( workspace_num < 0 ) | 82 | if ( workspace_num < 0 ) |
83 | workspace_num += fbwindow().screen().numberOfWorkspaces(); | 83 | workspace_num += fbwindow().screen().numberOfWorkspaces(); |
84 | fbwindow().screen().sendToWorkspace(workspace_num, &fbwindow()); | 84 | fbwindow().screen().sendToWorkspace(workspace_num, &fbwindow()); |
85 | } | 85 | } |
@@ -125,12 +125,12 @@ ResizeCmd::ResizeCmd(const int step_size_x, const int step_size_y) : | |||
125 | m_step_size_x(step_size_x), m_step_size_y(step_size_y) { } | 125 | m_step_size_x(step_size_x), m_step_size_y(step_size_y) { } |
126 | 126 | ||
127 | void ResizeCmd::real_execute() { | 127 | void ResizeCmd::real_execute() { |
128 | 128 | ||
129 | int w = std::max<int>(static_cast<int>(fbwindow().width() + | 129 | int w = std::max<int>(static_cast<int>(fbwindow().width() + |
130 | m_step_size_x * fbwindow().winClient().width_inc), | 130 | m_step_size_x * fbwindow().winClient().width_inc), |
131 | fbwindow().frame().titlebarHeight() * 2 + 10); | 131 | fbwindow().frame().titlebarHeight() * 2 + 10); |
132 | int h = std::max<int>(static_cast<int>(fbwindow().height() + | 132 | int h = std::max<int>(static_cast<int>(fbwindow().height() + |
133 | m_step_size_y * fbwindow().winClient().height_inc), | 133 | m_step_size_y * fbwindow().winClient().height_inc), |
134 | fbwindow().frame().titlebarHeight() + 10); | 134 | fbwindow().frame().titlebarHeight() + 10); |
135 | fbwindow().resize(w, h); | 135 | fbwindow().resize(w, h); |
136 | } | 136 | } |
@@ -143,7 +143,7 @@ void MoveToCmd::real_execute() { | |||
143 | int y = 0; | 143 | int y = 0; |
144 | 144 | ||
145 | const int head = fbwindow().screen().getHead(fbwindow().fbWindow()); | 145 | const int head = fbwindow().screen().getHead(fbwindow().fbWindow()); |
146 | 146 | ||
147 | if (m_refc & MoveToCmd::LOWER) | 147 | if (m_refc & MoveToCmd::LOWER) |
148 | y = fbwindow().screen().maxBottom(head) - fbwindow().height() - 2 * fbwindow().frame().window().borderWidth() - m_step_size_y; | 148 | y = fbwindow().screen().maxBottom(head) - fbwindow().height() - 2 * fbwindow().frame().window().borderWidth() - m_step_size_y; |
149 | if (m_refc & MoveToCmd::UPPER) | 149 | if (m_refc & MoveToCmd::UPPER) |
@@ -157,7 +157,7 @@ void MoveToCmd::real_execute() { | |||
157 | x = fbwindow().x(); | 157 | x = fbwindow().x(); |
158 | if (m_refc & MoveToCmd::IGNORE_Y) | 158 | if (m_refc & MoveToCmd::IGNORE_Y) |
159 | y = fbwindow().y(); | 159 | y = fbwindow().y(); |
160 | 160 | ||
161 | fbwindow().move(x, y); | 161 | fbwindow().move(x, y); |
162 | } | 162 | } |
163 | 163 | ||
diff --git a/src/Workspace.hh b/src/Workspace.hh index 3415f47..135ac4d 100644 --- a/src/Workspace.hh +++ b/src/Workspace.hh | |||
@@ -22,8 +22,8 @@ | |||
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
23 | // DEALINGS IN THE SOFTWARE. | 23 | // DEALINGS IN THE SOFTWARE. |
24 | 24 | ||
25 | #ifndef WORKSPACE_HH | 25 | #ifndef WORKSPACE_HH |
26 | #define WORKSPACE_HH | 26 | #define WORKSPACE_HH |
27 | 27 | ||
28 | 28 | ||
29 | 29 | ||
@@ -42,7 +42,7 @@ class FluxboxWindow; | |||
42 | class WinClient; | 42 | class WinClient; |
43 | 43 | ||
44 | /** | 44 | /** |
45 | Handles a single workspace | 45 | Handles a single workspace |
46 | */ | 46 | */ |
47 | class Workspace:private FbTk::NotCopyable, private FbTk::Observer { | 47 | class Workspace:private FbTk::NotCopyable, private FbTk::Observer { |
48 | public: | 48 | public: |
@@ -51,7 +51,7 @@ public: | |||
51 | Workspace(BScreen &screen, FbTk::MultLayers &layermanager, const std::string &name, | 51 | Workspace(BScreen &screen, FbTk::MultLayers &layermanager, const std::string &name, |
52 | unsigned int workspaceid = 0); | 52 | unsigned int workspaceid = 0); |
53 | ~Workspace(); | 53 | ~Workspace(); |
54 | 54 | ||
55 | void setLastFocusedWindow(FluxboxWindow *w); | 55 | void setLastFocusedWindow(FluxboxWindow *w); |
56 | 56 | ||
57 | /// Set workspace name | 57 | /// Set workspace name |
@@ -66,19 +66,19 @@ public: | |||
66 | void updateClientmenu(); | 66 | void updateClientmenu(); |
67 | 67 | ||
68 | BScreen &screen() { return m_screen; } | 68 | BScreen &screen() { return m_screen; } |
69 | const BScreen &screen() const { return m_screen; } | 69 | const BScreen &screen() const { return m_screen; } |
70 | 70 | ||
71 | FluxboxWindow *lastFocusedWindow() { return m_lastfocus; } | 71 | FluxboxWindow *lastFocusedWindow() { return m_lastfocus; } |
72 | const FluxboxWindow *lastFocusedWindow() const { return m_lastfocus; } | 72 | const FluxboxWindow *lastFocusedWindow() const { return m_lastfocus; } |
73 | 73 | ||
74 | inline FbTk::Menu &menu() { return m_clientmenu; } | 74 | FbTk::Menu &menu() { return m_clientmenu; } |
75 | inline const FbTk::Menu &menu() const { return m_clientmenu; } | 75 | const FbTk::Menu &menu() const { return m_clientmenu; } |
76 | /// name of this workspace | 76 | /// name of this workspace |
77 | inline const std::string &name() const { return m_name; } | 77 | const std::string &name() const { return m_name; } |
78 | /** | 78 | /** |
79 | @return the number of this workspace, note: obsolete, should be in BScreen | 79 | @return the number of this workspace, note: obsolete, should be in BScreen |
80 | */ | 80 | */ |
81 | inline unsigned int workspaceID() const { return m_id; } | 81 | unsigned int workspaceID() const { return m_id; } |
82 | 82 | ||
83 | const Windows &windowList() const { return m_windowlist; } | 83 | const Windows &windowList() const { return m_windowlist; } |
84 | Windows &windowList() { return m_windowlist; } | 84 | Windows &windowList() { return m_windowlist; } |
@@ -98,14 +98,14 @@ private: | |||
98 | 98 | ||
99 | typedef std::vector<std::string> Group; | 99 | typedef std::vector<std::string> Group; |
100 | typedef std::vector<Group> GroupList; | 100 | typedef std::vector<Group> GroupList; |
101 | 101 | ||
102 | static GroupList m_groups; ///< handle auto groupings | 102 | static GroupList m_groups; ///< handle auto groupings |
103 | 103 | ||
104 | FbTk::MultLayers &m_layermanager; | 104 | FbTk::MultLayers &m_layermanager; |
105 | Windows m_windowlist; | 105 | Windows m_windowlist; |
106 | 106 | ||
107 | std::string m_name; ///< name of this workspace | 107 | std::string m_name; ///< name of this workspace |
108 | unsigned int m_id; ///< id, obsolete, this should be in BScreen | 108 | unsigned int m_id; ///< id, obsolete, this should be in BScreen |
109 | 109 | ||
110 | }; | 110 | }; |
111 | 111 | ||