baskerville/bspwm

A tiling window manager based on binary space partitioning

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 10 minutes ago
Added to GitGenius on September 7th, 2026
Created on July 28th, 2012
Open Issues & Pull Requests: 348 (+0)
GitHub issues: Enabled
Number of forks: 440
Total Stargazers: 8,311 (+0)
Total Subscribers: 127 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 5.6 days
Mean response time: 99.7 days
90th percentile: 230.1 days
Tracked items: 41

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 100% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Only 5% of issues opened in the past year have been closed.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 33
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,065 days
Stale 30+ days: 32
Stale 90+ days: 30

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

bspwm is a tiling window manager based on binary space partitioning that manages windows as leaves in a full binary tree.

The tool solves the problem of organizing windows on a display by representing them within a binary tree structure where each internal node splits a rectangular region either horizontally or vertically. Rather than handling keyboard and pointer input directly, bspwm responds only to X events and messages received on a dedicated socket, with a companion program called bspc used to send commands to the window manager. This separation of concerns means a third-party program like sxhkd must translate keyboard and pointer events into bspc invocations. Configuration is done through a shell script at `$XDG_CONFIG_HOME/bspwm/bspwmrc` that calls bspc commands, and keyboard bindings are defined separately using sxhkd.

The tool suits developers and power users who want fine-grained control over window layout and prefer a modular architecture where the window manager itself remains focused on a single responsibility. It works well for those comfortable with scripting their configuration and integrating external tools. The project's approach of using a socket-based protocol and delegating input handling to external programs makes it lightweight and composable, appealing to users who value Unix philosophy principles.

Development activity shows consistent maintenance with regular commits addressing bug fixes and feature refinements. The project maintains a focused scope, resisting feature creep by keeping the core window manager lean. Documentation is thorough, with detailed explanations of insertion modes, tree operations, and configuration options provided in the README. The maintainer responds to issues and pull requests, indicating active stewardship of the codebase.