LLMpediaThe first transparent, open encyclopedia generated by LLMs

herbstluftwm

Note: This article was automatically generated by a large language model (LLM) from purely parametric knowledge (no retrieval). It may contain inaccuracies or hallucinations. This encyclopedia is part of a research project currently under review.
Article Genealogy
Parent: Slate (software) Hop 5 terminal

This article was accepted into the corpus but its outbound wikilinks were never NER-processed — typical at the deepest BFS hop or when the run's entity cap was reached. No expansion funnel to show.

herbstluftwm
Nameherbstluftwm
TypeStacking tiling window manager
Developermhahn
Written inC++
LicenseMIT License

herbstluftwm

herbstluftwm is a manual tiling window manager for the X Window System, designed around a dynamic, frame-based layout model and controlled via an external client protocol. It emphasizes scriptability, predictable layout rules, and composability with Unix-style tools such as shell, Xorg, and Wayland projects. Its lightweight architecture appeals to users of tiling environments, compositors, and desktop utilities.

Overview

herbstluftwm organizes windows into a tree of frames, allowing users to split, stack, and tile windows in flexible configurations managed by a controller program. It interoperates with Xorg components like X.Org Server, XCB, Xlib and complements utilities such as xrandr, xprop, xmodmap, and xdotool. The project is often discussed alongside other window managers and environments including i3, dwm, awesome, bspwm, Openbox, Fluxbox, KDE Plasma, GNOME Shell, and Enlightenment.

Features

herbstluftwm provides manual tiling with features such as frame trees, multiple tags, per-monitor tagging, and an IPC protocol accessed via herbstclient. It supports layouts akin to those in i3, xmonad, and AwesomeWM, while enabling scripting comparable to usage of Sway, bspwm, and Awesome's Lua modules. Key functionality integrates with display servers and compositors like X.Org Server, Wayland, Weston, Mutter, KWin, and Xfwm. It interacts with session managers and display managers including LightDM, GDM, SDDM, Systemd, and ConsoleKit. Themes and visual configuration can use Xft, cairo, Pango, and Xresources, and notifications via D-Bus, notify-osd, dunst, and libnotify.

Configuration

Configuration is handled through plain-text scripts (commonly Bash) and a hierarchical runtime configuration accessible via herbstclient, similar to approaches used by i3, spectrwm, and bspwm. Users commonly combine configuration with tools such as bash, zsh, fish, tmux, screen, systemd, and xinit. Integration with desktop components involves utilities like polybar, dzen2, lemonbar, conky, nitrogen, feh, xrdb, and picom (compton). Fonts and icons in panels often derive from Fontconfig, Font Awesome, Noto, DejaVu, and Xft.

Extensions and Integration

herbstluftwm’s IPC and command model allow extensions written in languages and ecosystems such as Python, Perl, Ruby, Haskell, Rust, Go, Node.js, and Lua, paralleling extension practices in GNOME Shell, KDE Plasma, and AwesomeWM. It is commonly integrated with status bars and panels including i3status, py3status, waybar, xmobar, tint2, polybar, and lemonbar. Session-level integration leverages XDG specifications, systemd user sessions, DBus, udev, pulseaudio, PipeWire, ALSA, BlueZ, NetworkManager, and LightDM. Screenshotting and compositor coordination may use scrot, maim, ImageMagick, xdotool, and spectacle.

Development and History

herbstluftwm was created by developer mhahn and evolved in contexts informed by tiling window manager history involving projects such as dwm, xmonad, Ion, StumpWM, and ratpoison. Its design reflects influences from Unix philosophies embodied by Plan 9 tools, GNU, BSD communities, and projects hosted on platforms like GitHub, GitLab, SourceForge, and Savannah. Development interacts with build systems and toolchains such as Autotools, CMake, Meson, Make, pkg-config, GCC, Clang, and Valgrind. Packaging and distribution occur across Linux distributions and BSD ports like Debian, Ubuntu, Fedora, Arch Linux, OpenBSD, FreeBSD, NetBSD, NixOS, and Gentoo; containers and CI use Docker, Travis CI, GitHub Actions, and CircleCI.

Usage and Keybindings

Common keybinding schemes for herbstluftwm are scripted and often reference keymaps provided by X11, xmodmap, and libxcb, with utilities such as sxhkd, xbindkeys, and sxhkdrc employed for global shortcuts. Users adopt conventions popularized by editors and environments—including Emacs, Vim, Tmux, i3, and Sway—for window manipulation, workspace navigation, and application launching (Terminal emulators like xterm, rxvt, urxvt, Alacritty, Kitty, GNOME Terminal, Konsole). Workflow automation uses tools like rofi, dmenu, gmrun, abduco, and entr.

Comparisons and Reception

herbstluftwm is compared with tiling managers and desktop environments including i3, dwm, xmonad, AwesomeWM, bspwm, Sway, KDE Plasma, GNOME Shell, and Openbox in reviews and community discussions on platforms such as Reddit, Stack Overflow, Hacker News, ArchWiki, Unix StackExchange, GitHub issues, and mailing lists. Users praise its scriptable IPC and deterministic frame model while noting a steeper initial setup compared to turnkey environments like GNOME, KDE, and Cinnamon. Academic and enthusiast articles reference window manager design alongside GUI systems such as X11, Wayland, Mir, and compositors like Mutter and KWin.

Category:Window managers