fluxbox-keys

title: fluxbox-keys(5)

text:
# fluxbox-keys(5)

## NAME
fluxbox-keys - keyboard shortcuts configuration for fluxbox(1)

## SYNOPSIS
~/.fluxbox/keys

## SYNTAX
Variable parameters are shown in emphasis: argument

Optional parameters are shown in square brackets: [argument]

All other characters shown are required verbatim. Whitespace is required where shown, but it is fine to add more whitespace.

## DESCRIPTION
The keys file defines the keyboard shortcuts for fluxbox(1).

You can customize fluxbox’s key handling through the ~/.fluxbox/keys file. The file consists of lines of the basic format:

[modifiers] key :'command' [arguments ...]

The space between the key and the : before the command is mandatory.

All modifiers and commands are case-insensitive. Some command arguments (especially those that will be passed to the shell) are case-sensitive. Some key names are case-sensitive.

Lines beginning with a # or ! are considered comments and are unread by fluxbox.

You will need to “reload” fluxbox after editing the keys file so it picks up your change.

## MODIFIERS
You can get a list of possible modifiers by calling ‘xmodmap -pm’. This also shows you to which keys the modifiers are mapped, but the following modifiers are most commonly used:

Shift Control Mod1 Mod4

where Mod1 is the Alt key on the PC keyboard and Mod4 is usually a key branded with a familiar company logo.

There are also some special modifiers that refer to mouse button events

OnDesktop

The mouse cursor is over the desktop (root window), and not any window.

OnToolbar

The mouse cursor is over the toolbar (which is normally at the bottom of the screen).

OnWindow

The mouse cursor is over a window.

OnTitlebar

The mouse cursor is over a window’s titlebar.

OnTab

The mouse cursor is over a tab.

Double

Limits this action to double-clicks only.

### Combining Modifiers
To combine two or more modifiers, just list them (space-delimited) in any order.

## KEYS
You may specify a key by its key name (for example, a or space) or by its numeric keycode (for example, 38 or 0xf3).

If you don’t know the name of a key, you can run xev(1) in a terminal, push the key, and see the name in the output. If you have some "special" keys that do not produce a key name in the output of xev(1), you can just use the keycode (NOT the keysym!) in your keys file.

Commands can also be bound to mouse events (N denotes the number of the button, eg. 1 is the primary button, 4/5 are the wheel buttons):

MouseN

The mouse button N is pressed down and held.

ClickN

The mouse button N is clicked (pressed and released with no movement in between)

MoveN

The mouse button N is currently held, the bound action is triggered as often as the mouse moves.

There are some special "keys" that let you bind events to non-keyboard events:

ChangeWorkspace

Fires when the workspace changes. This can be used to change backgrounds or do anything else you like when you switch to a new workspace. See the EXAMPLES below for one idea.

Warning Use caution with this event! For example, do NOT bind this to any action that changes your current workspace. If you break your fluxbox with this feature, you get to keep the pieces.

## CHAINING
Key bindings can be chained in a fashion similar to Emacs key bindings using the syntax:

modifiers-1 key-1 modifiers-2 key-2 :'command' [arguments ...]*

To abort a chained command part-way through typing it, press the <ESC> key.

To Bind CTRL+C CTRL+X (Which means, press CTRL+C then CTRL+X) to quit fluxbox.

```
Control c Control x :Quit
```

## KEYMODES
A specific set of key mappings can be activated and de-activated on-the-fly using what are called keymodes. The syntax to define a mapping in a keymode is:

keymode: modifiers key :'command' [arguments ...]

Where keymode is any alpha-numeric string name.

When this keymode is activated (see the KeyMode command below), all bindings prefaced by that keymode name become active (and all other keybindings will be deactivated) until the keymode changes again.

## COMMANDS
Some commands have multiple names which are shown below as

CMD1 | CMD2

Related commands have been grouped below as

CMD1 / CMD2

The commands are broken up into sections as follows

•Mouse Commands

•Window Commands

•Workspace Commands

•Menu Commands

•Window Manager Commands

•Special Commands

### Mouse Commands
These commands may only be bound to mouse buttons (plus modifiers), not keystrokes. In all cases, the action finishes when the mouse button is released.

StartMoving

Start dragging to move the window.

StartResizing [corner]

Start dragging to resize the window as if you had grabbed the window at the specified corner. By default corner is BottomRight, but may be overridden with one of:

NearestCorner NearestEdge NearestCornerOrEdge Center TopLeft Top TopRight Left Right BottomLeft Bottom BottomRight

If NearestCornerOrEdge is specified the size of the corner can also be specified to be the larger of one or two following numbers: [pixel-size [percent-size]] or percent-size%, where percent-size is the percentage of half the window width or height. If no size is given, it defaults to 50 pixels and 30%.

StartTabbing

Start dragging to add this window to another’s tabgroup.

ActivateTab

Activates the tab underneath the mouse.

### Window Commands
These commands ordinarily affect only the currently focused window. The OnWindow modifier and ForEach command may affect the window that is used.

Minimize | MinimizeWindow | Iconify

Minimize the current window, equivalent to the window button.

Maximize | MaximizeWindow

Maximize the current window, equivalent to the window button.

MaximizeHorizontal / MaximizeVertical

Maximize the current window in one direction only, leaving the other dimension unchanged.

Fullscreen

Resize the window’s content to fit the whole screen, without any window decoration.

Raise / Lower

Reorder this window to the top or bottom of the window stack, within its current layer. See fluxbox(1) for a discussion of layers.

RaiseLayer / LowerLayer [offset]

Raise the window up to the layer above, or lower it to the layer below. See fluxbox(1) for a discussion of layers.

SetLayer layer

Move the window to the specified layer. layer should be one of AboveDock, Dock, Top, Normal, Bottom, Desktop. See fluxbox(1) for a discussion of layers.

Close

Close the current window, equivalent to the window button.

Kill | KillWindow

Close a window that’s not responding to Close, like using xkill(1).

Shade | ShadeWindow

Toggle the shaded state of the current window, equivalent to the window button. A shaded window appears as only the title bar.

ShadeOn / ShadeOff

Set the shaded state of the window to On / Off.

Stick | StickWindow

Toggle the sticky state of the current window, equivalent to the window button. A sticky window is visible on all workspaces.

SetDecor decor

Sets which window decorations will be shown. decor has the same format as the ‘[Deco]’ parameter in the apps file. See fluxbox-apps(5) for more info.

ToggleDecor

Toggles the presence of the window decorations (title bar, window buttons, and resize bar).

NextTab / PrevTab

Cycle to the next / previous tab in the current tab group.

Tab number

Cycle to the given tab in the current tab group, where 1 is the first tab. A negative number counts from the end of the tab group (-1 is the last tab, -2 is the next-to-last, etc.).

MoveTabRight / MoveTabLeft

Reorder the tabs in the current tab group, swapping the current tab with the one to the right / left.

DetachClient

Remove the current tab from the tab group, placing it in its own window.

ResizeTo width[%] height[%]

Resizes the window to the given width and height. If the value is given in percent, then the window size will be based on the current screen’s size.

Resize delta-width[%] delta-height[%]

Resizes the window relative to the current width and height. If the value is given in percent, then the window size will be based on the current window’s size.

