Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Linux
  3. bspwm

bspwm

BSD-2-ClauseC

A tiling window manager for X11 that organizes windows using a binary space partitioning tree.

GitHubGitHub
8.3k stars440 forks0 contributors

What is bspwm?

bspwm is a tiling window manager for X11 that organizes application windows using a binary space partitioning (BSP) tree. It automatically divides screen space into non-overlapping rectangular regions, creating an efficient and organized desktop layout. Unlike traditional window managers, it separates window management from input handling, relying on external tools for keyboard and mouse interactions.

Target Audience

Advanced Linux/Unix users and developers who prefer a minimalist, keyboard-driven workflow and want fine-grained control over window layout via scripting and configuration.

Value Proposition

Developers choose bspwm for its simplicity, predictability, and adherence to the Unix philosophy—it excels at window management without bloat, offering a clean, tree-based layout system that is highly configurable and scriptable.

Overview

A tiling window manager based on binary space partitioning

Use Cases

Best For

  • Advanced users who want a keyboard-centric tiling window manager
  • Linux enthusiasts seeking a minimalist and configurable desktop environment
  • Developers who prefer scripting and automating window layouts
  • Users who value predictable and efficient screen space partitioning
  • Those who want to separate window management from input handling
  • Building custom desktop setups with external tools like sxhkd

Not Ideal For

  • Users wanting an all-in-one window manager with built-in keybindings and graphical configuration tools
  • Projects requiring seamless integration with desktop environments like GNOME or KDE without manual setup
  • Environments where support for Wayland is essential for modern display server compatibility
  • Teams that prioritize quick, out-of-the-box usability over deep scripting and customization

Pros & Cons

Pros

Efficient Space Partitioning

Organizes windows in a full binary tree using binary space partitioning, ensuring predictable and non-overlapping tiling layouts that maximize screen usage.

Scriptable and Extensible

Controlled via socket messages with bspc, allowing integration with shell scripts for automated window management and custom workflows, as shown in the bspwmrc configuration.

Lightweight Core

Delegates input handling to external tools like sxhkd, keeping the window manager minimal and focused solely on layout management, adhering to Unix philosophy.

Flexible Insertion Modes

Supports manual, automatic, and spiral modes for dynamic window placement, enabling tailored desktop arrangements without overlapping windows.

Cons

Complex Initial Setup

Requires configuring separate tools for input (e.g., sxhkd) and writing shell scripts for bspwmrc, which can be daunting and time-consuming for newcomers.

No Built-in Input Handling

Lacks native keyboard or mouse bindings, necessitating external programs and adding dependency management overhead, as admitted in the README.

Limited to X11 Ecosystem

Only supports the X Window System with protocols like RandR and Xinerama, missing compatibility with Wayland and modern display technologies.

Frequently Asked Questions

Quick Stats

Stars8,313
Forks440
Contributors0
Open Issues331
Last commit2 months ago
CreatedSince 2012

Tags

#unix-philosophy#x11#lightweight#tiling-window-manager#window-management#desktop-environment

Built With

x
x11
C
C++

Included in

Linux5.0k
Auto-fetched 8 hours ago

Related Projects

BlackboxBlackbox

Blackbox - an X11 Window manager

Stars53
Forks13
Last commit9 years ago
MutterMutter

Window manager for X. Default window manager in GNOME 3

Stars0
Forks0
Last commit
wmiiwmii

Small, scriptable window manager, with a 9P filesystem interface and an acme-like layout

Stars0
Forks0
Last commit
IceWMIceWM

Window manager with the goal of being fast, simple, and not getting in the user's way

Stars0
Forks0
Last commit
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub