FLUXBOX(1)

πŸ“¦
version 1.3.7 Β· 2 versions
, in debian trixie, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸŽ€ FLUXBOX(1) β€” Fluxbox Manual πŸŽ€

πŸ’– NAME πŸ’–

fluxbox β€” A lightweight window manager for the X Windowing System. Periodt.

✨ SYNOPSIS ✨

fluxbox [-rc rcfile] [-no-slit] [-no-toolbar] [-log logfile] [-display
display] [-screen all|scr,scr...] [-verbose] [-sync]

fluxbox [-v | -version] | [-h | -help] | [-i | -info] | [-list-commands]

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so, fluxbox(1) is a window manager. As such it provides configurable window decorations, a root menu to launch applications and a toolbar that shows the current workspace name, a set of application names and the current time. There is also a workspace menu to add or remove workspaces. Multitasking queen behavior.

Fluxbox can iconify (or minimize) windows to the toolbar. One click and they reappear. A double-click on the titlebar of the window will shade it; i.e. the window will disappear, and only the titlebar will remain visible. Shade it and slay.

There are also two areas commonly used by small applets: the slit can be used to dock small applications; e.g. most of the bbtools and Window Maker dockapps can use the slit, and the systray which lives in the toolbar supports standard system tray icons provided by some applications. Dockapp besties, rise.

Fluxbox uses its own graphics class to render its images on the fly. By using style files, you can determine in great detail how your desktop looks. fluxbox styles are compatible with those of Blackbox 0.65 or earlier versions, so users migrating can still use their current favourite themes. Theme compatibility? Iconic.

Most of the default keyboard and mouse button actions mentioned in this manual can be changed and configured in the keys file. This powerful configuration file can also be used to automate almost any action you may want to perform, from launching applications to moving windows around the screen. See fluxbox-keys(5) for details. Automation is the moment.

Fluxbox can also remember certain attributes of individual application windows and restore these settings the next time the window opens. See the fluxbox-apps(5) for details. Memory unlocked.

Fluxbox supports the majority of the Extended Window Manager Hints (EWMH) specification, as well as numerous other Window Hinting standards. This allows all compliant window managers to provide a common interface to standard features used by applications and desktop utilities. Standards? We love to see it.

πŸ’… OPTIONS πŸ’…

  • -display display β€” Start fluxbox on the specified display. Programs started by fluxbox will share the DISPLAY environment variable also. Set the display, set the vibe.
  • -h, -help β€” Display command line options. Helpful bestie energy.
  • -i, -info β€” Display useful information concerning the defaults and compiled-in options. Info dump, but make it cute.
  • -log logfile β€” Starting fluxbox with this option will designate a file in which you want to log events to. Logs? For the girlies who debug.
  • -no-slit β€” Do not use the container for DockApps (aka the Slit). No slit, no problem.
  • -no-toolbar β€” Do not use the toolbar. Toolbar off, minimalist era.
  • -rc rcfile β€” Use a different config file other than the default ~/.fluxbox/init. Custom rc? We love a personalized config.
  • -v, -version β€” The version of fluxbox installed. Version check, bestie.
  • -screen all|scr,scr... β€” Run on specified screens only or all (by default). Pick your screens.
  • -verbose β€” Print more information in process. Verbose mode: she talks a lot, we listen.
  • -sync β€” Synchronize with the X server for debugging. Debugging sync, periodt.
  • -list-commands β€” Lists all available internal commands. Command list? Obsessed.

πŸš€ STARTING FLUXBOX πŸš€

fluxbox(1) comes with a program called startfluxbox(1) usually located wherever you installed fluxbox. This script provides you with many options and variables that can be set when starting fluxbox. To actually call fluxbox and begin using it, you should place exec startfluxbox in your ~/.xinitrc as the last executed command. This is assuming that the location of fluxbox(1) and startfluxbox(1) are in your shell’s $PATH. Also note that you may need to create the ~/.xinitrc file or your setup may use ~/.xsession instead, depending on your X setup. Some X login managers like gdm(1) or kdm(1) may simply provide a β€œFluxbox” session for you without having to alter any settings. So many paths, but you got this.

By using fluxbox -i you’ll see the defaults used by fluxbox(1). These are what fluxbox looks for upon startup. In the list of β€œDefaults:” you’ll see a menu file location, this is where you can provide a system-wide menu file for your users. System-wide menu? Generous queen.

On exit or restart, fluxbox will save user defaults in the file ~/.fluxbox/init. Resources in this file can also be edited by hand, see the RESOURCES section for more details. fluxbox(1) also has many tools to edit these; look through the main menu once fluxbox has started to find different ways of managing your session. Hand editing? We love a config file.


πŸ’– USING FLUXBOX πŸ’–

Okay bestie, real talk: the very first time you fire up fluxbox, if you're coming from a full desktop environment like KDE or Gnome, you're gonna look at your screen and go "...that's it? 🧐". And yeah, it looks mad minimal. That's not a bug, that's the whole point β€” fluxbox is built to be fast and powerful, so it takes a hot second to get used to. But the rewards?? Immaculate. Worth every second. 🫢

This section is your little crash course in the common stuff. But fr fr, please go read the referenced sections of this manual too, because that's where you actually level up your understanding of what fluxbox can do. ✨


🌸 Root Window (Main)

So you just started fluxbox and you're staring at your desktop. What do you see? Basically one thing: the toolbar. That's it. That's the vibe. πŸ’…

  • Right-click (mouse button 3) somewhere on the desktop β†’ you get the Root Menu πŸ‘‘
  • Middle-click (mouse button 2) on the desktop β†’ you get the Workspace Menu

πŸ“‹ Root Menu and Workspace Menu