ResizeHorizontal delta-width[%] / ResizeVertical delta-height[%]

Resizes the window in one dimension only. If the value is given in percent, then the window size will be based on the current window’s size.

MoveTo x[%] y[%] [anchor]

Moves the window to the given coordinates, given in pixels or relatively to the current screen size if % is specified after the value. If either x or y is set to \*, that coordinate will be ignored, and the movement will only take place in one dimension.

The default anchor is the upper left corner, but this may be overridden with one of:

TopLeft Left BottomLeft Top Center Bottom TopRight Right BottomRight

Move delta-x delta-y

Moves the window relative to its current position. Positive numbers refer to right and down, and negative to left and up, respectively.

MoveRight d / MoveLeft d / MoveUp d / MoveDown d

Moves the window relative to its current position by the number of pixels specified in d. If the number is negative, it moves in the opposite direction.

TakeToWorkspace workspace / SendToWorkspace workspace

Sends you along with the current window to the selected workspace. SendToWorkspace just sends the window. The first workspace is number 1, not 0.

TakeToNextWorkspace [offset] / TakeToPrevWorkspace [offset]

Sends you along with the current window to the next or previous workspace. If you set offset to a value greater than the default of 1, it will move you that number of workspaces ahead or behind. If you go beyond the end of the currently defined workspaces, it will wrap around to the other end automatically.

SendToNextWorkspace [offset] / SendToPrevWorkspace [offset]

Identical to the "TakeTo..." commands, but again this sends only the window, and does not move you away from your current workspace.

SetAlpha [alpha [unfocused-alpha]]

Sets the alpha value of a window. Putting a + or - in front of the value adds or subtracts from the current value. A plain integer sets the value explicitly.

no arguments

Resets both focused and unfocused settings to default opacity.

one argument

Changes both focused and unfocused alpha settings.

two arguments

First value becomes the focused alpha, second becomes the unfocused alpha value.

SetHead number

Moves the window to the given display head. Only available when fluxbox has been compiled with Xinerama support.

SendToNextHead [offset] / SendToPrevHead [offset]

Sends the current window to the next/previous display head. If you specify an offset greater than 1, it will move the window that many heads. If this takes the window beyond the total number of heads, it will wrap around to the beginning.

SetXProp PROP=value

Sets the xproperty PROP of the current window to value. Delete the content of PROP by using PROP=.

### Workspace Commands
These commands affect the entire workspace (or "desktop" as it is sometimes called).

AddWorkspace / RemoveLastWorkspace

Adds or removes a workspace from the end of the list of workspaces.

NextWorkspace [n] / PrevWorkspace [n] / RightWorkspace [n] / LeftWorkspace [n]

Switch to the Next / Previous workspace. All versions accept an offset value n, which defaults to 1 and refers to the number of workspaces to move at one time. {Next,Prev}Workspace wrap around when going past the last workspace, whereas {Right,Left}Workspace do not.

Workspace number

Jumps to the given workspace number. The first workspace is 1.

NextWindow [{options}] [pattern] / PrevWindow [{options}] [pattern]

Focuses the next / previous window in the focus list. options is one or more of the following, space delimited:

static

Instead of moving in order of most-recent focus, move in order of when the window was opened (or, the order shown in the iconbar).

groups

Only include the current tab in windows with multiple tabs.

If pattern arguments are supplied, only windows that match all the patterns are considered - all others are skipped. See the section CLIENT PATTERNS below for more information.

This pair of commands has a special side-effect when the keybinding used has a modifier - It will temporarily raise the cycled window to the front so you can see it, but if you continue holding down the modifier and press the key again (For example, keep holding "Alt" while you tap the "Tab" key a few times), fluxbox will lower the window again when you move on to the next one. This allows you to preview the windows in order, but does not change the order in doing so.

NextGroup [{options}] [pattern] / PrevGroup [{options}] [pattern]

Equivalent to NextWindow / PrevWindow above, but with the groups option forced on.

GotoWindow number [{options}] [pattern]

Focuses and activates the window at position number in the focus list. The options and pattern arguments have the same meaning as NextWindow above.

Activate [pattern] | Focus [pattern]

With pattern, this is an alias for GoToWindow 1 pattern. Without, this behaves like a window command, so that OnWindow events can change the focused window.

Attach pattern

Combines all windows that match the pattern into a single tab group. See CLIENT PATTERNS for more about the pattern arguments.

FocusLeft / FocusRight / FocusUp / FocusDown

Focus to the next window which is located in the direction specified.

ArrangeWindows pattern / ArrangeWindowsVertical pattern / ArrangeWindowsHorizontal pattern

Tries to arrange all windows on the current workspace so that they overlap the least amount possible. ArrangeWindowsVertical prefers vertical splits (windows side by side), whereas ArrangeWindowsHorizontal prefers horizontal splits (windows on top of eachother). See CLIENT PATTERNS for more about the pattern arguments.

ArrangeWindowsStackLeft pattern / ArrangeWindowsStackRight pattern

Similar to ArrangeWindows, these commands arrange windows on the current workspace. The currently focussed window is used as the main window, and will fill half the screen, while the other windows are tiled on the other half of the screen as if they were tiled with ArrangeWindows. ArrangeWindowsStackLeft puts the main window on the RIGHT hand side of the screen, and the tiled windows are on the LEFT hand side of the screen. ArrangeWindowsStackRight puts the main window on the LEFT hand side of the screen, and the tiled windows are on the RIGHT hand side of the screen.

ArrangeWindowsStackTop pattern / ArrangeWindowsStackBottom pattern

Behaves just like ArrangeWindowsStackLeft and ArrangeWindowsStackRight. ArrangeWindowsStackBottom places the main window on the TOP half of the screen, and the tiled windows on the bottom half of the screen. ArrangeWindowsStackTop places the main window on the BOTTOM half of the screen and the tiled windows on the top half of the screen.

ShowDesktop

Minimizes all windows on the current workspace. If they are already all minimized, then it restores them.

Deiconify mode destination

Deiconifies windows (or, restores from a minimized state). Where mode may be one of:

All

All icons across all workspaces.

AllWorkspace

All icons on the current workspace.

Last

The last icon across all workspaces.

LastWorkspace (default)

The last icon on the current workspace.

And destination may be one of:

Current (default)

Deiconify to the current workspace.

OriginQuiet

Deiconify to the window’s original workspace, but does so in the background, without moving you there.

SetWorkspaceName name / SetWorkspaceNameDialog

Sets the name of the current workspace.

CloseAllWindows

Closes all windows on all desktops.

### Menu Commands
These commands open or close fluxbox popup menus. For more information on what these menus contain or how to configure them, see fluxbox(1).

RootMenu

Opens the root menu. See ROOT MENU in fluxbox-menu(5) for details.

WorkspaceMenu

Opens a menu showing all workspaces and windows. See Workspace Menu in fluxbox(1) for details.

WindowMenu

Opens a menu containing actions for the current window. See WINDOW MENU in fluxbox-menu(5) for details. ClientMenu [pattern]

Opens a menu that contains all windows. If you specify a pattern, only matching windows will be in the menu. Selecting a window will jump to that workspace and raise the window. See CLIENT PATTERNS below for more details on the pattern argument.

