close
Skip to content

Fluxbox2-Essora

Fluxbox2-Essora

A modern Fluxbox-based window manager for Essora Linux with GTK3-driven theming, an integrated panel, native XDG autostart, Essora menu integration and refined window management.

Based on Fluxbox 1.3.7 · Current version: 1.7.3 · Maintained by josejp2424


About Fluxbox2-Essora

Fluxbox2-Essora is a maintained fork of Fluxbox 1.3.7 created for the Essora desktop. It keeps the speed and small footprint of Fluxbox while modernizing the parts that normally require a collection of external tools, old Fluxbox styles or separate session helpers.

The window manager still keeps the traditional Fluxbox executable and configuration layout:

/usr/bin/fluxbox
~/.fluxbox
/usr/share/fluxbox

The visual side is different from classic Fluxbox: GTK3 is now the only visual theme source for window decorations and native Fluxbox menus. Fluxbox style files are no longer used to select the appearance of the desktop. The active GTK3 theme is read through XSETTINGS/xsettingsd, with ~/.config/gtk-3.0/settings.ini as a fallback.

Fluxbox2-Essora currently targets X11 and XLibre. It is not a native Wayland window manager.

Recommended desktop integration

Fluxbox2-Essora can be used as a standalone window manager, but for the best Essora desktop experience it is recommended to use it together with ROX-Filer2.

The two projects are designed to complement each other:

  • Fluxbox2-Essora provides the window manager, integrated panel, application menu, global shortcuts and session integration.
  • ROX-Filer2 provides the desktop layer, wallpaper, desktop icons, storage-device icons, Trash integration and file management.

Fluxbox2-Essora also includes specific integration for the ROX-Filer2 desktop so that actions such as Show Desktop hide application windows without minimizing or hiding the desktop itself.

For a complete lightweight Essora desktop environment, the recommended combination is:

Fluxbox2-Essora + ROX-Filer2

Graphical configuration

For users who prefer a graphical interface, the recommended configuration tool is Fluxbox2 Config.

Fluxbox2 Config is a GTK3 companion utility designed specifically for Fluxbox2-Essora. It provides a visual interface for configuring the window manager and its integrated panel without requiring users to edit configuration files by hand.

It can manage settings such as:

  • Workspaces and window behavior.
  • Focus and window placement.
  • Edge snapping and move/resize behavior.
  • Titlebar and tab integration.
  • Super/Windows key menu behavior.
  • XDG autostart integration.
  • Integrated panel position, size and behavior.
  • Taskbar, system tray, clock and battery.
  • .desktop launchers and manual panel buttons.
  • Exact panel item ordering.
  • GTK3 panel color integration.

Fluxbox2 Config edits the same Fluxbox2-Essora configuration stored under ~/.fluxbox, including the integrated panel configuration in:

~/.fluxbox/panelrc

It does not require tint2conf and does not move the panel configuration to ~/.config/tint2.

Fluxbox2-Essora remains fully usable without the configurator, but Fluxbox2 Config is the recommended way to manage it graphically.

Screenshots

Essora menu

Fluxbox2-Essora menu

Desktop and integrated panel

Fluxbox2-Essora desktop and panel

Settings

Fluxbox2-Essora settings

Main improvements over classic Fluxbox

GTK3 is the visual theme engine

Fluxbox2-Essora no longer relies on the classic Fluxbox style system for its visual appearance.

  • Window frames and titlebars are generated from the active GTK3 theme.
  • Close, maximize, minimize and other title buttons are rendered from GTK3 assets/CSS.
  • Native Fluxbox menus use colors and visual states derived from the same GTK3 theme.
  • XSETTINGS/xsettingsd is the primary source for live GTK theme changes.
  • ~/.config/gtk-3.0/settings.ini is used as a fallback when XSETTINGS is unavailable.
  • Changing the GTK3 theme updates Fluxbox2-Essora without requiring a new Fluxbox style file.

Legacy SetStyle/style commands are kept only for compatibility and reload the GTK3 visual theme instead of switching to an old Fluxbox style.

Persistent GTK3 decoration cache