From the RootMenu you can launch applications and configure fluxbox. Iconic behavior honestly.

The WorkspaceMenu shows you all your windows and which workspaces they're chillin' on. Super handy when you've lost something.

Wanna customize these menus? Head over to the MENUS section, bestie. πŸ’–


πŸŽ€ Toolbar

The toolbar is a little combo platter β€” it can hold any combination of the following tools, and by default they show up in this exact order:

  • Workspace Name: Name of the current visible workspace
  • Workspace Arrows: Previous/Next Workspace
  • Iconbar: List of windows managed by fluxbox
  • Window Arrows: Previous/Next Application Window
  • System Tray: Area for applets
  • Clock: Date and Time

And yes, you can customize both the contents and the behavior of the toolbar. The TOOLBAR section has all the deets. 🌈


πŸ•³οΈ Slit

Not me having to tell you this: you will not see the slit at first. πŸ‘» It's there. It exists. It's just not being used yet, and that trips up literally everyone at the start.

Think of it as a dock where you can park smaller programs. If you've peeped any screenshots on the official fluxbox web site, you probably noticed little tiny programs sitting on the edge of the screen β€” yeah, those were almost definitely docked programs living in the slit. 🐚

There's an entire SLIT section below that goes into detail about all your options, so go read that when you're ready.


πŸ₯ž Layers

fluxbox manages these layers, listed from highest to lowest:

  • Above Dock
  • Dock
  • Top
  • Normal
  • Bottom
  • Desktop

Windows on a higher layer will always appear above windows on a lower one. Periodt. βœ‹

These layers work on application windows, the slit, or the toolbar. You can assign applications to a certain layer by specifying it in the apps file or through the WindowMenu.

  • We talk about the apps file in fluxbox-apps(5) πŸ“–
  • We talk about the WindowMenu in the MENUS section
  • We go deeper on layers in the LAYERS section

🎯 Focus Model

The window that has the focus is the one receiving key and mouse events β€” it's the main character of the moment, basically. πŸ‘‘

You can pick your focus model via the Configuration menu inside the root menu. The different types of focus are discussed down in the FOCUS MODEL section.


πŸͺŸ Windows

Here's your window choreography, memorize it:

  • Left-click (mouse button 1) on any part of the window's border β†’ raises it. Drag it and you move the window to another part of the desktop. πŸš€
  • Right click and drag on the border β†’ resizes the window
  • Dragging the resize grips at the left and right bottom corners β†’ also resizes the window
  • Middle clicking on a border or titlebar β†’ immediately lowers the window
  • Right clicking on the titlebar β†’ opens the Window menu

The commands unique to that Window menu are discussed in detail in the Window Menu section. Go look. πŸ¦‹


πŸ—‚οΈ Tabs

fluxbox lets windows get grouped β€” you do this by middle clicking and holding on a window's tab, then dragging it onto another window. This is called "tabbing" and it's lowkey genius: multiple applications in one location on the desktop, and then you can do several operations (like moving or resizing) to all the windows in the group at once. πŸ”₯

By default, tabs sit just above the window, but they can be embedded in the titlebar or moved to other locations on the outside of the window. Config details live in the TAB OPTIONS section.

You can also set up automatic grouping using the apps file β€” check out GROUP SECTIONS in fluxbox-apps(5) for the details. πŸ’œ


⌨️ Key Bindings

There are a bunch of key bindings set up by default, and you can configure and extend them to just about anything you can imagine with a keyboard. See fluxbox-keys(5) for how to do all that.

Here are the default bindings fluxbox sets up for you:

πŸ–±οΈ Mouse clicks on the empty desktop:

  • Left-click (Button 1): hides all fluxbox menus
  • Middle-click (Button 2): shows the Workspace Menu
  • Right-click (Button 3): shows the Root Menu
  • Scroll wheel (Buttons 4 and 5): jump to the previous/next workspace

πŸ–±οΈ Mouse gestures on a window:

  • ALT+Drag Left-click anywhere on a window moves the window.
  • ALT+Drag Right-click anywhere on a window resizes the window.
  • ALT+Middle-click anywhere on a window lowers the current window.

πŸ–±οΈ Mouse gestures on a window's titlebar:

  • CTRL+Drag Left-click on a window's titlebar lets you drag to attach the window to another's tab group
  • Double Left-click on a window's titlebar shades the window
  • Middle-click on a window's titlebar lowers the window
  • Right-click on a window's titlebar pops up the Window Menu

πŸ–±οΈ Mouse gestures on the toolbar:

  • Scroll wheel on the toolbar cycles through windows

⌨️ Keyboard bindings:

  • ALT+Tab / ALT+Shift+Tab: Cycle through windows
  • WIN+Tab / WIN+Shift+Tab: Cycle through tabs
  • WIN+1 - WIN+9: Select the 1st β†’ 9th tab in the current window
  • ALT+F1: Run xterm(1) to open a new terminal
  • ALT+F2: Run fbrun(1) for a small "run program" dialog
  • ALT+F4: Close the current window
  • ALT+F5: Kill the current window (like xkill(1))
  • ALT+F9: Minimize (iconify) the current window
  • ALT+F10: Maximize the current window
  • ALT+F11: Full-screen the current window
  • ALT+Space: Open the Window Menu
  • CTRL+ALT+Del: Exit fluxbox (log out)
  • CTRL+ALT+Left / CTRL+ALT+Right: Go to the previous/next workspace
  • WIN+Left / WIN+Right: Send the current window to the previous/next workspace, but remain on this workspace
  • CTRL+WIN+Left / CTRL+WIN+Right: Take the current window to the previous/next workspace, and switch to that workspace
  • CTRL+F1 - CTRL+F12: Switch to the 1st β†’ 12th workspace
  • WIN+F1 - WIN+F12: Send the current window to a specific workspace
  • CTRL+WIN+F1 - CTRL+WIN+F12: Take the current window to a specific workspace