CustomMenu path

Opens a custom menu file. This path must be a valid menu file in the same format as detailed by the ROOT MENU section of fluxbox-menu(5).

HideMenus

Hide all fluxbox popup menus.

### Window Manager Commands
These commands affect the Window Manager, or more than one window.

Restart [path]

Restarts fluxbox. This does not close any running applications. If the optional path is a path to an executable window manager, that manager is started in place of fluxbox.

Quit | Exit

Exits fluxbox. This will normally cause X to stop as well and terminate all existing applications, returning you to the login manager or console.

Reconfig | Reconfigure

Reloads all fluxbox configuration files including the keys file, apps file, and init file, if they have changed.

SetStyle path

Sets the current style to that given in path, which must be the full path to a fluxbox style.

ReloadStyle

Reloads only the current style. Useful after editing a style which is currently in use.

ExecCommand args ... | Exec args ... | Execute args ...

Probably the most-used binding of all. Passes all the arguments to your $SHELL (or /bin/sh if $SHELL is not set). You can use this to launch applications, run shell scripts, etc. Since all arguments are passed verbatim to the shell, you can use environment variables, pipes, or anything else the shell can do. Note that processes only see environment variables that were set before fluxbox started (such as in ~/.fluxbox/startup), or any that are set via the Export or SetEnv commands, below. See fluxbox(1) for more details on the ENVIRONMENT and \~/.fluxbox/startup file.

CommandDialog

Pops up a dialog box that lets you type in any of these commands manually.

SetEnv name value | Export name=value

Sets an environment variable in Fluxbox. It will be passed to any applications spawned by any future ExecCommand commands.

SetResourceValue resourcename resourcevalue | SetResourceValueDialog

Sets a fluxbox resource value, which are normally stored in the init file. See fluxbox(1) for more details on available resources and allowed values.

### Special Commands
These commands have special meanings or behaviors.

MacroCmd {command1} {command2} {command3} ...

Allows you to execute more than one command with one keybinding. The commands will be executed in series. The {} brackets are literally required, as in the following example:

```
MacroCmd {MoveTo 0 0} {ResizeTo 1280 800}
```

Delay {command} [microseconds]

Delays running command for the given amount of time. If the same key binding is activated again, the timer will be restarted.

ToggleCmd {command1} {command2} ...

Alternates between the commands. On the first press of the bound key, runs command1. On the next press, runs command2.

BindKey keybinding

Adds the given keybinding (which must be a valid key binding as defined in the DESCRIPTION section above) to your keys file.

KeyMode keymode [return-keybinding]

Activates the named keymode (or, all key binding lines prefaced with the same keymode:) and deactivates all others until the return-keybinding (by default Escape) is pressed. The default keymode is named default.

ForEach {command} [{condition}] | Map {command} [{condition}]

Runs the given command (normally one from the Window Commands section above) on each window. If you specify a condition (See Conditions, below) the action will be limited to matching windows.

If {condition} {then-command} [{else-command}] | Cond {condition} {then-command} [{else-command}]

If the condition command returns true, then run the then-command, otherwise run the optional else-command. See Conditions below for more information on the condition argument.

### Conditions
These special commands are used to match windows conditionally. They are commonly used by the If and ForEach command.

Matches pattern

Returns true if the current window matches the given pattern. See CLIENT PATTERNS below for details on the pattern syntax. If your key binding uses the OnWindow modifier, it matches against the window you clicked, not the currently focused window.

To check other windows besides the currently focused one, see the Every and Some conditions below.

Some condition

Returns true if any window on any workspace (not just the currently focused one) matches the condition.

Every condition

Returns true if every window on every workspace (not just the current one) matches the condition.

Not condition

Returns true if condition returns false, and vice-versa.

And {condition1} {condition2} [{condition3} ...]

Returns true if and only if all given conditions return true.

Or {condition1} {condition2} [{condition3} ...]

Returns true if any of the listed conditions return true.

Xor {condition1} {condition2} [{condition3} ...]

Returns the boolean xor of the truth values for all conditions listed.

## CLIENT PATTERNS
Many of the more advanced commands take a pattern argument, which allows you to direct the action at a specific window or set of windows which match the properties specified in the pattern.

A pattern looks like this

([propertyname[!]=]regexp) ...

Match definitions are enclosed in parentheses (...), and if no propertyname is given then Name is assumed. The regexp can contain any regular expression, or the special value [current], which matches the corresponding value of the currently focused window. See regex(7) for more information on acceptable regular expressions.

propertyname is not case sensitive, whereas the regexp is.

If you specify multiple (pattern) arguments, this implies an AND condition - All specified patterns must match.

You can use = to test for equality or != to test for inequality.

The following values are accepted for propertyname

Name

A string, corresponding to the CLASSNAME property (The first field of WM_CLASS from the output of the xprop(1) utility).

Class

A string, corresponding to the CLASSCLASS property (The second field of WM_CLASS from the output of the xprop(1) utility).

Title

A string, corresponding to the window title (WM_NAME from xprop(1)).

Role

A string, corresponding to the ROLE property (WM_WINDOW_ROLE from xprop(1)).

Transient

Either yes or no, depending on whether the window is transient (typically, a popup dialog) or not.

Maximized

Either yes or no, depending on whether the window is maximized or not.

MaximizedHorizontal

Either yes or no, depending on whether the window is maximized horizontally or not.

MaximizedVertical

Either yes or no, depending on whether the window is maximized vertically or not.

Minimized

Either yes or no, depending on whether the window is minimized (iconified) or not.

Fullscreen

Either yes or no, depending on whether the window is fullscreen or not.

Shaded

Either yes or no, depending on whether the window is shaded or not.

Stuck

Either yes or no, depending on whether the window is sticky (on all workspaces) or not.

FocusHidden

Either yes or no, depending on whether the window has asked to be left off the focus list (or, the alt-tab list), or not.

IconHidden

Either yes or no, depending on whether the window has asked to be left off the icon list (or, the taskbar), or not.

Urgent

Either yes or no, depending on whether the window has the urgent hint set.

Workspace

A number corresponding to the workspace number to which the window is attached. The first workspace here is 0. You may also use [current] to match the currently visible workspace.

WorkspaceName

A string corresponding to the name of the workspace to which the window is attached.

Head

The number of the display head to which the window is attached. You may match this against the special value [mouse] which refers to the head where the mouse pointer currently resides.

Layer

The string name of the window’s layer, which is one of AboveDock, Dock, Top, Normal, Bottom, Desktop

Screen

The number of the currently used screen. If the setup of the running xserver involves independent screens (not Xinerama), the $DISPLAY environment contains something like :0.1 or :1.0. The part after the dot (.) is the number of the screen.

@XPROP

A string, corresponding to any xproperty (Use either the xprop(1) utility or the SetXProp command to set a xproperty to a window)

Matches any windows with the CLASSNAME of "xterm".

```
(xterm)
```

Matches any windows with the same CLASSNAME as the currently focused window.

```
(Name=[current])
```

Matches any windows on the same head as the mouse but on a different layer than the currently focused window.

```
(Head=[mouse]) (Layer!=[current])
```

Matches any windows having a xproperty named FOO with "bar" in it.

