'\" t .\" Title: fluxbox-style .\" Author: Henrik Kinnunen .\" Generator: DocBook XSL Stylesheets v1.78.1 .\" Date: 08 February 2015 .\" Manual: Fluxbox Manual .\" Source: fluxbox-style.txt .\" Language: English .\" .TH "FLUXBOX\-STYLE" "5" "08 February 2015" "fluxbox\-style\&.txt" "Fluxbox Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" fluxbox-style \- A comprehensive look at styles/themes for fluxbox(1)\&. .SH "SYNOPSIS" .sp This document describes various options available for fluxbox styles\&. .SH "DESCRIPTION" .sp What is a Style? .sp 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\&. .sp 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\&. .sp 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\&. .SH "STRUCTURE" .sp A style is made up of a few major components which then have their own sub\-directives\&. The major components are as follows: .sp 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\&. .sp 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\&. .sp A more complete reference to this can be found in X(7), section \fIRESOURCES\fR\&. .SH "LOCATION" .sp 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/usr/local/share/fluxbox/styles\fR providing a basic usable configuration\&. .sp 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: .sp .if n \{\ .RS 4 .\} .nf $ cd $ mkdir \-p ~/\&.fluxbox/styles/YourStyle/pixmaps $ cd ~/\&.fluxbox/styles/YourStyle $ nano theme\&.cfg .fi .if n \{\ .RE .\} .sp Output of a packaged style should look like the following: .sp .if n \{\ .RS 4 .\} .nf $ cd $ tar \-tjvf YourStyle\&.tar\&.bz2 \&.fluxbox/styles/YourStyle/theme\&.cfg \&.fluxbox/styles/YourStyle/pixmaps \&.fluxbox/styles/YourStyle/pixmaps/stick\&.xpm \&.\&.\&. .fi .if n \{\ .RE .\} .sp 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\&. :) .SH "CREATING YOUR STYLE" .sp 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\&. .sp Here are some quick examples to illustrate basic syntax: .sp .if n \{\ .RS 4 .\} .nf toolbar\&.clock\&.color: green .fi .if n \{\ .RE .\} .sp This sets the color resource of the toolbar clock to \fIgreen\fR\&. Another example: .sp .if n \{\ .RS 4 .\} .nf menu*color: rgb:3/4/5 .fi .if n \{\ .RE .\} .sp 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 .sp .if n \{\ .RS 4 .\} .nf *font: \-b&h\-lucida\-medium\-r\-normal\-*\-*\-140\-* .fi .if n \{\ .RE .\} .sp 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)\&.) .sp 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: .sp .if n \{\ .RS 4 .\} .nf *textColor: rgb:3/4/5 .fi .if n \{\ .RE .\} .sp 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: .sp .if n \{\ .RS 4 .\} .nf *textColor: rgb:3/4/5 toolbar\&.clock\&.textColor: rgb:255/0/0 .fi .if n \{\ .RE .\} .sp With that all of the text will be \fIrgb:3/4/5\fR except the toolbar clock text which will be \fIrgb:255/0/0\fR\&. .sp 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\&.: .sp .if n \{\ .RS 4 .\} .nf toolbar\&.clock: Raised Gradient Diagonal Bevel1 toolbar\&.clock\&.color: rgb:8/6/4 toolbar\&.clock\&.colorTo: rgb:4/3/2 .fi .if n \{\ .RE .\} .sp Don\(cqt worry, we will explain what these mean\&. A texture description consists of up to five fields, which are as follows: .PP \fBFlat | Raised | Sunken\fR. gives the component either a flat, raised or sunken appearance\&. .PP \fBGradient | Solid\fR. tells fluxbox(1) to draw either a solid color or a gradient texture\&. .PP \fBHorizontal | Vertical | Diagonal | Crossdiagonal | Pipecross | Elliptic | Rectangle | Pyramid\fR. Select one of these texture types\&. They only work when \fBGradient\fR is specified\&. .PP \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\&. .PP \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\&. .sp 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\&. .sp 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\&. .sp .if n \{\ .RS 4 .\} .nf toolbar\&.clock: pixmap toolbar\&.clock\&.pixmap: clock_background\&.xpm .fi .if n \{\ .RE .\} .sp This feature might need some investigation, reports say that sometimes the resources color and colorTo must be set and then they may not be set\&. .sp 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\&. .SH "FONT EFFECTS" .sp 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: .sp .if n \{\ .RS 4 .\} .nf menu\&.title\&.font: sans\-8:bold menu\&.title\&.effect: shadow menu\&.title\&.shadow\&.color: green menu\&.title\&.shadow\&.x: 3 menu\&.title\&.shadow\&.y: 3 .fi .if n \{\ .RE .\} .sp To set the halo effect: .sp .if n \{\ .RS 4 .\} .nf menu\&.title\&.font: sans\-8:bold menu\&.title\&.effect: halo menu\&.title\&.halo\&.color: green .fi .if n \{\ .RE .\} .SS "FONT PROBLEMS" .sp 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[] .SH "FULL COMPONENT LIST" .sp 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\&. .SH "WINDOW OPTIONS" .sp Many, many things you can do with window design in fluxbox(1), below are your options\&. Have fun\&. .sp .if n \{\ .RS 4 .\} .nf \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- window\&.bevelWidth: window\&.borderColor: window\&.borderWidth: window\&.button\&.focus: window\&.button\&.focus\&.color: window\&.button\&.focus\&.colorTo: window\&.button\&.focus\&.picColor: window\&.button\&.focus\&.pixmap: window\&.button\&.pressed: window\&.button\&.pressed\&.color: window\&.button\&.pressed\&.colorTo: window\&.button\&.pressed\&.pixmap: window\&.button\&.unfocus: window\&.button\&.unfocus\&.color: window\&.button\&.unfocus\&.colorTo: window\&.button\&.unfocus\&.picColor: window\&.button\&.unfocus\&.pixmap: window\&.close\&.pixmap: window\&.close\&.pressed\&.pixmap: window\&.close\&.unfocus\&.pixmap: window\&.font: window\&.frame\&.focusColor: window\&.frame\&.unfocusColor: window\&.grip\&.focus: window\&.grip\&.focus\&.color: window\&.grip\&.focus\&.colorTo: window\&.grip\&.focus\&.pixmap: window\&.grip\&.unfocus: window\&.grip\&.unfocus\&.color: window\&.grip\&.unfocus\&.colorTo: window\&.grip\&.unfocus\&.pixmap: window\&.handle\&.focus: window\&.handle\&.focus\&.color: window\&.handle\&.focus\&.colorTo: window\&.handle\&.focus\&.pixmap: window\&.handle\&.unfocus: window\&.handle\&.unfocus\&.color: window\&.handle\&.unfocus\&.colorTo: window\&.handle\&.unfocus\&.pixmap: window\&.handleWidth: window\&.iconify\&.pixmap: window\&.iconify\&.pressed\&.pixmap: window\&.iconify\&.unfocus\&.pixmap: window\&.justify: <{Left|Right|Center}> window\&.label\&.active: window\&.label\&.active\&.textColor: window\&.label\&.focus: window\&.label\&.focus\&.color: window\&.label\&.focus\&.colorTo: window\&.label\&.focus\&.pixmap: window\&.label\&.unfocus: window\&.label\&.unfocus\&.color: window\&.label\&.unfocus\&.colorTo: window\&.label\&.unfocus\&.pixmap: window\&.label\&.focus\&.textColor: window\&.label\&.unfocus\&.textColor: window\&.maximize\&.pixmap: window\&.maximize\&.pressed\&.pixmap: window\&.maximize\&.unfocus\&.pixmap: window\&.roundCorners: <{Top|Bottom}{Left|Right}> window\&.shade\&.pixmap: window\&.shade\&.pressed\&.pixmap: window\&.shade\&.unfocus\&.pixmap: window\&.stick\&.pixmap: window\&.stick\&.pressed\&.pixmap: window\&.stick\&.unfocus\&.pixmap: window\&.stuck\&.pixmap: window\&.stuck\&.unfocus\&.pixmap: window\&.lhalf\&.pixmap: window\&.lhalf\&.unfocus\&.pixmap: window\&.rhalf\&.pixmap: window\&.rhalf\&.unfocus\&.pixmap: window\&.title\&.focus: window\&.title\&.focus\&.color: window\&.title\&.focus\&.colorTo: window\&.title\&.focus\&.pixmap: window\&.title\&.height: window\&.title\&.unfocus: window\&.title\&.unfocus\&.color: window\&.title\&.unfocus\&.colorTo: window\&.title\&.unfocus\&.pixmap: \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- .fi .if n \{\ .RE .\} .SH "MENU OPTIONS" .sp Everything you need to make your menu look pretty\&. .sp .if n \{\ .RS 4 .\} .nf \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- menu\&.bevelWidth: menu\&.borderColor: menu\&.borderWidth: menu\&.bullet: <{empty|square|triangle|diamond}> menu\&.bullet\&.position: <{left|right}> menu\&.frame: menu\&.frame\&.color: menu\&.frame\&.colorTo: menu\&.frame\&.disableColor: menu\&.frame\&.font: menu\&.frame\&.justify: <{Left|Right|Center}> menu\&.frame\&.pixmap: menu\&.frame\&.textColor: menu\&.hilite: menu\&.hilite\&.color: menu\&.hilite\&.colorTo: menu\&.hilite\&.font: menu\&.hilite\&.justify: <{left|center|right}> menu\&.hilite\&.pixmap: menu\&.hilite\&.textColor: menu\&.itemHeight: menu\&.title: menu\&.title\&.color: menu\&.title\&.colorTo: menu\&.title\&.font: menu\&.title\&.pixmap: menu\&.title\&.textColor: menu\&.title\&.justify: <{Left|Right|Center}> menu\&.titleHeight: menu\&.roundCorners: <{Top|Bottom}{Left|Right}> menu\&.selected\&.pixmap: menu\&.submenu\&.pixmap: menu\&.unselected\&.pixmap: \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- .fi .if n \{\ .RE .\} .SH "BACKGROUND" .sp 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)\&. .sp .if n \{\ .RS 4 .\} .nf background: centered|aspect|tiled|fullscreen|random|solid|gradient |mod|none|unset background\&.pixmap: background\&.color: background\&.colorTo: background\&.modX: background\&.modY: .fi .if n \{\ .RE .\} .SH "SLIT" .sp Here are all of the options for the slit\&. .sp .if n \{\ .RS 4 .\} .nf \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- slit: slit\&.bevelWidth: slit\&.borderColor: slit\&.borderWidth: slit\&.color: slit\&.colorTo: slit\&.pixmap: \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- .fi .if n \{\ .RE .\} .SH "TOOLBAR OPTIONS" .sp 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\&. .sp .if n \{\ .RS 4 .\} .nf \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- toolbar: toolbar\&.bevelWidth: toolbar\&.borderColor: toolbar\&.borderWidth: toolbar\&.button\&.scale: toolbar\&.color: toolbar\&.colorTo: toolbar\&.clock: toolbar\&.clock\&.borderColor: toolbar\&.clock\&.borderWidth: toolbar\&.clock\&.font: toolbar\&.clock\&.justify: <{Left|Right|Center}> toolbar\&.clock\&.pixmap: toolbar\&.clock\&.color: toolbar\&.clock\&.colorTo: toolbar\&.clock\&.textColor: toolbar\&.height: toolbar\&.iconbar\&.focused: toolbar\&.iconbar\&.focused\&.color: toolbar\&.iconbar\&.focused\&.colorTo: toolbar\&.iconbar\&.focused\&.pixmap: toolbar\&.iconbar\&.unfocused: toolbar\&.iconbar\&.unfocused\&.color: toolbar\&.iconbar\&.unfocused\&.colorTo: toolbar\&.iconbar\&.unfocused\&.pixmap: toolbar\&.iconbar\&.empty: toolbar\&.iconbar\&.empty\&.color: toolbar\&.iconbar\&.empty\&.colorTo: toolbar\&.iconbar\&.empty\&.pixmap: toolbar\&.iconbar\&.focused\&.borderColor: toolbar\&.iconbar\&.focused\&.borderWidth: toolbar\&.iconbar\&.unfocused\&.borderColor: toolbar\&.iconbar\&.unfocused\&.borderWidth: toolbar\&.iconbar\&.borderColor: toolbar\&.iconbar\&.borderWidth: toolbar\&.iconbar\&.focused\&.font: toolbar\&.iconbar\&.focused\&.justify: <{Left|Right|Center}> toolbar\&.iconbar\&.focused\&.textColor: toolbar\&.iconbar\&.unfocused\&.font: toolbar\&.iconbar\&.unfocused\&.justify: <{Left|Right|Center}> toolbar\&.iconbar\&.unfocused\&.textColor: toolbar\&.pixmap: toolbar\&.shaped: toolbar\&.workspace\&.font: toolbar\&.workspace\&.justify: <{Left|Right|Center}> toolbar\&.workspace\&.textColor: toolbar\&.workspace: toolbar\&.workspace\&.borderColor: toolbar\&.workspace\&.borderWidth: toolbar\&.workspace\&.color: toolbar\&.workspace\&.colorTo: toolbar\&.workspace\&.pixmap: \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- .fi .if n \{\ .RE .\} .SH "EXAMPLES" .sp 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: .sp .if n \{\ .RS 4 .\} .nf \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- *color: slategrey *colorTo: darkslategrey *unfocus\&.color: darkslategrey *unfocus\&.colorTo: black *textColor: white *unfocus\&.textColor: lightgrey *font: lucidasans\-10 \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- .fi .if n \{\ .RE .\} .sp This sets nice defaults for many components\&. .SH "COLOR FORMATS" .sp These are the color formats for styles: .sp .if n \{\ .RS 4 .\} .nf #000000 (Hexadecimal) rgb:<0\-255>/<0\-255>/<0\-255> .fi .if n \{\ .RE .\} .sp See /usr/share/X11/rgb\&.txt for an explanation\&. .SH "AUTHORS" .sp Blackbox was written and maintained by Brad Hughes and Jeff Raven \&. .sp fluxbox(1) is written and maintained by Henrik Kinnunen with contributions and patches merged from many individuals around the world\&. .sp The Official fluxbox(1) website: \m[blue]\fBhttp://www\&.fluxbox\&.org\fR\m[] You can find a lot of styles here: \m[blue]\fBhttp://tenr\&.de/\fR\m[] .sp 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: and using the great contributions of \&. Numerous other languages could be available if someone jumps in\&. .SH "SEE ALSO" .sp fluxbox(1) fbsetbg(1) fbsetroot(1) .SH "AUTHOR" .PP \fBHenrik Kinnunen\fR <\&fluxgen@fluxbox\&.org\&> .RS 4 Author. .RE