okay so fluxbox ships a whole popup menu situation, and it's what powers a few different flavors of native menus. it's giving "right-click to unlock the universe", fr fr πŸ’–

When a menu is open, you can click on items with the mouse to activate them. Some special menu items act a lil different depending on which mouse button you hit β€” but bestie, most of the time you want a left-click (button 1). πŸ–±οΈ

You can also keyboard-navigate with the arrow keys, or even just start typing the first few letters of an item's label to select it, then hit "enter" to activate it. no cap, it's so fast. ⌨️✨

Normally activating a menu item closes the menu β€” as it should, periodt. You can also right-click the title area of a menu, or press "esc", to close it without activating anything. 🫢


🌈 Root Menu 🌈

The root menu is your main character moment β€” it's where you launch the apps you actually use and tweak all the different aspects of fluxbox just by clicking a menu item. By default it pops open with a right-click on the empty area of the desktop. πŸ’…

You can configure what's inside this menu β€” the deets live in fluxbox-menu(5).

The default menu, which is created by the fluxbox-generate_menu command, contains menus for your installed applications, plus a special "Fluxbox menu" item stuffed with the items detailed below: πŸ‘‘

✨ Configure ✨

The next level under this menu is where you can set certain resources and really begin to customize the look and feel of your desktop. See the Configure Menu section below for more details. 🎨

✨ System Styles ✨

This is where the standard styles are listed. Click one and it applies immediately, slay. System styles live in /usr/local/share/fluxbox/styles/ on a default install. Remember you can confirm this with fluxbox -i. πŸ”

  • User Styles β€” This is where your custom styles are listed. It'll list any styles from ~/.fluxbox/styles/, which might be styles you grabbed off the Internet, or your own custom styles β€” as long as you follow the standards described in fluxbox-style(5). πŸ¦‹
  • Workspace List β€” This is the same as the Workspace Menu detailed below. πŸ—‚οΈ
  • Tools β€” Listed here are different tools you can use. You can rename your workspace, run programs from a command line, or regenerate your menu. πŸ› οΈ

✨ Window Managers ✨

Lets you switch your window manager. (Only listed if you have other window managers / desktop environments installed.) πŸͺŸ

✨ Lock Screen ✨

Locks the screen, if a suitable locking program has been detected. πŸ”’

✨ Fluxbox Command ✨

A little commandline will pop up where you can enter a fluxbox command. These commands are the same as the ones detailed in fluxbox-keys(5). ⌨️

✨ Reload config ✨

Use this to reload the fluxbox configuration files. You must do this after editing the keys file, the init file, or the current style. πŸ”„

✨ Restart ✨

Restart the whole darn thing. This starts a completely new fluxbox process, rereads files and redraws all graphical elements. Running applications will stay open, though β€” and they get restored to the same workspaces they were in before, once fluxbox comes back. πŸ”₯

✨ Exit ✨

Exits fluxbox, which in turn either shuts down the X Window server or drops you back to the graphical login screen. πŸ‘‹


πŸ’œ Configuration Menu πŸ’œ

This menu is your glow-up headquarters β€” it's the opportunity to set up fluxbox. It's got a ton of options that you could change by hand in the init file, but this is the easier and faster way to change the most common settings.

All changes take effect immediately. ⚑

✨ Focus Model ✨

Lets you configure the window focus model. For details, see FOCUS MODEL, below. πŸ‘€

✨ Maximize Options ✨

Lets you configure what happens when you maximize a window. The four options are:

  • Full Maximization: Normally, a maximized window won't overlap the toolbar, slit, or any docked windows (like panels). Enabling this option lets maximized windows be as large as the actual screen resolution. πŸ“
  • Ignore Resize Increment: Normally, terminal windows specify a "resize increment" which means fluxbox will only resize the window to an even multiple of the character size. Enabling this option ignores that spec when maximizing. πŸ–₯️
  • Disable Moving / Disable Resizing: Normally, maximized windows can still be moved and resized. Enabling these options prevents that behaviour. 🚫

✨ Tab Options ✨

Lets you configure the properties of tabs. Detailed in TAB OPTIONS, below. πŸ—‚οΈ

✨ Slit ✨