```
(@FOO=.*bar.*)
```

## FILES
~/.fluxbox/keys

This is the default location for the keybinding definitions.

/usr/X11R6/include/X11/keysymdef.h

X key names are in this file.

/usr/X11R6/lib/X11/XKeysymDB

X key names are also in this file.

## RESOURCES
session.keyFile: location

This may be set to override the location of the keybinding definitions.

## ENVIRONMENT
Remember that ExecCommand command can take advantage of other environment variables if they are set before fluxbox is started, or via the Export or SetEnv commands. For example, if $TERM is set, it could be use like this:

```
Mod1 x :ExecCommand $TERM
```

For more information about environment variables, see your shell’s manual.

## EXAMPLES
Here are some interesting and/or useful examples you can do with your keys file.

```
# Mod4+drag moves a window
OnWindow Mod4 Mouse1 :StartMoving
# If any xterm windows are open, cycle through them. If none are open, open
# one:
Mod4 t :If {Some Matches (xterm)} {NextWindow (xterm)} {Exec xterm}
# Set a different wallpaper on every workspace:
ChangeWorkspace :Exec fbsetbg ~/.fluxbox/bg$(xprop -root _NET_CURRENT_DESKTOP | awk '{print $3}').png
# Focusses the next window with it's xproperty 'PROP' set to 'foo'
Mod4 p Mod4 Tab :NextWindow (@PROP=foo)
```

## AUTHORS
•Jim Ramsay <i.am at jimramsay com> (>fluxbox-1.0.0)

•Curt Micol <asenchi at asenchi com> (>fluxbox-0.9.11)

•Tobias Klausmann <klausman at users sourceforge net> (⟨fluxbox-0.9.11)

•Grubert <grubert at users sourceforge net> (fluxbox)

•Matthew Hawkins <matt at mh dropbear id au> (blackbox)

•Wilbert Berendsen <wbsoft at xs4all nl> (blackbox)

## SEE ALSO
fluxbox(1) xprop(1) xev(1) xkill(1) regex(7)

## AUTHOR
Jim Ramsay <i.am@jimramsay.com>

Author.


fluxbox-menu

package: fluxbox

title: fluxbox-menu(5)

summary: fluxbox(1) menu syntax

text:
# fluxbox-menu(5)

## NAME
fluxbox-menu - fluxbox(1) menu syntax

## SYNOPSIS
/usr/local/share/fluxbox/menu

~/.fluxbox/menu

~/.fluxbox/windowmenu

## SYNTAX
Variable parameters are shown in emphasis: argument

All other characters shown are required verbatim. Whitespace is only required to delimit words, but it is fine to add more whitespace.

## DESCRIPTION
There are two types of menus in fluxbox which can be configured.

The first is the root menu, which normally appears when you right-click on the desktop.

The first is the ROOT MENU (Or right-click menu), is usually bound to a right-click on the desktop, though this binding can be changed in the ‘keys’ file (fluxbox-keys(5)). This same syntax is used for the CustomMenu command, also mentioned in fluxbox-keys(5).

Fluxbox installs a default root menu file in /usr/local/share/fluxbox/menu. You can also use fluxbox -i to confirm this location. Of course this system-wide menu can be customized for all users at once, but it is also possible to create an individual menu file for each user. By convention, users create a menu file in ~/.fluxbox/menu. Once you’ve created your own menu file, you’ll want to make sure that you properly declare this location in your ‘init’ file so that fluxbox knows where to look. See RESOURCES, below for details.

The second type is the WINDOW MENU, which defines the contents of the menu which appears when you right-click on a window’s titlebar or iconbar. This opens a menu file as defined by ~/.fluxbox/windowmenu. If this file does not exist, fluxbox will copy in the default from /usr/local/share/fluxbox/windowmenu.

You do not need to “reload” fluxbox after editing the apps file, the changes should be taken into account the next time you open the menu.

## ROOT MENU
The root menu must begin with a [begin] tag and end with an [end] tag, and every tag must be on its own line.

There are up to four fields in a menu line. They are of the form

[tag] (label) {command} <'icon'>

The <'icon'> field is always optional when shown below. If specified, the icon will be scaled down and displayed in the menu alongside the text label of the item. It must be in .xpm or .png format.

Any line that starts with a # or ! is considered a comment and ignored by fluxbox. Also, in the label/command/filename fields you can escape any character. Using \\ inserts a literal back-slash into the label/command/filename field.

You may enter labels, commands, and icons using characters from any iconv(1) language/locale by specifying the encoding used via the [encoding] tag, detailed below.

### Structural Tags
[begin] (title)

This tells fluxbox to start parsing the menu file. This tag is required for fluxbox to read your menu file. If it cannot find it, the system default menu is used in its place. The title appears at the top of the menu. And [end] tag is required to end the menu.

[submenu] (label) {title} <'icon'>

This tells fluxbox to create and parse a new menu, which is inserted as a submenu into the parent menu. These menus are parsed recursively, so there is no limit to the number of levels or nested submenus you can have. The label is the text that will appear in the parent menu, and the title is shown at the top of the submenu. If omitted, the title will be the same as the label. An [end] tag is required to end the submenu.

[end]

This tells fluxbox that it is at the end of a menu. This can either be a [submenu] or the [begin] tag of the main root menu. There must be at least one of these tags in your menu to correspond to the required [begin] tag, and one for each [submenu].

[encoding] {encoding}

This begins an [encoding] section and specifies the string encoding of all strings until the matching [endencoding] tag. For a list of available encodings on your system, run iconv -l.

[endencoding]

This ends an [encoding] section.

[include] (path)

Parses the file specified by filename inline with the current menu. The path can be the full path to a file or it can begin with ~/, which will be expanded into your home directory. If path is a directory, then all files in that directory are included.

[separator]

This will create a nice separation line. Useful for splitting up sections in a “pretty” way. The optional comment is not displayed, but can be useful for internal documentation or script parsing of menu files.

[nop] (label) <'icon'>

Insert a non-operational item into the current menu. This is much like [separator], but instead of a line, it inserts a label. This can be used to help format the menu into blocks or sections if so desired. The label is optional, and if omitted a blank item will be inserted.

### Applications
[exec] (label) {command...} <'icon'>

Inserts a command item into the menu. When you select the menu item from the menu, fluxbox runs command... in your $SHELL (or /bin/sh if $SHELL is not set). You can use this to launch applications, run shell scripts, etc. Since all arguments are passed verbatim to the shell, you can use environment variables, pipes, or anything else the shell can do. Note that processes only see environment variables that were set before fluxbox started (such as in ~/.fluxbox/startup).

### Fluxbox Functions
[config] (label) <'icon'>

Inserts a fluxbox native submenu item, containing numerous configuration options concerning window placement, focus style, window moving style, etc. See Configuration Menu in fluxbox(1) for details.

[reconfig] (label) <'icon'>

When selected this item re-reads the current style and menu files and applies any changes. This is useful for creating a new style or theme, as you don’t have to constantly restart fluxbox every time you save your style. However, fluxbox automatically rereads the menu whenever it changes.

[restart] (label) {command} <'icon'>

This tells fluxbox to restart. If command is supplied, it shuts down and runs the command (which is commonly the name of another window manager). If command is omitted, fluxbox restarts itself.