GTK3-rendered decoration assets are cached per theme under:

~/.fluxbox/cache/gtk3/<theme>/

The cache is validated using the active theme, font, monitor scale and renderer revision. A valid cache is reused immediately. If the cache is missing, cleaned or obsolete, Fluxbox2-Essora regenerates it automatically.

This avoids rendering GTK3 title buttons again for every new window while still allowing live theme changes.

Integrated panel

Fluxbox2-Essora includes a panel engine derived from tint2, but it is not launched as a separate tint2 process. The panel is integrated directly into the Fluxbox process and shares its X11 event loop.

Its user configuration is:

~/.fluxbox/panelrc

Important advantages:

  • No separate tint2 process is required.
  • No ~/.config/tint2 configuration is used by Fluxbox2-Essora.
  • No tint2conf dependency is required.
  • Taskbar, launcher, clock, system tray, battery, buttons and panel objects are provided by the integrated panel engine.
  • Multi-monitor panel behavior remains available.
  • The panel reserves its real screen area so maximized and normally placed windows do not cover it.
  • strut_policy = follow_size keeps the reserved work area synchronized with the physical panel size.

The panel can be reloaded without restarting Fluxbox:

fluxbox-remote "RefreshPanel"

GTK3 colors without destroying panel layout

With:

use_gtk_colors = 1

only the panel RGB palette follows the GTK3 theme announced by xsettingsd/XSETTINGS. The tint2-derived renderer still keeps the values from panelrc for alpha, borders, radius, padding, geometry and other layout details.

This allows the panel to visually follow the desktop theme without losing its own carefully configured structure.

Essora menu integration

The Essora application menu is included in the same source/package and is installed as a private companion executable rather than being linked directly into the Fluxbox binary.

Public entry point:

ShowMenu

Remote command:

fluxbox-remote "ShowMenu"

/usr/bin/pymenu remains as a compatibility entry point.

The menu receives the real geometry of the integrated panel from Fluxbox2-Essora, so it opens next to the panel on the correct monitor and supports top, bottom, left and right panel layouts.

A tap of the Super/Windows key by itself opens the Essora menu by default, while Super combined with another key remains available for normal shortcuts.

Relevant settings:

session.superKeyTap: true
session.superKeyCommand: ShowMenu

Native menu tools

Fluxbox2-Essora replaces the old Python menu/profile helpers with native tools. Private helper binaries are installed under the Fluxbox multiarch directory, for example on Debian/Devuan amd64:

/usr/lib/x86_64-linux-gnu/fluxbox/

This directory contains components such as:

fluxbox-pymenu
fluxbox-pymenu-config
essora-profile
essora-menu-gen
fluxbox-xbindkeys

The native menu generator uses libxml2, the PyMenu configurator uses GTK3/json-c, and the menu no longer depends on Python 3 or pyxdg.

User-editable menu data remains below ~/.fluxbox.

Integrated global shortcuts

Fluxbox2-Essora bundles xbindkeys 1.8.7 as a private helper, so users do not need to install a separate system xbindkeys package for the default Essora shortcuts.

Global application shortcuts:

~/.fluxbox/xbindkeysrc

Window-manager context bindings:

~/.fluxbox/keys

Keeping both types separate allows Fluxbox-native window commands and global application launch shortcuts to coexist cleanly.

Native XDG autostart

Fluxbox2-Essora launches XDG autostart entries natively after the window manager and integrated panel are ready.

It reads:

~/.config/autostart
/etc/xdg/autostart

Supported desktop-entry behavior includes Exec, Hidden, TryExec, OnlyShowIn, NotShowIn, Path and localized Name values.

The feature is enabled by default:

session.xdgAutostart: true

An X11 root-window marker prevents the same XDG applications from being launched a second time when only Fluxbox2-Essora is restarted inside the same X session.

Window management improvements