This menu can also be found by right-clicking the slit (if it's visible). Find more info about this menu's options in the Slit Menu section, below. 🎯

✨ Toolbar ✨

This menu can also be found by right-clicking any non-icon part of the toolbar. Find more info about this menu's options in the Toolbar Menu section, below. 🧰

✨ Transparency ✨

This sets the default transparency for a focused window, an unfocused window, and the menu. Use the left mouse button to decrease and the right mouse button to increase the value. 0 is invisible, 255 is not transparent at all. 🌫️

The transparency of individual application windows can be overridden in the apps file (fluxbox-apps(5)).

The Force Pseudo Transparency option will force fluxbox to ignore the xcomposite extension and use pseudo-transparency instead of true transparency.

⚠️ Note: When pseudo-transparency is on, the transparency values here only affect titlebars, not window contents. heads up bestie!

✨ Opaque Window Moving ✨

If enabled, you'll see the window content while dragging it. Otherwise only an outline of the window will be shown. πŸͺŸ

✨ Workspace Warping ✨

If enabled, you can drag windows from one workspace to another. The previous workspace is to the left, the next workspace is to the right. β¬…οΈβž‘οΈ


🌸 Window Menu 🌸

The Window menu pops up when you right-click on the titlebar of a window.

To customize this menu, see the WINDOW MENU section of fluxbox-menu(5).

By default, this menu contains:

✨ Shade ✨

Shade the window (display the titlebar only). πŸŽ€

✨ Stick ✨

(Un)Stick window. A "stuck" window will always be displayed on all workspaces. πŸ“Œ

✨ Send To... ✨

Send window to another workspace. When you select the workspace with a middle click, fluxbox will send you along with the application to the selected workspace. ✈️

✨ Maximize ✨

(Un)Maximize window. Depending on your toolbar and slit configuration, maximize may cover them. You can use the different mouse buttons for different aspects of the maximize function.

  • Button 1 (Un)Maximize as normal. 1️⃣
  • Button 2 (Un)Maximize window vertically. 2️⃣
  • Button 3 (Un)Maximize window horizontally. 3️⃣

✨ Iconify ✨

Iconify (or minimize) a window. The "icon" can be found in the Icons submenu of the workspace menu, as well as in the toolbar (if a Toolbar mode showing Icons is selected). πŸ”½

✨ Raise ✨

Raise the window above all others in the same layer. ⬆️

✨ Lower ✨

Lower the window below all others in the same layer. ⬇️

✨ Layer... ✨

Change the layer of this window. See LAYERS for more details. 🧱

✨ Transparency ✨

Change this window's transparency, overriding the defaults from the Configuration Menu. 🌫️

✨ Remember... ✨

Specify which window settings should be stored in the apps file and resumed the next time this window is opened.

Specifically, the settings you may store are:

  • Workpace: Open this in the same workspace as where the window currently resides. πŸ—‚οΈ
  • Jump to workspace: When Workspace is selected, fluxbox will jump to the appropriate workspace when this window is opened there. If not selected, the window will open in the background. πŸƒβ€β™€οΈ
  • Head: For xinerama users only β€” start this window on the current head (or screen). πŸ–₯️
  • Dimensions: Record the current window height and width. πŸ“
  • Position: Record the current X and Y coordinates of the window. πŸ“
  • Sticky: Record whether the window is on all desktops, or not. πŸ“Œ
  • Decorations: Record the current set of decorations (title bar, grips, tabs, etc) on the window. πŸŽ€
  • Shaded: Record whether the window is shaded (or rolled-up) or not. πŸŒ€
  • Minimized: Record whether the window is iconified (or minimized) or not. πŸ”½
  • Maximized: Record whether the window is maximized or not. πŸ”Ό
  • Fullscreen: Record whether the window is in fullscreen mode or not. πŸ–ΌοΈ
  • Transparency: Record the current Transparency settings. 🌫️
  • Layer: Record the current layer. 🧱
  • Save on close: If selected, any of the above items which are also selected will be updated with the window's current values as it is closed. πŸ’Ύ

All of this is covered in more detail in fluxbox-apps(5). πŸ“š

✨ Close ✨

Close the application softly. 🫢

✨ Kill ✨

Kill the window's parent process, like xkill(1). πŸ’€


πŸ¦‹ Workspace Menu πŸ¦‹

The workspace menu can be found, by default, by middle-clicking on the background. This menu contains entries to explore the currently defined workspaces and windows, and to add/remove/rename workspaces. πŸ—ΊοΈ

✨ Icons ✨

This menu shows any iconified (or, minimized) windows. Clicking on a window in this menu will raise it on the current workspace. πŸ”½

✨ Workspaces ✨

The next section provides one submenu per workspace. Middle-clicking on a workspace name will take you to that workspace. The submenu contains a list of all open windows on that workspace. Clicking on a window name will take you to that window and raise it, changing the active workspace if necessary. πŸͺŸ

✨ New Workspace ✨

This entry adds a new workspace to the end of the list of current workspaces. βž•

✨ Edit current workspace name ✨

Pops up a dialog to enter a new name for the current workspace. ✏️

✨ Remove Last ✨

Remove the last workspace in the list. Any windows currently open there will be sent to the next-to-last workspace. βž–

✨ TOOLBAR ✨

okay bestie so the toolbar is this lil strip that shows u info β€” think a clock, ur workspace name, a system tray, or a taskbar (aka the iconbar) that can hold all ur running programs. the color, the look, the font, all of that? that's defined in the STYLE. πŸ’…

u can turn the toolbar tools on and off in the init file using the session.screen0.toolbar.tools resource. wanna know the deets on changing that value? the RESOURCES section has u covered.

the possible tools are, and yes this is the whole list:

  • Clock β€” shows a lil area for the clock and the date, formatted per the spec in man strtftime. ⏰
  • Iconbar β€” the area that holds all windows (all running apps, all minimized windows, or maybe no window at all β€” it fully depends on ur Toolbar Settings).
  • Systemtray β€” can hold applications that are built to use it. 🫢
  • WorkspaceName β€” shows the name of the current workspace. also, left click = switch to the workspace to the left of the current one, right click = switch to the workspace to the right. no cap.
  • PrevWorkspace β€” a lil arrow that lets u switch to the workspace left of the current one.
  • NextWorkspace β€” a lil arrow that lets u switch to the workspace right of the current one.
  • PrevWindow β€” an arrow that switches focus to the previous visible window on the current workspace.
  • NextWindow β€” an arrow that switches focus to the next visible window on the current workspace.

other aspects of the toolbar can be configured two ways: through the toolbar menu (accessible in the Configuration part of the RootMenu, or with a middle click on the edge the toolbar), or by editing the init file (peep the RESOURCES section for more on that).


πŸ’… Toolbar Menu

this menu opens by right-clicking on the toolbar (tho NOT on a window's name in the iconbar), or from the Configuration Menu.

all changes take effect immediately. like, instantly instantly.

here's the settings:

  • Visible β€” sets the toolbar to either visible or invisible. iconic either way.
  • Auto hide β€” if this is on, the toolbar dips out after a defined time once the mouse pointer leaves it. it slides back in when the cursor hits the remaining edge of the toolbar. the delay time? that's the session.autoRaiseDelay resource. πŸ¦‹
  • Toolbar width percentage β€” sets the toolbar width as a percentage of ur total screen size. left mouse button to decrease, right mouse button to increase. value can be from 1-100.
  • Maximize Over β€” turning this on lets windows maximize over the toolbar. with it switched on, they'll only expand to the edge of the bar. heads up tho: this option may be overridden by the "Full Maximization" from the Configuration Menu β€” if that option is enabled, this one has no effect.
  • Layer... β€” sets the layer the toolbar sits on. with this u can set the toolbar to "Always on top". πŸ‘‘
  • Placement β€” sets the toolbar to any edge of the screen, either centered or aligned with a corner.
  • Alpha β€” sets the alpha value for the toolbar. left mouse button to decrease, right mouse button to increase. 0 is invisible, 255 is not transparent at all.
  • Iconbar Mode β€” specifies various modes of the iconbar's operation. okay so this one has layers, stay with me:

the first section outlines what types of windows get shown in the iconbar:

  • None: β€” will not show any windows
  • Icons: β€” shows windows from all workspaces that are iconified (or, minimized)
  • NoIcons: β€” shows windows from all workspaces that are not iconified
  • WorkspaceIcons: β€” shows windows from the current workspace that are iconified
  • WorkspaceNoIcons: β€” shows windows from the current workspace that are not iconified
  • Workspace: β€” shows all windows (iconified or not) from the current workspace
  • All Windows: β€” shows all windows (iconified or not) from all workspaces

the next section specifies the alignment of the window names shown in the iconbar. the width is specified via the session.screen0.iconbar.iconWidth resource:

  • Left: β€” all icons left-aligned with the width set in the init file
  • Relative: β€” all icons sized evenly to fill the iconbar completely
  • Right: β€” all icons right-aligned with the width set in the init file

and the last option in this submenu is:

  • Show Pictures: β€” if enabled, the iconbar shows the application's icon (if provided by the application) 🌸
  • Clock β€” lets u switch between the 00:00am - 11:59pm and 00:00 - 23:59 notation.
  • Edit Clock Format β€” clicking this entry pops up a dialog window where u can set the clock format per man strftime (or man date). ✨

πŸ¦‹ FOCUS MODEL πŸ¦‹

the Focus Model defines how windows gain focus β€” meaning how they become the active window, the one that receives keyboard and mouse events. u can change the focus model in the configuration menu (usually located under fluxbox menu in the Root Menu).

there are two main aspects of the focus model: how windows gain focus, and how tabs gain focus. each of these has two options: focus follows mouse and click to focus. focus follows mouse means windows gain focus when the mouse hovers over them. click to focus means windows gain focus when the mouse clicks on them.

so bestie, that's four main options when picking a focus model. u should choose one of the first two and one of the last two. they are:

  • Click To Focus β€” click to focus windows.
  • Mouse Focus β€” window focus follows mouse.
  • ClickTabFocus β€” click to focus tabs.
  • MouseTabFocus β€” tab focus follows mouse.

there are three more settings in the "Focus Model" menu:

  • Focus New Windows β€” if enabled, a new window grabs X focus as soon as it's opened.
    • Auto Raise β€” if enabled, focusing on a new window automatically raises that window above all others within its layer. when disabled, u have to explicitly raise a focused window using the window menu, keybinding, or Click Raises.
    • Click Raises β€” if enabled, clicking anywhere on a window raises it above all others within its layer.

πŸŽ€ TAB OPTIONS πŸŽ€

this section of the fluxbox configuration menu lets u configure a bunch of tab features. inside it there are three main options:

  • Placement β€” u can choose where the external tabs get positioned relative to the window. for these options to work, Tabs in Titlebar must be off.
  • Tabs in Titlebar β€” when this is on, tabs are fixed in the window titlebar and the width varies according to the amount of windows grouped.
  • Maximize Over β€” when this is on, maximizing a window disregards the size and location of external tabs, which means they may get pushed out of the screen entirely. 😭
  • External Tab Width β€” specifies in pixels the width of external tabs.

🌈 STYLES 🌈

fluxbox lets u use specialized files containing X(1) resources to specify colors, textures, pixmaps and fonts β€” and thus the whole overall look of ur window borders, menus and the toolbar. the vibe, basically.

the default installation of fluxbox provides some of these style files. peep fluxbox-style(5) to accommodate the growing number of style components.

✨ Style Overlay

on top of the style file, there's the overlay file, whose location is specified by session.screen0.styleOverlay (default: ~/.fluxbox/overlay). u can use it to set style resources that override all styles. for more info about which parts of fluxbox can be controlled by the overlay file, see fluxbox-style(5). 🫢


🫧 THE SLIT 🫧

Okay bestie, the slit is a special fluxbox window frame that can hold dockable apps β€” think "bbtools" or "window maker dockapps". It's the little shelf where your tiny app friends live. 🧚

When apps run in the slit they have no window borders of their own β€” instead they get framed in the slit, and they're always visible in the current workspace. Every workspace, all the time, no hiding. πŸ‘‘

Most dockable apps use the -w option to run in the slit. Like, for example, you could put this in your ~/.fluxbox/startup:

bbmail -w &
bbpager -w &
wmdrawer &
exec fluxbox
Heads up babes: to use the slit you must have it compiled into fluxbox. Luckily that's the default setting, so you're probably fine. πŸ’…

Slit Menu

You can open this menu by right-clicking on the slit (but not on an app running inside the slit, okay? just the slit itself), or you can get to it from the Configuration Menu.

All changes take effect immediately. No reload, no drama. Here's what's in there:

  • Placement β€” this lets you set the position of the slit. Slide it wherever you want it to live. πŸ¦‹
  • Layer β€” see LAYERS for details on the layer order.
  • Auto hide β€” if this is enabled the slit will ✨disappear✨ after a defined time once the mouse pointer leaves it. Then it slides back in when your cursor hits the remaining edge of the slit. The delay time comes from the session.autoRaiseDelay resource. Peekaboo energy.
  • Maximize Over β€” turn this on and windows can maximize over the slit. Leave it off and they'll only expand up to the edge of the slit, so the slit keeps its little territory. > Careful though: this option may be overridden by the "Full Maximization" setting from the Configuration Menu. If that one is enabled, this option has no effect at all.
  • Alpha β€” sets the alpha value for the slit. Left mouse button decreases, right mouse button increases. 0 is invisible, 255 is not transparent at all. Play with it, it's fun. 🌈
  • Clients β€” this submenu lets you reorder the apps running in the slit. You can hide apps from the slit by unselecting them in the list showing β€” and no, this will not kill the app, it just ghosts them. 😌 You can make them re-appear by selecting them in the list again. The "Save SlitList" option saves the new order to your slitlist located in ~/.fluxbox/slitlist. See the next section for the deets. πŸ’Ύ

Slitlist File

fluxbox's slitlist file is there for everyone using dockapps in the slit. It helps fluxbox keep track of the order of the dockapps in the slit. It generally lives at ~/.fluxbox/slitlist. πŸ“

A simple procedure for getting the slit sequence exactly how you like it:

  1. Run fluxbox with no pre-loaded dockapps
  2. Run dockapps individually in the order you want them
  3. Add dockapps to your startfluxbox(1) script

This sequence gets saved by default to ~/.fluxbox/slitlist and will be remembered for future instances of fluxbox. It remembers. It always remembers. 🧠✨

You're totally free to manually edit the slitlist file β€” it's just a simple list of window names, as given by xprop(1), one per dockapp. But similar to the init file, it should not be edited while fluxbox is running. Otherwise your changes may get overwritten and you'll be sad. 😭

You can also choose a different path for the slitlist file by setting the session.session0.slitlistFile resource. Your file, your rules. πŸŽ€


🌈 LAYERS 🌈

Layers affect the way windows overlap each other on screen. A window on a higher layer will always appear above windows on a lower one β€” doesn't matter if it's focused or not. Fluxbox uses 13 layers, starting from 1 (highest). Yes, thirteen. It's giving stacked.

There are two ways to assign a window to a different layer:

  1. When the window is open, you can pick the layer from the 'Layer ...' submenu of the window menu. That menu gives six choices for the layer, and fluxbox manages them by name. The names are, from highest to lowest layer:
  • 2 - Above Dock
  • 4 - Dock
  • 6 - Top
  • 8 - Normal
  • 10 - Bottom
  • 12 - Desktop
  1. The other way is through the 'apps' file. That method is described in fluxbox-apps(5).

πŸ’œ RESOURCES πŸ’œ

Usually the ~/.fluxbox/init resource file is created and maintained by fluxbox itself. You can use the Configure Menu (mentioned above, bestie) to set most of these options. But we're gonna cover all the resource options available to you. πŸ’–

If you edit this file while fluxbox is running, you must "reconfigure" to reload the resource options. No reconfigure, no new vibes.

When running fluxbox in a multiple-screen environment, the screen0 key can also be screen1, screen2, to customize the behavior of fluxbox on each desktop accordingly. Here are the resources currently available:

  • session.screen0.window.{focus|unfocus}.alpha: integer β€” these resources let you set different levels of transparency for different components of fluxbox. Each one accepts a value between 0-255, where 255 is opaque and 0 is completely transparent. Default: 255
  • session.screen0.{slit|toolbar}.autoHide: boolean β€” the autoHide resources let you set the behavior of the toolbar and slit. The behavior can be that they disappear when they're not being actively used, or that they remain visible at all times. Default: False
  • session.screen0.{slit|toolbar}.layer: layer β€” with these two resources you set the layer you want the toolbar and slit to appear on. Please read the LAYER section for more info. Default: Dock
  • session.screen0.{slit|toolbar}.placement: placement β€” these let you place the slit and toolbar wherever you like. Possible options are:
BottomLeft BottomCenter BottomRight LeftBottom LeftCenter
LeftTop RightBottom RightCenter RightTop TopLeft TopCenter
TopRight

Slit default: RightBottom Toolbar default: BottomCenter

  • session.screen0.{slit|toolbar|tabs}.maxOver: boolean β€” set these to True and application windows can maximize over the complete screen. Set to False and the slit, toolbar, and external tabs hold their territory and stay visible even when an app is maximized. Default: False
  • session.screen0.toolbar.height: integer β€” sets the height of the toolbar. If the value is 0, the style file gains control over the toolbar height. You can set a fixed height by changing this value to something greater than 0. Default: 0
  • session.screen0.toolbar.visible: boolean β€” you can set whether you want a toolbar on screen at all. Set to False and the toolbar is removed from the screen entirely. Gone. Poof. πŸ’¨ Default: True
  • session.screen0.toolbar.widthPercent: integer β€” sets the width percentage of the toolbar on the screen. Default: 100
  • session.screen0.toolbar.tools: tools β€” specifies the tools plugged into the toolbar. Read the TOOLBAR section in this manual for a description of each one. They can be specified in any order, delimited by the , character, and they'll appear in the order given. Possible tools:
clock iconbar nextwindow prevwindow nextworkspace prevworkspace
systemtray workspacename

Default:

workspacename, prevworkspace, nextworkspace, iconbar,
prevwindow, nextwindow, systemtray, clock
  • session.screen0.{slit|toolbar}.onhead: integer β€” for the xinerama girlies: set this value to the number of the head where you'd like to see the slit and toolbar, starting from 1. Setting it to 0 will ignore xinerama information. Default: 0 for slit, 1 for toolbar
  • session.screen0.iconbar.mode: pattern β€” determines which windows will be displayed in the iconbar. Any window pattern is acceptable. See the section CLIENT PATTERNS in either fluxbox-keys(5) or fluxbox-apps(5) for details. Default: {static groups} (workspace)
  • session.screen0.iconbar.usePixmap: boolean β€” this is also set in the Iconbar Mode menu. When True, it shows the native icon of applications. Default: True
  • session.screen0.iconbar.iconTextPadding: integer β€” specifies the space between the window title and the edge of the button. Default: 10
  • session.screen0.iconbar.alignment: position β€” this value should be changed in the Iconbar Mode menu. Available options:
    • Left: Fixed width, aligned left
    • Relative: Width varies to fill the iconbar
    • Right: Fixed width, aligned right Default: Relative
  • session.screen0.iconbar.iconWidth: integer β€” used to specify the iconbar button width for Left/Right alignment. Default: 128
  • session.screen0.strftimeFormat: date β€” adjusts the way the current time is displayed in the toolbar. Uses the strftime(3) format. Default: %k:%M
  • session.screen0.tabs.intitlebar: boolean β€” specifies whether tabs should be embedded in the titlebar or placed outside the window. Default: True
  • session.screen0.tab.placement: placement β€” specifies where external tabs appear on the window. It has the same possible values as sesion.screen0.{slit|toolbar}.placement. Default: TopLeft
  • session.screen0.tab.width: integer β€” specifies the width of external tabs in pixels. Default: 64
  • session.screen0.focusModel: ClickToFocus|MouseFocus|StrictMouseFocus β€” controls how windows gain focus via the mouse. With ClickToFocus, you must click on the window. With MouseFocus, windows gain focus whenever the mouse moves over them, but only when the mouse is moving. With StrictMouseFocus, windows gain focus whenever the mouse enters any exposed area β€” even if that's due to layer changes, window movement, changing desktops, closing windows, etc. Default: ClickToFocus
  • session.screen0.autoRaise: boolean β€” when True, this automatically raises any window that gains focus. Default: True
  • session.autoRaiseDelay: integer β€” adjusts the delay (in milli-sec) before focused windows will raise when using the Autoraise option. Default: 250
  • session.screen0.clickRaises: boolean β€” lets you click anywhere on a window to bring it on top of other windows. Otherwise, only the titlebar will work. Default: True
  • session.screen0.workspacewarping: boolean β€” lets you change workspaces by dragging a window across the edge of the screen. Iconic behavior, honestly. ✨ Default: True
  • session.screen0.showwindowposition: boolean β€” setting this to True shows you, in a little window, the exact position of the application window while you're dragging it. Perfect for precise window placement on a screen. 🎯
Default: False
  • session.screen0.defaultDeco (string) β€” This specifies the default window decorations, according to the same options available to the [Deco] option in the β€˜apps’ file, described in fluxbox-apps(5). Default: NORMAL
  • session.screen0.menuDelay (integer) β€” This sets the delay in milliseconds for submenus to open when you hover over them or to close when you hover over another item. Default: 200
  • session.screen0.focusNewWindows (boolean) β€” This sets whether or not new windows will become focused automatically. Default: True
  • session.screen0.workspaceNames (names) β€” Here is where the user can name their workspaces, in a comma-delimited list. However it is recommended to use the tool available in the Workspace Menu to set these. Default: Workspace 1, Workspace 2, Workspace 3, Workspace 4
  • session.screen0.edgeSnapThreshold (integer) β€” When moving a window across your screen, fluxbox is able to have it β€˜snap’ to the edges of the screen and other windows for easy placement. This variable tells fluxbox the distance (in pixels) at which the window will jump to the edge. Default: 10
  • session.screen0.windowPlacement (strategy) β€” This resource specifies where to place new windows when not otherwise specified (by the program or the β€˜apps’ file, for example).

Available strategies:

  • RowSmartPlacement: tries to place windows in rows without overlapping
  • ColSmartPlacement: tries to place windows in columns without overlapping
  • CascadePlacement: places windows below the titlebar of the previous one
  • UnderMousePlacement: places new windows underneath the mouse

Default: RowSmartPlacement

  • session.screen0.rowPlacementDirection (LeftToRight|RightToLeft) β€” These settings control the direction in which windows are tiled using the RowSmartPlacement and ColSmartPlacement strategies described above. Default: LeftToRight
  • session.screen0.colPlacementDirection (TopToBottom|BottomToTop) β€” These settings control the direction in which windows are tiled using the RowSmartPlacement and ColSmartPlacement strategies described above. Default: TopToBottom
  • session.screen0.fullMaximization (boolean) β€” If this setting is enabled, windows will maximize over the toolbar, slit, and any other window that creates a strut, no matter what their individual settings are. Default: False
  • session.screen0.opaqueMove (boolean) β€” When moving a window, setting this to True will draw the window contents as it moves (this is nasty on slow systems). If False, it will only draw an outline of the window border. Default: True
  • session.screen0.workspaces (integer) β€” Set this to the number of workspaces the users wants. Default: 4
  • session.cacheLife (minutes) β€” This tells fluxbox how long unused pixmaps may stay in the X server’s memory. Default: 5
  • session.cacheMax (KbSize) β€” This tells fluxbox how much memory it may use to store cached pixmaps on the X server. If your machine runs short of memory, you may lower this value. Default: 200
  • session.colorsPerChannel (integer) β€” This tells fluxbox how many colors to take from the X server on pseudo-color displays. A channel would be red, green, or blue. fluxbox will allocate this variable ^ 3 and make them always available. Value must be between 2-6. When you run fluxbox on an 8bpp display, you must set this resource to 4. Default: 4
  • session.doubleClickInterval (integer) β€” Adjust the delay in milliseconds between mouse clicks for fluxbox to consider a double click. Default: 250
  • session.forcePseudoTransparency (boolean) β€” If you have Xorg’s composite extension enabled, this setting will force the menu, windows, toolbar, and slit to use pseudo-transparency instead of true transparency. Default: False
  • session.ignoreBorder (boolean) β€” This configures the ability to move windows by dragging the border. Default: False
  • session.tabPadding (integer) β€” This specifies the spacing between tabs. Default: 0
  • session.tabsAttachArea (Window|Titlebar) β€” With this set to β€˜Window’, windows may be grouped by dragging one tab with the middle mouse button and dropping it anywhere on another window. With β€˜Titlebar’, the user must drop the tab on the target window’s titlebar. Default: Window
  • session.titlebar.{left|right} (buttons) β€” The buttons or icons to place in the titlebar of decorated windows. You may specify any number, space-delimited.

The available options are: Close Maximize MenuIcon Minimize Shade Stick LHalf RHalf

Default left: Stick

Default right: Shade Minimize Maximize Close

LHalf and RHalf are buttons to quickly place a window into the left and right half of the current monitor.

All of the location resources following require a pathname to their specific files. This is where you can specify different files. Most of the defaults will be located in the user’s ~/.fluxbox directory.

  • session.appsFile (location) β€” Location of persistent application settings, or the β€˜apps’ file. See the Remember... item in the Window Menu section above or fluxbox-apps(5) for details.
  • session.groupFile (location) β€” Deprecated, auto-grouping is now done in the β€˜apps’ file, see fluxbox-apps(5) for details.
  • session.keyFile (location) β€” Location of the keyboard mapping settings, or the β€˜keys’ file. See fluxbox-keys(5) for details.
  • session.menuFile (location) β€” Location of the Root Menu file. See fluxbox-menu(5) for details.
  • session.slitlistFile (location) β€” Location of the file used to remember slit client ordering. See SLIT above for details.
  • session.styleFile (location) β€” Location of the currently selected style. See fluxbox-style(5) for details.
  • session.styleOverlay (location) β€” Location of the style overlay file. See fluxbox-style(5) for details.
  • session.screen0.windowMenu (location) β€” This optionally specifies the location of a user-defined window menu. If left blank, it will use ~/.fluxbox/windowmenu. Default: blank
  • session.menuSearch (nowhere|itemstart|somewhere) β€” This setting controls the way the menu search feature works.

Available options:

  • nowhere: disables the menu search
  • itemstart: typed text matches at the start of a menu items
  • somewhere: typed text matches somewhere in a menu item

Default: itemstart (and yeah, the original had a little + there, we don't ask questions πŸ’…)


🌸 ENVIRONMENT 🌸

Okay bestie, fluxbox reads some env vars before it even starts, so listen up.

HOME

fluxbox uses $HOME to find the .fluxbox/init file and to resolve style file and -directory names.

DISPLAY

When no other display was given on the command line, fluxbox will start on the display specified by this variable.

fluxbox can also take advantage of other environment variables if they are set before fluxbox is started. For example, if $TERM is set, then it will be available whenever fluxbox uses the shell, such as the β€˜keys’ file ExecCommand or the root menu’s [exec] tag. See fluxbox-keys(5) and fluxbox-menu(5) for details.

The β€˜keys’ file also provides two commands that can alter the current environment of fluxbox: SetEnv and Export. Any changes made by these commands will also affect the environment as seen by fluxbox and all child processes started after that point. See fluxbox-keys(5) for details.

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


🚨 SIGNALS 🚨

fluxbox responds to the following signals:

  • SIGUSR1 β€” restarts fluxbox.
  • SIGUSR2 β€” Forces reloading of configuration.

πŸ‘‘ AUTHORS πŸ‘‘

fluxbox is written and maintained by Henrik Kinnunen <fluxgen at fluxbox org>, Simon Bowden <rathnor at fluxbox org>, Mathias Gumz <akira at fluxbox org>, and Mark Tiefenbruck <mark at fluxbox org>, with contributions and patches merged from many individuals around the world.

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

This manpage is the combined work of:

  • 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)
  • Numerous other languages could be available if someone jumps in.

🌐 ONLINE DOCUMENTATION 🌐


πŸ› BUGS πŸ›

If you find any bugs, please visit the #fluxbox irc channel on irc.freenode.net or submit them to the bug tracker at http://sf.net/projects/fluxbox . Or you may subscribe to one of the mailinglists. More information can be found on the official website.


πŸ‘€ SEE ALSO πŸ‘€

fluxbox-apps(5) fluxbox-keys(5) fluxbox-style(5) fluxbox-menu(5) fluxbox-remote(1) fbsetroot(1) fbsetbg(1) fbrun(1) startfluxbox(1)


πŸ’– AUTHOR πŸ’–

Henrik Kinnunen <fluxgen@fluxbox.org> β€” Author.

πŸ’–βœ¨ That's the whole page, bestie! Source: fluxbox.txt, date: 08 February 2015, page: FLUXBOX(1). You ate that. Periodt. βœ¨πŸ’–

πŸ“¦ where this page comes from