[exit] (label) <'icon'>

Inserts an item that shuts down and exits fluxbox. Any open windows are reparented to the root window before fluxbox exits.

[style] (label) {filename} <'icon'>

This tells fluxbox to insert an item that, when selected, reads style file named filename and apply the new textures, colors and fonts to the current running session.

[stylesmenu] (directory) <'icon'>

Reads all filenames from the specified directory, assuming that they are all valid style files, and creates inline menu items in the current menu for every filename, that, when selected by the user will apply the selected style file to the current session. The labels that are created in the menu are the filenames of the style files.

[stylesdir] (label) {directory} <'icon'>

Creates a submenu entry with label (that is also the title of the new submenu), and inserts in that submenu all filenames in the specified directory, assuming that they are all valid style files (directories are ignored) in the same way as the [stylesdir] command does. Both [stylesdir] and [stylesmenu] commands make it possible to install style files without editing your init file.

[wallpapers] (directory) {command} <'icon'>

This inserts a menu item to set the wallpaper for each file in the given directory. The command is optional, and defaults to fbsetbg.

[workspaces] (label) <'icon'>

This tells fluxbox to insert a link to the workspaces menu directly into your menu. See Workspace Menu in fluxbox(1) for details.

[command] (label) <'icon'>

In addition to the commands above, any legal keys file command may be used as a menu item. See fluxbox-keys(5) for more information.

## WINDOW MENU
Like the ROOT MENU, this menu file must start with [begin] and end with [end]. However, this file consists of only one [tag] per line with no labels, commands, or icons.

The available tags in this menu are:

[shade]

Provides a menu item to shade or unshade (or, roll-up) the window. This is equivalent to the shade titlebar button.

[stick]

Provides a menu item to stick or unstick the window. Stuck windows are displayed on all workspaces. This is equivalent to the stick titlebar button.

[maximize]

Provides a menu item to maximize or unmaximize the window, equivalent to the maximize titlebar button. The button with which you click alters the behaviour of this item as follows:

•Button 1 (Un)Maximize as normal.

•Button 2 (Un)Maximize window vertically.

•Button 3 (Un)Maximize window horizontally.

[iconify]

Provides a menu item to iconify (or, minimize) the window, equivalent to the iconify titlebar button.

[close]

Closes the window gracefully, equivalent to the titlebar button.

[kill]

Kills the window’s process, like xkill(1).

[raise]

Raise the window to the top of the stack within its layer.

[lower]

Lower the window to the bottom of the stack within its layer.

[settitledialog]

Opens a dialog which can be used to set the window’s title. Some applications may re-set their own title from time-to-time, wiping out your setting.

[sendto]

Sends the window to a different workspace. When you select the workspace with a middle-click, fluxbox will also change to the new workspace. A regular click only sends the window.

[layer]

Adds a “Layer...” submenu which lets you change the layer of this window.

[alpha]

Adds a “Transparency...” submenu which lets you change the focused and unfocused transparency of this window.

[extramenus]

Adds the “Remember...” menu item, which allows you to specify which settings should be stored in the ‘apps’ file (See fluxbox-apps(5) for more details).

[separator]

Adds a horizontal line to the menu

## FILES
~/.fluxbox/menu

This is the default location for the user’s root menu.

/usr/local/share/fluxbox/menu

This is the system-wide root menu file. It will be used if the user’s root menu is missing or unparseable.

~/.fluxbox/windowmenu

This is the user’s window menu definition file

/usr/local/share/fluxbox/menu

This is the default window menu. If the user does not have this file, it will be copied to ~/.fluxbox/windowmenu on fluxbox startup.

## RESOURCES
session.menuFile: location

This may be set to override the location of the user’s root menu.

## ENVIRONMENT
The comand... field of the [exec] tag can take advantage of other environment variables if they are set before fluxbox is started.

## EXAMPLES
Root Menu.

```
# fluxbox menu file
[begin] (fluxbox)

    [exec] (rxvt) {rxvt -ls} </usr/X11R6/share/icons/terminal.xpm>

    [exec] (netscape) {netscape -install}

    [exec] (The GIMP) {gimp}

    [exec] (XV) {xv}

    [exec] (Vim) {rxvt -geometry 132x60 -name VIM -e screen vim}

    [exec] (Mutt) {rxvt -name mutt -e mutt}

    [submenu] (mozilla)

        [exec] (browser) {mozilla -browser}

        [exec] (news) {mozilla -news}

        [exec] (mail) {mozilla -mail}

        [exec] (edit) {mozilla -edit}

        [exec] (compose) {mozilla -compose}

    [end]

    [submenu] (Window Manager)

        [exec] (Edit Menus) {nedit ~/.fluxbox/menu}

        [submenu] (Style) {Which Style?}

            [stylesdir] (~/.fluxbox/styles)

            [stylesmenu] (fluxbox Styles) {/usr/local/share/fluxbox/styles}

        [end]

        [config] (Config Options)

        [reconfig] (Reconfigure)

        [restart] (Restart)

    [end]

    [exit] (Log Out)
[end]
```

Default Window Menu.

```
[begin]

  [shade]

  [stick]

  [maximize]

  [iconify]

  [raise]

  [lower]

  [settitledialog]

  [sendto]

  [layer]

  [alpha]

  [extramenus]

  [separator]

  [close]
[end]
```

## AUTHORS
•Jim Ramsay <i.am at jimramsay com> (>fluxbox-1.0.0)

•Curt Micol <asenchi at asenchi com> (>fluxbox-0.9.11)

•Tobias Klausmann <klausman at users sourceforge net> (⟨fluxbox-0.9.11)

•Grubert <grubert at users sourceforge net> (fluxbox)

•Matthew Hawkins <matt at mh dropbear id au> (blackbox)

•Wilbert Berendsen <wbsoft at xs4all nl> (blackbox)

## SEE ALSO
fluxbox(1) fluxbox-keys(5) fluxbox-apps(5) xkill(1) iconv(1)

## AUTHOR
Jim Ramsay <i.am@jimramsay.com>

Author.

branch: sisyphus


fluxbox-style

title: fluxbox-style(5)

text:
# fluxbox-style(5)

## NAME
fluxbox-style - A comprehensive look at styles/themes for fluxbox(1).

## SYNOPSIS
This document describes various options available for fluxbox styles.

## DESCRIPTION
What is a Style?

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 look of the look and feel.

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 System Styles 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.

## STRUCTURE
A style is made up of a few major components which then have their own sub-directives. The major components are as follows:

The window.* directives control the appearance of the window frames, window.tab.* controls the appearance of the window tabs, menu.* controls the appearance of the popup menu that you see when you right click on the desktop. toolbar.* is the bar you will see at the top or bottom of your screen. Finally the slit.* has options you can use to customize the appearance of the slit. However if you don’t set the slit directives specifically, the slit’s 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.

A more complete reference to this can be found in X(7), section RESOURCES.

## LOCATION
There are many places to store your styles, the most common is in your ~/.fluxbox/styles directory. The initial installation will place the default styles in /usr/local/share/fluxbox/styles providing a basic usable configuration.