Fluxbox2-Essora keeps Fluxbox's lightweight window-management model while changing several defaults for a more conventional desktop experience.

  • Normal new windows use CenterPlacement by default.
  • Transient dialogs are centered over their parent window.
  • Windows can be resized from every edge and corner.
  • Tabs are always integrated into the titlebar in Fluxbox2-Essora 1.7.2.
  • Old configurations containing session.screen0.tabs.intitlebar: false are migrated automatically.
  • Desktop, dock, menu and toolbar infrastructure is excluded from normal application placement rules.
  • Show Desktop protects real desktop windows instead of minimizing them with normal applications.
  • Rox-Filer2/ROX Desktop is additionally recognized through its registered _ROX_DESKTOP_WINDOW X11 property.
  • Workspace switching, window grouping/tabbing, Alt-Tab and the traditional Fluxbox window actions remain available.

Default desktop behavior starts with two workspaces and can be expanded later.

Remote commands

Useful commands include:

fluxbox --version
fluxbox --about
fluxbox --info
fluxbox-remote "Reconfigure"
fluxbox-remote "RefreshPanel"
fluxbox-remote "ShowMenu"
ShowMenu

Fluxbox2-Essora can restrict general remote actions while still allowing selected safe integration commands such as Reconfigure, RefreshPanel and ShowMenu.

Configuration layout

The main user configuration remains together under:

~/.fluxbox/

Important files include:

~/.fluxbox/init
~/.fluxbox/keys
~/.fluxbox/panelrc
~/.fluxbox/xbindkeysrc
~/.fluxbox/pymenu.json
~/.fluxbox/essora-menu.xml
~/.fluxbox/face
~/.fluxbox/locale

This keeps Fluxbox2-Essora self-contained and avoids spreading its panel and menu configuration across unrelated directories.

Compatibility

Fluxbox2-Essora deliberately preserves important Fluxbox paths and commands so that existing lightweight Linux workflows can continue to use it:

/usr/bin/fluxbox
~/.fluxbox
/usr/share/fluxbox

The Debian package also provides x-window-manager and fluxbox, while conflicting with/replacing the distribution Fluxbox package to avoid two implementations owning the same files.

Build

Typical build commands:

./autogen.sh
./configure --prefix=/usr --enable-librsvg
make -j$(nproc)
make install

Fluxbox2-Essora requires the normal X11 development stack plus GTK3 3.24 or newer. The integrated components also use GLib/GObject, Cairo, Pango, Imlib2, XRender, XRandR, Xinerama, XComposite, XDamage, json-c and libxml2. librsvg is used for SVG icon support when enabled.

For Debian/Devuan packaging the source includes:

./build-deb.sh

Project scope

Fluxbox2-Essora is intentionally a lightweight X11/XLibre desktop component. The project focuses on keeping Fluxbox fast while reducing the number of separate programs needed for a complete Essora session.

It is not intended to become a large desktop environment and it currently does not provide a native Wayland compositor/backend.

Licensing

Fluxbox2-Essora contains code from projects with different compatible licensing requirements, so the original notices are preserved.

  • Combined Fluxbox2-Essora core and integrated tint2-derived panel: GNU GPL v2 (GPL-2.0-only).
  • Original Fluxbox-derived code: original MIT notices are preserved.
  • Essora PyMenu companion program: GPL-3.0-or-later.
  • Bundled xbindkeys helper: retains the upstream xbindkeys license/notice.

The repository should keep the corresponding license files, including the main LICENSE (GPL v2), LICENSE.MIT/COPYING.FLUXBOX, COPYING.TINT2, COPYING.PYMENU and COPYING.XBINDKEYS where applicable.

Credits

Fluxbox2-Essora would not exist without the work of the projects it builds upon.

  • Fluxbox — original window manager and code base.
  • Blackbox — historical code inherited through Fluxbox.
  • tint2 contributors — panel engine used as the basis of the integrated Essora panel.
  • xbindkeys contributors — global shortcut helper.
  • josejp2424 — Fluxbox2-Essora continuation, GTK3 integration, panel integration, Essora menu integration and current project maintenance.

Original copyright and license notices remain part of the source tree.

About

Fluxbox2-Essora is a modern lightweight window manager based on Fluxbox, enhanced for Essora Linux with an integrated panel, XDG autostart, improved desktop integration, native configuration tools, modern GTK theme support, and refined window management.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages