Fluxbox

Fluxbox is Article description::an open-source stacking [[window manager for X11 that was originally forked from Blackbox.]] This guide provides instructions on how to set up the Fluxbox window manager for X11.

Introduction
For those who are unfamiliar with Linux's desktop model, window managers (WMs) are the applications which are run by X11 to manage other graphical programs. WMs control where each window is placed, its size, and which desktop(s) have access to it. This can be done automatically via a set of user-defined rules or can be done at runtime with the mouse and possibly keyboard shortcuts, depending on the specific WM.

Some WMs, however, take on more functionality than just window management. Fluxbox also provides a platform for launching applications, configuring keyboard shortcuts and background images, as well as displaying information with the slit. GNOME's default WM, Metacity, does not include these things, but they are available through other GNOME programs. Thus, one cannot truly say that Fluxbox is a lightweight WM. However, since Fluxbox includes everything necessary for a basic desktop, many people use it in place of larger desktop suites like GNOME or KDE.

To make things even more confusing, however, Fluxbox can replace the default WM for GNOME or KDE. For example, some people find that Metacity, GNOME's window manager, simply does not have the flexibility they need, but that Fluxbox does not have all the built-in applications and integration they desire from a complete desktop environment. Thus, a person could use Fluxbox to manage the windows and GNOME for the rest. Note, however, that with this setup there are some issues caused by overlapping feature sets.

Fluxbox can also be expanded by third party software. This is often ideal in situations where hardware resources are limited, or as a matter of personal taste.

This article is aimed at those who are new to Fluxbox, curious, or who are wanting to get more out of the Gentoo/Fluxbox experience. The article will also illustrate how to get more (yet quite optional) functionality by using third party programs that work well with Fluxbox.

Installation
First, make sure a working X environment has been installed, as shown in the X Server's configuration article.

USE flags
Before installing Fluxbox take a look at some of the available USE flags (listed above).

While the  and   USE flags are provided to give compatibility with these environments, it has been the author's experience that these USE flags are unneeded. If qt, gtk+, or any KDE/GNOME utility is desired feel free to emerge and configure them independently. The  and   flags simply add support for the respective protocols, and do not depend on external libraries. They so, however, increase the Fluxbox binary size.

There is also a  flag to make configuration easier later on. This flag will install, a special Fluxbox color scheme for the  text editor. This enables users to more readily see the contents of their keys and init files for Fluxbox. It is a tiny extension for vim and is highly recommended if Fluxbox is to be configured at all.

Finally, there are three flags that customize the functionality of Fluxbox,,   and. These flags are provided so that users who do not need the slit or the toolbar can compile Fluxbox without them. This is useful when needing to run an extremely minimal environment, or when planning to use different applications that provide these features, such as standalone panels or docks.

Once the USE flags have been decided, add them to the file. For example, the following command will setup Fluxbox to use  and   but will keep the binary small by not pulling in support for KDE or GNOME protocols:

Emerge
Installing fluxbox is a matter of emerging it to the system:

That is it; Fluxbox is now installed! However, it is likely it will not be used efficiently with just those tools. The following sections will help install other potentially necessary packages, and configure Fluxbox and the third party programs to work better for the user. Keep in mind that all these steps are optional, so feel free to pick and choose from what is presented as best suited.

Preparing X11
Fluxbox is simply another program that runs on X11. If desired, one can and then type  at in an  window. However, to say the least, this is annoying. If one does not desire to boot to the GUI, but instead wants to start X11 manually, it is possible to have X automatically load Fluxbox by executing, as a normal (non-root) user:

The above method is also not ideal for most users, as they want to have the desktop environment all the time; it is a pain to type when desiring to use a GUI every time the system boots. It also presents a security risk to the unaware. If the X11 display is locked using, but run X11 from a console, then someone with physical access to the system can switch to that console, kill X11, and use whatever account is logged in. The only way to prevent this is to either background X11 or run it in, detach the session, then logout of the console. This tedious task should not have to be performed. When graphical login manager this problem does not exist. However, graphical login managers require running X11 as root, which may be a bad thing. There are, as of this writing, no exploits that the author is aware of for the current version, but if one is concerned, then do not use X11 at all or use the above method with. Note that this is not a Fluxbox issue; it is an issue with X11 itself.

There are a number of graphical login managers to choose from; another manager can be chosen at discretion of the user, however SLiM will be used for the purpose of this article. SLiM works well for Fluxbox, as well as any other environments that may be installed (such as GNOME, KDE, or Xfce).

Display locking
When dealing with WMs a must have is a program lock to the X display for preventing unauthorized system access. When installing Fluxbox it would be wise to emerge so the system can be locked. It is also advisable to enable autolocking of the screen when the system is idle. The package can be used to execute  after a specified timeout. The vast majority of users will also want the ability to set their own background images on the desktop; emerging will make setting desktop background images a possibility. also doubles as a nice X11 terminal. is a more lightweight solution that doubles as a slimmed down image browser.

To enable autolocking add the following to the file above the   line:

Themes and artwork
This section can be skipped for a minimal footprint, however it is nice to allow users to customize their WM's appearance. Themes specific to Fluxbox, Gentoo artwork for any WM, and themes that can be used on any *box WM will be installed.

Running Fluxbox for the first time
Now Fluxbox ready to run for the first time. It will create a directory called in each user's home directory, which is where Fluxbox will store its settings and populate them with some default values.

If SLiM or another display manager has been installed, be sure to start it by becoming root and running:

Choose Fluxbox as the session and login with a regular user.

Once Fluxbox is running, it will look quite plain. A blank desktop with a toolbar at the bottom should be visible. Right-clicking anywhere on the desktop should bring up the menu. From there X applications can be started, or a terminal can be opened run console programs.

Fluxbox hotkeys
Fluxbox comes with a very weak set of default keysets. It enables a user to switch windows and desktops, and no more. Before changing it, there are a few things necessary to know. In the Fluxbox keys file, there are some strange modifiers. Mod1 is commonly known as the key, and Mod4 is the  (AKA Windows) key. Control and Shift are and. However, it is usually best to use Mod1 or Mod4 because other X11 programs tend to use Control and Shift for their own shortcuts.

All of these are independent, so feel free to leave out anything not desired, or to modify the given example to meet special needs. This guide uses what the author assumes to be the most common programs, so also substitute the name of the binary used if it differs from what appears. For more information, read the man page for Fluxbox.

With that out of the way, fire up a text editor (non-root user), point it to, and begin enhancing some shortcuts!

System monitor
It is a common desire to setup a system monitor for X11 on desktop systems. Gkrellm ( is a commonly used monitor, but in the spirit of Fluxbox minimalism, a simpler monitor will be used. Welcome . If desired, use another monitor; there are plenty of instructions elsewhere on the wiki.

The default configuration file for Conky is rather weak, but more info can be found by reading the man page or the Conky guide.

Icons
Fluxbox does not come with a utility or program to draw icons to the desktop; everything is handled by keyboard shortcuts, or the right-click menu. iDesk is a program that can be used to fulfill this need. It is aimed at users of minimal WMs like Fluxbox who want to display icons in the root window, and it even supports funky graphic effects like transparency! Despite its name, iDesk is not affiliated with Apple or Mac. Installing iDesk is as simple as:

Once installed, it will be necessary to configure iDesk so that it is able to display icons. Its configuration file can be found at. This is a rather lengthy task, and can not be well covered in this article. The following resources might be useful in order to configure iDesk:, iDesk's Usage Guide and this thread in the Gentoo Forums.

Graphical file managers
It is important to note that Gentoo does not need a file manager. It is perfectly possible, and indeed simpler (in the author's humble opinion), to do file manipulation by command-line. However, not everyone agrees...

Many users who are new to Gentoo/Fluxbox are put off by the lack of a graphical file manager such as in GNOME. Fluxbox itself does not provide such a program, but, as always, one is simple to acquire. There are many choices, but this article will only present three:


 * 1) Gentoo file manager for the minimalist who likes text only.
 * 2) rox for those who like text and graphics.
 * 3) thunar for those who like full graphical file managers.

For those who are not sure what they like, it is also possible to install all three file managers in order to try each one.

