Styles, sometimes referred to as Themes, are a graphical overlay for the fluxbox(1) window manager\&. If you wanted to get to know fluxbox, the styles would be the \fIlook\fR of the \fIlook and feel\fR\&.
Styles are simple ASCII text files that tell fluxbox(1) how to generate the appearance of different components of the window manager\&. The default installation of fluxbox(1) is shipped with many classic examples that show a great deal of what one could do\&. To use one of the standard styles navigate to the \fISystem Styles\fR menu under your main fluxbox(1) menu\&.
fluxbox(1) uses its own graphics class to render its images on the fly\&. By using styles you can determine, at a great level of configurability, what your desktop will look like\&. Since fluxbox(1) was derived from blackbox many often wonder if old themes will work on the latest releases of fluxbox(1)\&. Well they basically do, but you will have to tune them since the fluxbox(1) code has changed quite a bit since the initial grab\&.
The \fIwindow\&.*\fR directives control the appearance of the window frames, \fIwindow\&.tab\&.*\fR controls the appearance of the window tabs, \fImenu\&.*\fR controls the appearance of the popup menu that you see when you right click on the desktop\&. \fItoolbar\&.*\fR is the bar you will see at the top or bottom of your screen\&. Finally the \fIslit\&.*\fR has options you can use to customize the appearance of the slit\&. However if you don\(cqt set the slit directives specifically, the slit\(cqs appearance is controlled by the toolbar directives instead\&.
To understand how the style mechanism works, it is nice to know a little about how X11 resources work\&. X11 resources consist of a key and a value\&. The key is constructed of several smaller keys (sometimes referred to as children), delimited by a period (\&.)\&. Keys may also contain an asterisk (*) to serve as a wildcard, which means that one line of text will match several keys\&. This is useful for styles that are based on one or two colors\&.
There are many places to store your styles, the most common is in your \fI~/\&.fluxbox/styles\fR directory\&. The initial installation will place the default styles in \fI@pkgdatadir@/styles\fR providing a basic usable configuration\&.
When creating your own style, create a directory (normally the name of your style) in \fI~/\&.fluxbox/styles/\fR (If the \fIstyles\fR directory doesn\(cqt exist, create that also)\&. While there isn\(cqt an official structure, it is common to create a directory named after your style and place your pixmaps directory (if required) in there along with a file called theme\&.cfg (may also be named style\&.cfg)\&. This file is where you will construct your style using the components covered later in this manual page\&. An example of steps taken when beginning a style project of your own may look like:
Of course, all of these are just preferences, fluxbox(1) allows for the customization of many things, including how you handle your styles\&. Just remember, however, that if you plan to distribute your style you may find some community bickering if you don\(cqt follow practices\&. :)
As discussed above, fluxbox(1) allows you to configure its four main components: the toolbar, menus, slit and window decorations\&. Remember that you can customize the slit with its own directives, otherwise the slit will take the appearance of the toolbar\&.
This sets the color resource of the menu and all of its \fIchildren\fR to \(oqrgb:3/4/5\(cq\&. (For a description of color names, see X(1)\&.) So this one also applies to \fImenu\&.title\&.color\fR and \fImenu\&.frame\&.color\fR\&. And with
you set the font resource for all keys to this font name all at once (For information about the fonts installed on your system, you can use a program like xfontsel(1), gtkfontsel, or xlsfonts(1)\&.)
In the last example you will notice the wildcard (*) before font\&. In a Fluxbox style you can set a value with a wildcard\&. The example means that every font in the style will be what is specified\&. You can do this with any component/value\&. For example if you wanted all of the text to be one color you would do:
This means that you can setup a very simple style with very few properties\&. See the EXAMPLES below for an example of this in practice\&. fluxbox(1) also allows you to override wildcards in your style\&. Lets take our example above and add an override for the toolbar\&.clock\&.textColor component:
Now what makes fluxbox(1) so spectacular is its ability to render textures on the fly\&. A texture is a fillpattern that you see on some styles\&. Texture descriptions are specified directly to the key that they should apply to, e\&.g\&.:
\fBHorizontal | Vertical | Diagonal | Crossdiagonal | Pipecross | Elliptic | Rectangle | Pyramid\fR. Select one of these texture types\&. They only work when
\fBInterlaced\fR. tells fluxbox(1) to interlace the texture (darken every other line)\&. This option is most commonly used with gradiented textures, but it also works in solid textures\&.
\fBBevel1 | Bevel2\fR. tells fluxbox(1) which type of bevel to use\&. Bevel1 is the default bevel\&. The shading is placed on the edge of the image\&. Bevel2 is an alternative\&. The shading is placed one pixel in from the edge of the image\&.
Instead of a texture description, also the option \fBParentRelative\fR is available, which makes the component appear as a part of its parent, e\&.g\&. totally transparent\&.
Or for even more possibilities Pixmap\&. If pixmap texture is specified (it might not be necessary on every occasion) the pixmap file is specified in a separate pixmap resource\&.
All gradiented textures are composed of two color values: the \fIcolor\fR and \fIcolorTo\fR resources\&. When \fBInterlaced\fR is used in \fBSolid\fR mode, the \fIcolorTo\fR resource is used to find the interlacing color\&.
In addition to specifying the font\-family and the font\-weight via the supported font\-rendering\-engine (eg, Xft), fluxbox(1) supports some effects: \fIhalo\fR and \fIshadow\fR\&. To set the shadow effect:
If you have problems installing fonts or getting them to work, you should read the docs page at xfree\&.org\&. Here is a link to one of these: \m[blue]\fBhttp://xfree\&.org/4\&.3\&.0/fonts2\&.html#3\fR\m[]
Here is the exhaustive component list for fluxbox(1) styles\&. Each one is listed with their type of value required\&. Comments in a style file are preceded with an exclamation point (!) which we also use here so that these can be pasted into a new theme\&.cfg to be customized appropriately\&. Please note that in order to keep styles consistent it is often the practice of stylists to provide all of the theme\-items in their style file even if they are not used\&. This allows the user the ease of changing different components\&.
Every style must specify the background option\&. If you don\(cqt want your style to change the user\(cqs background, then use \(oqbackground: none\(cq\&. The options \(oqcentered\(cq, \(oqaspect\(cq, \(oqtiled\(cq, and \(oqfullscreen\(cq require the \(oqbackground\&.pixmap\(cq resource to contain a valid file name\&. The \(oqrandom\(cq option requires \(oqbackground\&.pixmap\(cq to contain a valid directory name\&. For these options, \fBfluxbox(1)\fR will call \fBfbsetbg(1)\fR to set the background\&. The options \(oqgradient\(cq, \(oqsolid\(cq, and \(oqmod\(cq all require \(oqbackground\&.color\(cq to be set\&. \(oqgradient\(cq and \(oqmod\(cq both require \(oqbackground\&.colorTo\(cq\&. \(oqmod\(cq requires \(oqbackground\&.modX\(cq and \(oqbackground\&.modY\(cq to be set as well\&. These options will be passed to \fBfbsetroot(1)\fR to set the background\&. The special option \(oqunset\(cq is for use in user overlay files only\&. It specifies that fbsetbg should never be run (by default, even when \(oqnone\(cq is set in the overlay, fluxbox will try to run \(lqfbsetbg \-z\(rq to restore the last wallpaper)\&.
Below you will find all of the configuration possibilities for the toolbar\&. The list is pretty extensive and offers you many options to make your toolbar look just the way you want it\&.
This list may seem intimidating, but remember, when you create your own style you can easily set a majority of these keys with a single component\&. For an example of this:
fluxbox(1) is written and maintained by Henrik Kinnunen <fluxgen at fluxbox\&.org> with contributions and patches merged from many individuals around the world\&.
This manpage was composed from various resources including the official documentation, fluxbox(1) man page and numerous other resources by Curt "Asenchi" Micol\&. If you notice any errors or problems with this page, please contact him here: <asenchi at asenchi\&.com> and using the great contributions of <grubert at users\&.sourceforge\&.net>\&. Numerous other languages could be available if someone jumps in\&.