When creating your own style, create a directory (normally the name of your style) in ~/.fluxbox/styles/ (If the styles directory doesn’t exist, create that also). While there isn’t 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:

```
$ cd
$ mkdir -p ~/.fluxbox/styles/YourStyle/pixmaps
$ cd ~/.fluxbox/styles/YourStyle
$ nano theme.cfg
```

Output of a packaged style should look like the following:

```
$ cd
$ tar -tjvf YourStyle.tar.bz2

 .fluxbox/styles/YourStyle/theme.cfg

 .fluxbox/styles/YourStyle/pixmaps

 .fluxbox/styles/YourStyle/pixmaps/stick.xpm

 ...
```

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’t follow practices. :)

## CREATING YOUR STYLE
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.

Here are some quick examples to illustrate basic syntax:

```
toolbar.clock.color: green
```

This sets the color resource of the toolbar clock to green. Another example:

```
menu*color:     rgb:3/4/5
```

This sets the color resource of the menu and all of its children to ‘rgb:3/4/5’. (For a description of color names, see X(1).) So this one also applies to menu.title.color and menu.frame.color. And with

```
*font:  -b&h-lucida-medium-r-normal-*-*-140-*
```

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:

```
*textColor:  rgb:3/4/5
```

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:

```
*textColor: rgb:3/4/5
toolbar.clock.textColor: rgb:255/0/0
```

With that all of the text will be rgb:3/4/5 except the toolbar clock text which will be rgb:255/0/0.

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.:

```
toolbar.clock:  Raised Gradient Diagonal Bevel1
toolbar.clock.color:    rgb:8/6/4
toolbar.clock.colorTo:  rgb:4/3/2
```

Don’t worry, we will explain what these mean. A texture description consists of up to five fields, which are as follows:

Flat | Raised | Sunken. gives the component either a flat, raised or sunken appearance.

Gradient | Solid. tells fluxbox(1) to draw either a solid color or a gradient texture.

Horizontal | Vertical | Diagonal | Crossdiagonal | Pipecross | Elliptic | Rectangle | Pyramid. Select one of these texture types. They only work when Gradient is specified.

Interlaced. 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.

Bevel1 | Bevel2. 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 ParentRelative 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.

```
toolbar.clock: pixmap
toolbar.clock.pixmap: clock_background.xpm
```

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.

All gradiented textures are composed of two color values: the color and colorTo resources. When Interlaced is used in Solid mode, the colorTo resource is used to find the interlacing color.

## FONT EFFECTS
In addition to specifying the font-family and the font-weight via the supported font-rendering-engine (eg, Xft), fluxbox(1) supports some effects: halo and shadow. To set the shadow effect:

```
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
```

To set the halo effect:

```
menu.title.font: sans-8:bold
menu.title.effect: halo
menu.title.halo.color: green
```

### FONT PROBLEMS
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: http://xfree.org/4.3.0/fonts2.html#3

## FULL COMPONENT LIST
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.

## WINDOW OPTIONS
Many, many things you can do with window design in fluxbox(1), below are your options. Have fun.

```
-----------------------------------------
window.bevelWidth:              <integer>
window.borderColor:             <color>
window.borderWidth:             <integer>
window.button.focus:            <texture type>
window.button.focus.color:      <color>
window.button.focus.colorTo:    <color>
window.button.focus.picColor:   <color>
window.button.focus.pixmap:     <filename>
window.button.pressed: <texture type>
window.button.pressed.color:    <color>
window.button.pressed.colorTo:  <color>
window.button.pressed.pixmap:   <filename>
window.button.unfocus:          <texture type>
window.button.unfocus.color:    <color>
window.button.unfocus.colorTo:  <color>
window.button.unfocus.picColor: <color>
window.button.unfocus.pixmap:   <filename>
window.close.pixmap:            <filename>
window.close.pressed.pixmap:    <filename>
window.close.unfocus.pixmap:    <filename>
window.font:                    <font>
window.frame.focusColor:        <color>
window.frame.unfocusColor:      <color>
window.grip.focus:              <texture type>
window.grip.focus.color:        <color>
window.grip.focus.colorTo:      <color>
window.grip.focus.pixmap:       <filename>
window.grip.unfocus:            <texture type>
window.grip.unfocus.color:      <color>
window.grip.unfocus.colorTo:    <color>
window.grip.unfocus.pixmap:     <filename>
window.handle.focus:            <texture type>
window.handle.focus.color:      <color>
window.handle.focus.colorTo:    <color>
window.handle.focus.pixmap:     <filename>
window.handle.unfocus:          <texture type>
window.handle.unfocus.color:    <color>
window.handle.unfocus.colorTo:  <color>
window.handle.unfocus.pixmap:   <filename>
window.handleWidth:             <integer>
window.iconify.pixmap:          <filename>
window.iconify.pressed.pixmap:  <filename>
window.iconify.unfocus.pixmap:  <filename>
window.justify:                 <{Left|Right|Center}>
window.label.active:            <texture type>
window.label.active.textColor:  <color>
window.label.focus:             <texture type>
window.label.focus.color:       <color>
window.label.focus.colorTo:     <color>
window.label.focus.pixmap:      <filename>
window.label.unfocus:           <texture type>
window.label.unfocus.color:     <color>
window.label.unfocus.colorTo:   <color>
window.label.unfocus.pixmap:    <filename>
window.label.focus.textColor:   <color>
window.label.unfocus.textColor: <color>
window.maximize.pixmap:         <filename>
window.maximize.pressed.pixmap: <filename>
window.maximize.unfocus.pixmap: <filename>
window.roundCorners:            <{Top|Bottom}{Left|Right}>
window.shade.pixmap:            <filename>
window.shade.pressed.pixmap:    <filename>
window.shade.unfocus.pixmap:    <filename>
window.stick.pixmap:            <filename>
window.stick.pressed.pixmap:    <filename>
window.stick.unfocus.pixmap:    <filename>
window.stuck.pixmap:            <filename>
window.stuck.unfocus.pixmap:    <filename>
window.lhalf.pixmap:            <filename>
window.lhalf.unfocus.pixmap:    <filename>
window.rhalf.pixmap:            <filename>
window.rhalf.unfocus.pixmap:    <filename>
window.title.focus:             <texture type>
window.title.focus.color:       <color>
window.title.focus.colorTo:     <color>
window.title.focus.pixmap:      <filename>
window.title.height:            <integer>
window.title.unfocus:           <texture type>
window.title.unfocus.color:     <color>
window.title.unfocus.colorTo:   <color>
window.title.unfocus.pixmap:    <filename>
-----------------------------------------
```

## MENU OPTIONS
Everything you need to make your menu look pretty.