Gentoo File Manager
Gentoo is a minimalistic file manager which seeks to provide the benefits of a GUI interface without the bloat which is commonly associated.

The Gentoo file manager aims to be fully configurable via GUI, so feel free to tweak.

Rox Filer
Rox Filer is a file manager which uses icons as well as text and is much like Windows' Explorer.

Rox behaves much like "traditional" file managers, so its interface should be intuitive. If not, there always are man pages for further information.

Thunar File Manager
Thunar is a lightweight, fast file manager that, like Rox, behaves much like "traditional" file managers. It includes icons and text, and it is easy to use. Though originally designed for Xfce, it makes a nice complement to a Fluxbox-based system.

Image viewers
Many WMs come with utilities to view pictures (images) in a directory. These applications are small and lightweight, and do not allow for editing (which is assumed to be done by tools such as ). This is necessary when using command line,, or as file managers. Although can display image thumbnails having a separate lightweight image viewer is still a good idea.

can be launched in any directory, and can browse through any supported picture format.

Setting a theme, background, and a startup script
Fluxbox has a number of themes that can be accessed via the right click menu. Navigate to →. These themes usually set their own background, which is either a single color or a gradient of some type. Most users prefer to set their own backgrounds, and to have those background persist no matter what theme has been chosen. To do so, another one of Fluxbox's configuration files must be modified, this one governs Fluxbox's startup behavior. Fire up that text editor again; this time point it to the file.

If this file was pre-existing then be sure to clear it. Add the following to the newly created file, uncommenting as needed, and filling in values for the CAPS:

Enabling privileged operations through polkit
Fluxbox is able to communicate with core system services over D-Bus to allow privileged operations, such as shutting down the system. To handle the authorizations towards these operations, polkit (formerly known as policykit) can be used.

In order to use polkit, an agent is required. There are several polkit agents available and if a desktop profile is used, one of them will already be installed. Their respective startup files are stored in but are not considered by fluxbox. Instead, an additional entry should be made to fluxbox' file:

Menu generation
The author uses a text editor to create menus. If this sounds appealing, please skip this section and proceed to Editing Menus by Hand.

It is possible to edit by hand after using an automatic generator (see next section), to add packages or delete those which are not used. Note when something is deleted from this menu, it does not delete the package from the system; only a link is removed from the individual user's menu. The program can still be run by command-line or alternate methods (hotkeys, etc.).

If Fluxbox has been installed then a program called should also be installed. This program can be used to generate menus. Run it with the following options as a non-root user to generate a menu:

It is recommended (listed above) is used instead of other programs that accomplish similar tasks. The reason for the recommendation is that other programs may not understand Gentoo's filesystem directory structure, where does.

This can also be done from the Fluxbox menu itself. There is usually an entry in the menu called  which will re-run this script, looking for any new applications that have been installed since the last time it was ran.

Editing menus by hand
Fluxbox's menu is a text file that follows a simple syntax that is described in this section. The default menu definition is present in the file.

Menu entries for executing applications are defined by an  element. Entries can be defined under the  definition (the menu root), or between a   and its corresponding   line (submenu definitions). For example:

The root menu definition begins with the  tag, followed by its name, between parentheses and ends with its corresponding   tag. All the menu commands (called here, tags) are enclosed by square brackets, menu names will be enclosed between parentheses and the actual commands are enclosed between braces. Comments are allowed in this file, for lines beginning with.

In the example shown above, the first  line defines a new entry named "XTerm White on Black", which will execute  as if from a command line. Next is a submenu which is defined using the  tag, and after that a section called "More terminals", with two more   commands. Any submenu definition must have its corresponding  tag.

There are other menu commands that can be used in the file. Read the official documentation available online for more information.

Setting default applications
See DefaultApplication.

Summary
Congratulations! Fluxbox is now installed, configured, and ready to go. If any questions or suggestions come to mind feel free to edit this page, add a suggestion to the associated talk page, and/or file a bug report at Gentoo's Bugzilla.

External resources

 * The Fluxbox wiki.
 * Fluxbox developers and users in on Freenode.net.