aboutsummaryrefslogtreecommitdiff
path: root/doc/asciidoc/fluxbox-style.txt
diff options
context:
space:
mode:
authorJim Ramsay <i.am@jimramsay.com>2009-02-10 21:25:22 (GMT)
committerJim Ramsay <i.am@jimramsay.com>2009-05-26 20:14:47 (GMT)
commitbd8275b33cec5b0765b93e8905bfefcdfd994b73 (patch)
treee9c9d5e7a28c371604720ba4f6dcae0bb00ed135 /doc/asciidoc/fluxbox-style.txt
parent6a818df30e215e365dffcc1adfa71b26e408c4e0 (diff)
downloadfluxbox-bd8275b33cec5b0765b93e8905bfefcdfd994b73.zip
fluxbox-bd8275b33cec5b0765b93e8905bfefcdfd994b73.tar.bz2
Renamed fluxstyle(1) to fluxbox-style(5)
Diffstat (limited to 'doc/asciidoc/fluxbox-style.txt')
-rw-r--r--doc/asciidoc/fluxbox-style.txt496
1 files changed, 496 insertions, 0 deletions
diff --git a/doc/asciidoc/fluxbox-style.txt b/doc/asciidoc/fluxbox-style.txt
new file mode 100644
index 0000000..ce1d264
--- /dev/null
+++ b/doc/asciidoc/fluxbox-style.txt
@@ -0,0 +1,496 @@
1fluxbox-style(5)
2================
3Henrik Kinnunen <fluxgen@fluxbox.org>
4v1.1.1, 10 February 2009
5:man source: fluxbox-style.txt
6:man version: {revision}
7:man manual: Fluxbox Manual
8
9NAME
10----
11fluxbox-style - A comprehensive look at styles/themes for fluxbox(1).
12
13SYNOPSIS
14--------
15This document describes various options available for fluxbox styles.
16
17DESCRIPTION
18-----------
19What is a Style?
20
21Styles, sometimes referred to as Themes, are a graphical overlay for the
22fluxbox(1) window manager. If you wanted to get to know fluxbox, the styles
23would be the 'look' of the 'look and feel'.
24
25Styles are simple ASCII text files that tell fluxbox(1) how to generate the
26appearance of different components of the window manager. The default
27installation of fluxbox(1) is shipped with many classic examples that show a
28great deal of what one could do. To use one of the standard styles navigate to
29the 'System Styles' menu under your main fluxbox(1) menu.
30
31fluxbox(1) uses its own graphics class to render its images on the fly. By
32using styles you can determine, at a great level of configurability, what your
33desktop will look like. Since fluxbox(1) was derived from blackbox many often
34wonder if old themes will work on the latest releases of fluxbox(1). Well they
35basically do, but you will have to tune them since the fluxbox(1) code has
36changed quite a bit since the initial grab.
37
38STRUCTURE
39---------
40A style is made up of a few major components which then have their own
41sub-directives. The major components are as follows:
42
43The 'window.\*' directives control the appearance of the window frames,
44window.tab.* controls the appearance of the window tabs, 'menu.\*' controls
45the appearance of the popup menu that you see when you right click on the
46desktop. 'toolbar.\*' is the bar you will see at the top or bottom of your
47screen. Finally the 'slit.\*' has options you can use to customize the
48appearance of the slit. However if you don't set the slit directives
49specifically, the slit's appearance is controlled by the toolbar
50directives instead.
51
52To understand how the style mechanism works, it is nice to know a little about
53how X11 resources work. X11 resources consist of a key and a value. The key is
54constructed of several smaller keys (sometimes referred to as children),
55delimited by a period (.). Keys may also contain an asterisk (\*)
56to serve as a wildcard, which means that one line of text will match
57several keys. This is useful for styles that are based on one or two
58colors.
59
60A more complete reference to this can be found in X(7), section 'RESOURCES'.
61
62LOCATION
63--------
64There are many places to store your styles, the most common is in your
65'~/.fluxbox/styles' directory. The initial installation will place the default
66styles in '@pkgdatadir@/styles' providing a basic usable configuration.
67
68When creating your own style, create a directory (normally the name of your
69style) in '~/.fluxbox/styles/' (If the 'styles' directory doesn't exist,
70create that also). While there isn't an official structure, it is
71common to create a directory named after your style and place your
72pixmaps directory (if required) in there along with a file called
73theme.cfg (may also be named style.cfg). This file is where you will
74construct your style using the components covered later in this manual
75page. An example of steps taken when beginning a style project of your
76own may look like:
77
78 $ cd
79 $ mkdir -p ~/.fluxbox/styles/YourStyle/pixmaps
80 $ cd ~/.fluxbox/styles/YourStyle
81 $ nano theme.cfg
82
83Output of a packaged style should look like the following:
84
85 $ cd
86 $ tar -tjvf YourStyle.tar.bz2
87 .fluxbox/styles/YourStyle/theme.cfg
88 .fluxbox/styles/YourStyle/pixmaps
89 .fluxbox/styles/YourStyle/pixmaps/stick.xpm
90 ...
91
92Of course, all of these are just preferences, fluxbox(1) allows for the
93customization of many things, including how you handle your styles. Just
94remember, however, that if you plan to distribute your style you may find
95some community bickering if you don't follow practices. :)
96
97CREATING YOUR STYLE
98-------------------
99As discussed above, fluxbox(1) allows you to configure its four main components:
100the toolbar, menus, slit and window decorations. Remember that you can
101customize the slit with its own directives, otherwise the slit will take the
102appearance of the toolbar.
103
104Here are some quick examples to illustrate basic syntax:
105
106 toolbar.clock.color: green
107
108This sets the color resource of the toolbar clock to 'green'. Another example:
109
110 menu*color: rgb:3/4/5
111
112This sets the color resource of the menu and all of its 'children' to
113`rgb:3/4/5'. (For a description of color names, see X(1).) So this one also
114applies to 'menu.title.color' and 'menu.frame.color'. And with
115
116 *font: -b&h-lucida-medium-r-normal-*-*-140-*
117
118you set the font resource for all keys to this font name all at once (For
119information about the fonts installed on your system, you can use a
120program like xfontsel(1), gtkfontsel, or xlsfonts(1).)
121
122In the last example you will notice the wildcard (\*) before font. In a Fluxbox
123style you can set a value with a wildcard. The example means that every font
124in the style will be what is specified. You can do this with any
125component/value. For example if you wanted all of the text to be one color you
126would do:
127
128 *textColor: rgb:3/4/5
129
130This means that you can setup a very simple style with very few properties.
131See the EXAMPLES below for an example of this in practice. fluxbox(1) also allows
132you to override wildcards in your style. Lets take our example above and add
133an override for the toolbar.clock.textColor component:
134
135 *textColor: rgb:3/4/5
136 toolbar.clock.textColor: rgb:255/0/0
137
138With that all of the text will be 'rgb:3/4/5' except the toolbar clock text
139which will be 'rgb:255/0/0'.
140
141Now what makes fluxbox(1) so spectacular is its ability to render textures on the
142fly. A texture is a fillpattern that you see on some styles. Texture
143descriptions are specified directly to the key that they should apply to,
144e.g.:
145
146 toolbar.clock: Raised Gradient Diagonal Bevel1
147 toolbar.clock.color: rgb:8/6/4
148 toolbar.clock.colorTo: rgb:4/3/2
149
150Don't worry, we will explain what these mean. A texture description consists
151of up to five fields, which are as follows:
152
153.Flat | Raised | Sunken
154gives the component either a flat, raised or sunken appearance.
155
156.Gradient | Solid
157tells fluxbox(1) to draw either a solid color or a gradient texture.
158
159.Horizontal | Vertical | Diagonal | Crossdiagonal | Pipecross | Elliptic | Rectangle | Pyramid
160Select one of these texture types. They only work when *Gradient* is specified.
161
162.Interlaced
163tells fluxbox(1) to interlace the texture (darken every other line). This option
164is most commonly used with gradiented textures, but it also works in solid
165textures.
166
167.Bevel1 | Bevel2
168tells fluxbox(1) which type of bevel to use. Bevel1 is the default bevel. The
169shading is placed on the edge of the image. Bevel2 is an alternative. The
170shading is placed one pixel in from the edge of the image.
171
172Instead of a texture description, also the option *ParentRelative* is available,
173which makes the component appear as a part of its parent, e.g. totally
174transparent.
175
176Or for even more possibilities Pixmap. If pixmap texture is specified (it
177might not be necessary on every occasion) the pixmap file is specified
178in a separate pixmap resource.
179
180 toolbar.clock: pixmap
181 toolbar.clock.pixmap: clock_background.xpm
182
183This feature might need some investigation, reports say that sometimes the
184resources color and colorTo must be set and then they may not be set.
185
186All gradiented textures are composed of two color values: the 'color' and
187'colorTo' resources. When *Interlaced* is used in *Solid* mode, the 'colorTo'
188resource is used to find the interlacing color.
189
190A WORD ABOUT FONTS
191------------------
192We should comment about fonts before we move on to the complete component
193list. fluxbox(1) supports different options for text. These options currently
194include bold, halo and shadow. To set these do this: fontname-size:options for
195any of the font components in the style file. For example:
196
197 menu.title.font: sans-8:bold,shadow
198
199The latest versions of fluxbox(1) (> 0.9.8) also support different values for
200these text options. The possibilities are as follows:
201
202 --------
203 Shadow color=<colorname> offsetx=<integer> offsety=<integer> Halo color=<colorname>
204 --------
205
206For the case of completeness, here are some real world examples:
207
208 *.font: Verdana-10:bold,shadow:offsetx=2;offsety=4;color=green
209 *.font: Verdana-10:halo:color=blue
210
211Of course this could all be placed on one line. Also note that for the offset
212options, negative integers are allowed.
213
214FONT PROBLEMS
215~~~~~~~~~~~~~
216If you have problems installing fonts or getting them to work, you should read
217the docs page at xfree.org. Here is a link to one of these:
218http://xfree.org/4.3.0/fonts2.html#3[]
219
220FULL COMPONENT LIST
221-------------------
222Here is the exhaustive component list for fluxbox(1) styles. Each one is listed
223with their type of value required. Comments in a style file are preceded
224with an exclamation point (!) which we also use here so that these can be
225pasted into a new theme.cfg to be customized appropiately. Please note that
226in order to keep styles consistent it is often the practice of stylists
227to provide all of the theme-items in their style file even if they are not
228used. This allows the user the ease of changing different components.
229
230WINDOW OPTIONS
231--------------
232Many, many things you can do with window design in fluxbox(1), below are your
233options. Have fun.
234
235 -----------------------------------------
236 window.bevelWidth: <integer>
237 window.borderColor: <color>
238 window.borderWidth: <integer>
239 window.button.focus: <texture type>
240 window.button.focus.color: <color>
241 window.button.focus.colorTo: <color>
242 window.button.focus.picColor: <color>
243 window.button.focus.pixmap: <filename>
244 window.button.pressed: <texture type>
245 window.button.pressed.color: <color>
246 window.button.pressed.colorTo: <color>
247 window.button.pressed.pixmap: <filename>
248 window.button.unfocus: <texture type>
249 window.button.unfocus.color: <color>
250 window.button.unfocus.colorTo: <color>
251 window.button.unfocus.picColor: <color>
252 window.button.unfocus.pixmap: <filename>
253 window.close.pixmap: <filename>
254 window.close.pressed.pixmap: <filename>
255 window.close.unfocus.pixmap: <filename>
256 window.font: <font>
257 window.frame.focusColor: <color>
258 window.frame.unfocusColor: <color>
259 window.grip.focus: <texture type>
260 window.grip.focus.color: <color>
261 window.grip.focus.colorTo: <color>
262 window.grip.focus.pixmap: <filename>
263 window.grip.unfocus: <texture type>
264 window.grip.unfocus.color: <color>
265 window.grip.unfocus.colorTo: <color>
266 window.grip.unfocus.pixmap: <filename>
267 window.handle.focus: <texture type>
268 window.handle.focus.color: <color>
269 window.handle.focus.colorTo: <color>
270 window.handle.focus.pixmap: <filename>
271 window.handle.unfocus: <texture type>
272 window.handle.unfocus.color: <color>
273 window.handle.unfocus.colorTo: <color>
274 window.handle.unfocus.pixmap: <filename>
275 window.handleWidth: <integer>
276 window.iconify.pixmap: <filename>
277 window.iconify.pressed.pixmap: <filename>
278 window.iconify.unfocus.pixmap: <filename>
279 window.justify: <{Left|Right|Center}>
280 window.label.active: <texture type>
281 window.label.active.textColor: <color>
282 window.label.focus: <texture type>
283 window.label.focus.color: <color>
284 window.label.focus.colorTo: <color>
285 window.label.focus.pixmap: <filename>
286 window.label.unfocus: <texture type>
287 window.label.unfocus.color: <color>
288 window.label.unfocus.colorTo: <color>
289 window.label.unfocus.pixmap: <filename>
290 window.label.focus.textColor: <color>
291 window.label.unfocus.textColor: <color>
292 window.maximize.pixmap: <filename>
293 window.maximize.pressed.pixmap: <filename>
294 window.maximize.unfocus.pixmap: <filename>
295 window.roundCorners: <{Top|Bottom}{Left|Right}>
296 window.shade.pixmap: <filename>
297 window.shade.pressed.pixmap: <filename>
298 window.shade.unfocus.pixmap: <filename>
299 window.stick.pixmap: <filename>
300 window.stick.pressed.pixmap: <filename>
301 window.stick.unfocus.pixmap: <filename>
302 window.stuck.pixmap: <filename>
303 window.stuck.unfocus.pixmap: <filename>
304 window.title.focus: <texture type>
305 window.title.focus.color: <color>
306 window.title.focus.colorTo: <color>
307 window.title.focus.pixmap: <filename>
308 window.title.height: <integer>
309 window.title.unfocus: <texture type>
310 window.title.unfocus.color: <color>
311 window.title.unfocus.colorTo: <color>
312 window.title.unfocus.pixmap: <filename>
313 -----------------------------------------
314
315MENU OPTIONS
316------------
317Everything you need to make your menu look pretty.
318
319 -----------------------------------------
320 menu.bevelWidth: <integer>
321 menu.borderColor: <color>
322 menu.borderWidth: <integer>
323 menu.bullet: <{empty|square|triangle|diamond}>
324 menu.bullet.position: <{left|right}>
325 menu.frame: <texture type>
326 menu.frame.color: <color>
327 menu.frame.colorTo: <color>
328 menu.frame.disableColor: <color>
329 menu.frame.font: <font>
330 menu.frame.justify: <{Left|Right|Center}>
331 menu.frame.pixmap: <filename>
332 menu.frame.textColor: <color>
333 menu.hilite: <texture type>
334 menu.hilite.color: <color>
335 menu.hilite.colorTo: <color>
336 menu.hilite.pixmap: <filename>
337 menu.hilite.textColor: <color>
338 menu.itemHeight: <integer>
339 menu.title: <texture type>
340 menu.title.color: <color>
341 menu.title.colorTo: <color>
342 menu.title.font: <font>
343 menu.title.pixmap: <filename>
344 menu.title.textColor: <color>
345 menu.title.justify: <{Left|Right|Center}>
346 menu.titleHeight: <integer>
347 menu.roundCorners: <{Top|Bottom}{Left|Right}>
348 menu.selected.pixmap: <filename>
349 menu.submenu.pixmap: <filename>
350 menu.unselected.pixmap: <filename>
351 -----------------------------------------
352
353BACKGROUND
354------------
355Every style must specify the background option. If you don't want your style to
356change the user's background, then use `background: none'. The options
357`centered', `aspect', `tiled', and `fullscreen' require the `background.pixmap'
358resource to contain a valid file name. The `random' option requires
359`background.pixmap' to contain a valid directory name. For these options,
360fluxbox(1) will call fbsetbg(1) to set the background. The options `gradient',
361`solid', and `mod' all require `background.color' to be set. `gradient' and
362`mod' both require `background.colorTo'. `mod' requires `background.modX' and
363`background.modY' to be set as well. These options will be passed to
364fbsetroot(1) to set the background.
365
366 background: centered|aspect|tiled|fullscreen|random|solid|gradient <texture>|mod|none
367 background.pixmap: <file or directory>
368 background.color: <color>
369 background.colorTo: <color>
370 background.modX: <integer>
371 background.modY: <integer>
372
373SLIT
374----
375Here are all of the options for the slit.
376
377 -----------------------------------------
378 slit: <texture type>
379 slit.bevelWidth: <integer>
380 slit.borderColor: <color>
381 slit.borderWidth: <integer>
382 slit.color: <color>
383 slit.colorTo: <color>
384 slit.pixmap: <filename>
385 -----------------------------------------
386
387TOOLBAR OPTIONS
388---------------
389Below you will find all of the configuration possibilities for the toolbar.
390The list is pretty extensive and offers you many options to make your toolbar
391look just the way you want it.
392
393 -----------------------------------------
394 toolbar: <texture type>
395 toolbar.bevelWidth: <integer (0-255)>
396 toolbar.borderColor: <color>
397 toolbar.borderWidth: <integer>
398 toolbar.button.scale: <integer>
399 toolbar.color: <color>
400 toolbar.colorTo: <color>
401 toolbar.clock: <texture type>
402 toolbar.clock.borderColor: <color>
403 toolbar.clock.borderWidth: <integer>
404 toolbar.clock.font: <font>
405 toolbar.clock.justify: <{Left|Right|Center}>
406 toolbar.clock.pixmap: <filename>
407 toolbar.clock.color: <color>
408 toolbar.clock.colorTo: <color>
409 toolbar.clock.textColor: <color>
410 toolbar.height: <integer>
411 toolbar.iconbar.focused: <texture type>
412 toolbar.iconbar.focused.color: <color>
413 toolbar.iconbar.focused.colorTo:<color>
414 toolbar.iconbar.focused.pixmap: <filename>
415 toolbar.iconbar.unfocused: <texture type>
416 toolbar.iconbar.unfocused.color: <color>
417 toolbar.iconbar.unfocused.colorTo: <color>
418 toolbar.iconbar.unfocused.pixmap: <filename>
419 toolbar.iconbar.empty: <texture type>
420 toolbar.iconbar.empty.color: <color>
421 toolbar.iconbar.empty.colorTo: <color>
422 toolbar.iconbar.empty.pixmap: <filename>
423 toolbar.iconbar.focused.borderColor: <color>
424 toolbar.iconbar.focused.borderWidth: <integer>
425 toolbar.iconbar.unfocused.borderColor: <color>
426 toolbar.iconbar.unfocused.borderWidth: <integer>
427 toolbar.iconbar.borderColor: <color>
428 toolbar.iconbar.borderWidth: <integer>
429 toolbar.iconbar.focused.font: <font>
430 toolbar.iconbar.focused.justify: <{Left|Right|Center}>
431 toolbar.iconbar.focused.textColor: <color>
432 toolbar.iconbar.unfocused.font: <font>
433 toolbar.iconbar.unfocused.justify: <{Left|Right|Center}>
434 toolbar.iconbar.unfocused.textColor: <color>
435 toolbar.pixmap: <filename>
436 toolbar.shaped: <boolean>
437 toolbar.workspace.font: <font>
438 toolbar.workspace.justify: <{Left|Right|Center}>
439 toolbar.workspace.textColor: <color>
440 toolbar.workspace: <texture type>
441 toolbar.workspace.borderColor: <color>
442 toolbar.workspace.borderWidth: <integer>
443 toolbar.workspace.color: <color>
444 toolbar.workspace.colorTo: <color>
445 toolbar.workspace.pixmap: <filename>
446 -----------------------------------------
447
448EXAMPLES
449--------
450This list may seem intimidating, but remember, when you create your own style
451you can easily set a majority of these keys with a single component. For an
452example of this:
453
454 -----------------------------------------
455 *color: slategrey
456 *colorTo: darkslategrey
457 *unfocus.color: darkslategrey
458 *unfocus.colorTo: black
459 *textColor: white
460 *unfocus.textColor: lightgrey
461 *font: lucidasans-10
462 -----------------------------------------
463
464This sets nice defaults for many components.
465
466COLOR FORMATS
467-------------
468These are the color formats for styles:
469
470 #000000 (Hexadecimal)
471 rgb:<0-255>/<0-255>/<0-255>
472
473See /usr/share/X11/rgb.txt for an explaination.
474
475AUTHOR and CREDITS
476------------------
477Blackbox was written and maintained by Brad Hughes <blackbox@alug.org>
478and Jeff Raven <jraven@psu.edu>.
479
480fluxbox(1) is written and maintained by Henrik Kinnunen <fluxgen@fluxbox.org>
481with contributions and patches merged from many individuals around the world.
482
483The Official fluxbox(1) website: http://www.fluxbox.org[]
484You can find a lot of styles here: http://tenr.de/[]
485
486This manpage was composed from various resources including the official
487documentation, fluxbox(1) man page and numerous other resources by Curt
488"Asenchi" Micol. If you notice any errors or problems with this page, please
489contact him here: <asenchi@asenchi.com> and using the great contributions of
490<grubert@users.sourceforge.net>. Numerous other languages could be available
491if someone jumps in.
492
493SEE ALSO
494--------
495fluxbox(1) fbsetbg(1) fbsetroot(1)
496