```
-----------------------------------------
menu.bevelWidth:                <integer>
menu.borderColor:               <color>
menu.borderWidth:               <integer>
menu.bullet:                    <{empty|square|triangle|diamond}>
menu.bullet.position:           <{left|right}>
menu.frame:                     <texture type>
menu.frame.color:               <color>
menu.frame.colorTo:             <color>
menu.frame.disableColor:        <color>
menu.frame.font:                <font>
menu.frame.justify:             <{Left|Right|Center}>
menu.frame.pixmap:              <filename>
menu.frame.textColor:           <color>
menu.hilite:                    <texture type>
menu.hilite.color:              <color>
menu.hilite.colorTo:            <color>
menu.hilite.font:               <font>
menu.hilite.justify:            <{left|center|right}>
menu.hilite.pixmap:             <filename>
menu.hilite.textColor:          <color>
menu.itemHeight:                <integer>
menu.title:                     <texture type>
menu.title.color:               <color>
menu.title.colorTo:             <color>
menu.title.font:                <font>
menu.title.pixmap:              <filename>
menu.title.textColor:           <color>
menu.title.justify:             <{Left|Right|Center}>
menu.titleHeight:               <integer>
menu.roundCorners:              <{Top|Bottom}{Left|Right}>
menu.selected.pixmap:           <filename>
menu.submenu.pixmap:            <filename>
menu.unselected.pixmap:         <filename>
-----------------------------------------
```

## BACKGROUND
Every style must specify the background option. If you don’t want your style to change the user’s background, then use ‘background: none’. The options ‘centered’, ‘aspect’, ‘tiled’, and ‘fullscreen’ require the ‘background.pixmap’ resource to contain a valid file name. The ‘random’ option requires ‘background.pixmap’ to contain a valid directory name. For these options, fluxbox(1) will call fbsetbg(1) to set the background. The options ‘gradient’, ‘solid’, and ‘mod’ all require ‘background.color’ to be set. ‘gradient’ and ‘mod’ both require ‘background.colorTo’. ‘mod’ requires ‘background.modX’ and ‘background.modY’ to be set as well. These options will be passed to fbsetroot(1) to set the background. The special option ‘unset’ is for use in user overlay files only. It specifies that fbsetbg should never be run (by default, even when ‘none’ is set in the overlay, fluxbox will try to run “fbsetbg -z” to restore the last wallpaper).

```
background: centered|aspect|tiled|fullscreen|random|solid|gradient <texture>|mod|none|unset
background.pixmap: <file or directory>
background.color: <color>
background.colorTo: <color>
background.modX: <integer>
background.modY: <integer>
```

## SLIT
Here are all of the options for the slit.

```
-----------------------------------------
slit: <texture type>
slit.bevelWidth: <integer>
slit.borderColor: <color>
slit.borderWidth:               <integer>
slit.color:                     <color>
slit.colorTo:                   <color>
slit.pixmap:                    <filename>
-----------------------------------------
```

## TOOLBAR OPTIONS
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.

```
-----------------------------------------
toolbar: <texture type>
toolbar.bevelWidth:             <integer (0-255)>
toolbar.borderColor:            <color>
toolbar.borderWidth:            <integer>
toolbar.button.scale:           <integer>
toolbar.color:                  <color>
toolbar.colorTo:                <color>
toolbar.clock:                  <texture type>
toolbar.clock.borderColor:      <color>
toolbar.clock.borderWidth:      <integer>
toolbar.clock.font:             <font>
toolbar.clock.justify:          <{Left|Right|Center}>
toolbar.clock.pixmap:           <filename>
toolbar.clock.color:            <color>
toolbar.clock.colorTo:          <color>
toolbar.clock.textColor:        <color>
toolbar.height:                 <integer>
toolbar.iconbar.focused:        <texture type>
toolbar.iconbar.focused.color:  <color>
toolbar.iconbar.focused.colorTo:<color>
toolbar.iconbar.focused.pixmap: <filename>
toolbar.iconbar.unfocused:      <texture type>
toolbar.iconbar.unfocused.color:  <color>
toolbar.iconbar.unfocused.colorTo: <color>
toolbar.iconbar.unfocused.pixmap: <filename>
toolbar.iconbar.empty:          <texture type>
toolbar.iconbar.empty.color:    <color>
toolbar.iconbar.empty.colorTo:  <color>
toolbar.iconbar.empty.pixmap:   <filename>
toolbar.iconbar.focused.borderColor: <color>
toolbar.iconbar.focused.borderWidth:    <integer>
toolbar.iconbar.unfocused.borderColor: <color>
toolbar.iconbar.unfocused.borderWidth:  <integer>
toolbar.iconbar.borderColor:    <color>
toolbar.iconbar.borderWidth:    <integer>
toolbar.iconbar.focused.font:   <font>
toolbar.iconbar.focused.justify:        <{Left|Right|Center}>
toolbar.iconbar.focused.textColor: <color>
toolbar.iconbar.unfocused.font: <font>
toolbar.iconbar.unfocused.justify:      <{Left|Right|Center}>
toolbar.iconbar.unfocused.textColor: <color>
toolbar.pixmap:                 <filename>
toolbar.shaped:                 <boolean>
toolbar.workspace.font:         <font>
toolbar.workspace.justify:      <{Left|Right|Center}>
toolbar.workspace.textColor:    <color>
toolbar.workspace:              <texture type>
toolbar.workspace.borderColor:  <color>
toolbar.workspace.borderWidth:  <integer>
toolbar.workspace.color:        <color>
toolbar.workspace.colorTo:      <color>
toolbar.workspace.pixmap:       <filename>
-----------------------------------------
```

## EXAMPLES
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:

```
-----------------------------------------
*color: slategrey
*colorTo:       darkslategrey
*unfocus.color: darkslategrey
*unfocus.colorTo:       black
*textColor:     white
*unfocus.textColor:     lightgrey
*font:  lucidasans-10
-----------------------------------------
```

This sets nice defaults for many components.

## COLOR FORMATS
These are the color formats for styles:

```
#000000 (Hexadecimal)
rgb:<0-255>/<0-255>/<0-255>
```

See /usr/share/X11/rgb.txt for an explanation.

## AUTHORS
Blackbox was written and maintained by Brad Hughes <blackbox at alug.org> and Jeff Raven <jraven at psu.edu>.

fluxbox(1) is written and maintained by Henrik Kinnunen <fluxgen at fluxbox.org> with contributions and patches merged from many individuals around the world.

The Official fluxbox(1) website: http://www.fluxbox.org You can find a lot of styles here: http://tenr.de/

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.

## SEE ALSO
fluxbox(1) fbsetbg(1) fbsetroot(1)

## AUTHOR
Henrik Kinnunen <fluxgen@fluxbox.org>

Author.


fnott.ini

package: fnott

title: fnott.ini(5)

text:
# fnott.ini(5)

## NAME
fnott - configuration file

## DESCRIPTION
fnott uses the standard unix configuration format, with section based key/value pairs. The default (global) section is unnamed (i.e. not prefixed with a [section]). However it can also be explicitly named [main], say if it needs to be reopened after any of the other sections.

fnott will search for a configuration file in the following locations, in this order:

- XDG_CONFIG_HOME/fnott/fnott.ini (defaulting to

~/.config/fnott/fnott.ini if unset)

- XDG_CONFIG_DIRS/fnott/fnott.ini (defaulting to

/etc/xdg/fnott/fnott.ini if unset)

## SECTION: default

### Global options
output

The output to display notifications on. If left unspecified, the compositor will choose one for us. Note that if you do not specify an output, and the output chosen by the compositor is scaled, then each new notification will flash a low-res frame before re-rendering with the correct scale factor. This is because fnott has no way of knowing what the scale factor is until after the notification has been mapped (i.e. shown).

Default: unspecified.

In Sway, you can use swaymsg -t get_outputs to get a list of available outputs.

min-width

Minimum notification width, in pixels. Default: 0.

max-width

Maximum notification width, in pixels. 0 means unlimited. Note that fnott will automatically word-wrap the notification text if set to a non-zero value. Default: 0.

max-height

Maximum notification height, in pixels. 0 means unlimited. Default: 0.

icon-theme

Icon theme to use when a notification has requested an non-embedded icon. Default: default.

max-icon-size

Maximum icon size, in pixels. Icons larger than this will be scaled down. A value of 0 disables icons. Default: 32.

stacking-order

How to stack multiple notifications.

- bottom-up : oldest, highest priority furthest away from the anchor point.

- top-down: oldest, highest priority at the anchor point.

Thus, if the notifications are anchored at the top, bottom-up will have the most recent notification in the upper corner, while the oldest notification is in the bottom of the stack.

Default: bottom-up.

anchor

Where notifications are positioned: top-left, top-right, bottom-left, bottom-right or center. Default: top-right.

edge-margin-vertical

Vertical margin, in pixels, between the screen edge (top or bottom, depending on anchor pointer) and notifications. Default: 10.

edge-margin-horizontal

Horizontal margin, in pixels, between the screen edge (left or right, depending on anchor pointer) and notifications. Default: 10.

notification-margin

Margin between notifications. Default: 10.

selection-helper

Command (and optionally arguments) to execute to display actions and let the user select an action to run. The utility should accept (action) entries to display on stdin (newline separated), and write the selected entry on stdout.

It is strongly recommended that you enable selection-helper-uses-null-separator (see below), if your helper of choice supports it.

Default: dmenu.

selection-helper-uses-null-separator

Boolean. When enabled, the action strings passed to the selection helper will be NULL separated, instead of newline separated. Note that you may also have to adjust selection-helper, to ensure the selection helper parses the action strings correctly. For example, instead of fuzzel --dmenu, you would have to use fuzzel --dmenu0.

Default: no.

play-sound

Command to execute to play notification sounds. ${filename} will be expanded to the path to the audio file to play. Default: aplay ${filename}.

scaling-filter

Which scaling filter to use when scaling non-SVG notification images. Possible values are:

- none

- nearest

- bilinear

- cubic

- lanczos3

none is the fastest, but also looks the worst. lanczos3 produces the best result, but is also, by far, the slowest option.

Default: lanczos3

### Per-urgency default options
These options can also be specified in an urgency section, in which case they override the values specified in the default section.

layer

Layer on which notifications will appear: background, bottom, top or overlay. Default: top.

background

Background color of the notification, in RGBA format. Default: 3f5f3fff.

border-color

Border color of the notification, in RGBA format. Default: 909090ff.

border-radius

Corner radius on the border in pixels. Default: 0.

border-size

Border size, in pixels. Default: 1.

padding-vertical

Vertical padding, in pixels, between the notification edge (top or bottom) and notification text. Default: 20.

padding-horizontal

Horizontal padding, in pixels, between the notification edge (left or right) and notification text. Default: 20.

dpi-aware

Boolean. When set to yes, fonts are sized using the monitor's DPI, making a font of a given size have the same physical size, regardless of monitor.

In this mode, the monitor's scaling factor is ignored; doubling the scaling factor will not double the font size.

When set to no, the monitor's DPI is ignored. The font is instead sized using the monitor's scaling factor; doubling the scaling factor does double the font size.

Note that this option typically does not work with bitmap fonts, which only contains a pre-defined set of sizes, and cannot be dynamically scaled. Whichever size (of the available ones) that best matches the DPI or scaling factor, will be used.

Also note that if the font size has been specified in pixels (:pixelsize=N, instead of :size=N), DPI scaling (dpi-aware=yes) will have no effect (the specified pixel size will be used as is). But, if the monitor's scaling factor is used to size the font (dpi-aware=no), the font's pixel size will be multiplied with the scaling factor.

Default: no

title-font

Font to use for the application title, in fontconfig format (see FONT FORMAT). Default: sans serif.

title-color

Text color to use for the application title, in RGBA format. Default: ffffffff.

title-format

Template string for the title portion of the notification (see FORMAT STRINGS). Default: %a%A.

summary-font

Font to use for the summary, in fontconfig format (see FONT FORMAT). Default: sans serif.

summary-color

Text color to use for the summary, in RGBA format. Default: ffffffff.

summary-format

Template string for the summary portion of the notification (see FORMAT STRINGS). Default: %s\n.

body-font

Font to use for the text body, in fontconfig format (see FONT FORMAT). Default: sans serif.

body-color

Text color to use for the text body, in RGBA format. Default: ffffffff.

body-format

Template string for the body portion of the notification (see FORMAT STRINGS). Default: %b.

progress-bar-height

Height, in pixels, of progress bars (rendered when a notification has an int:value hint). Default: 20.

progress-color

Color, in RGBA format, of progress indicator. Default: ffffffff.

progress-style

Defines the style of the progress indicator in notifications. Possible values:

- bar: Displays a separate progress bar.

- background: Fills the notification background with the progress color.

Default: bar.

max-timeout

Time limit, in seconds, before notifications are automatically dismissed. Applications can provide their own timeout when they create a notification. This option can be used to limit that timeout. A value of 0 disables the limit. Default: 0.

default-timeout

Time, in seconds, before notifications are automatically dismissed if the notifying application does not specify a timeout. A value of 0 disables the timeout. I.e. if the application does not provide a timeout, the notification is never automatically dismissed (unless max-timeout has been set). Default: 0.

idle-timeout

Time, in seconds, that you must be idle to prevent any notification from being dismissed. A value of 0 disables the timeout. Default: 0.

sound-file

Absolute path to audio file to play when a notification is received. If unset, no sound is played. Default: unset.

icon

Icon to use when none is provided by the notifications themselves. Can be either an absolute path, or a name (without extension). In the latter case, it will be searched for in the selected icon theme, using the fallback rules defined by the XDG icon theme specification.

Default: unset.

## SECTION: low
This section allows you to override the options listed under per-urgency default options for low priority notifications.

By default, the following options are already overridden:

- background: 2b2b2bff

- title-color 888888ff

- summary-color: 888888ff

- body-color: 888888ff

## SECTION: normal
This section allows you to override the options listed under per-urgency default options for normal priority notifications.

By default, the following options are already overridden: none.

## SECTION: critical
This section allows you to override the options listed under per-urgency default options for critical priority notifications.

By default, the following options are already overridden:

•

background: 6c3333ff

## FONT FORMAT
The font is specified in FontConfig syntax. That is, a colon-separated list of font name and font options.

Examples:

- Dina:weight=bold:slant=italic

- Courier New:size=12

## FORMAT STRINGS
The title-format, summary-format and body-format options allow you to configure what to display for the corresponding portion of the notification.

They are strings with placeholders that are expanded with attributes from the notification:

- %a application name

- %s notification summary

- %b notification body text

- %A action indicator ('*' if actions are present, empty string otherwise)

- %% a literal '%'

- \n a literal newline

Also supported are the following markup tags:

-  bold

-  italic

-  underline

## SEE ALSO
fnott(1)