HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
baskerville
bspwm
C2015–2025
baskerville / bspwm

bspwm

A tiling window manager based on binary space partitioning

14Distinct people
19Mentions
0Explicit recommenders
8.3KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A tiling window manager based on binary space partitioning

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:03:16 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year19 dated mentions

Observed mentions: 2015-04-07 20:41:49 UTC to 2025-03-12 18:17:36 UTC.

01232015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments20152016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC211
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC303
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC211
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC000
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC202
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC211
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC303
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC202
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC101
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC101
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC101

What Hacker News says

19 sources
The biggest QOL improvements imo are found in the approach to the user-facing API design. Compare basic multi-monitor commands in something like bspwm[1] or yabai[2][3] to twms on Windows where this is typically handled transparently by directional `move` and `focus` commands understanding monitor boundaries. Besides this, Whim has implemented a very functional ctrl+p style command palette which provides a great interface for more advanced on-the-fly/one-time window manager interactions. With komorebi I think that having different border colours to indicate different types of containers is very helpful (one colour for single window stacks, a different colour for monocle containers, a different colour for stacks with multiple windows), as well as custom window-based work area offsets[4] (so if you have an ultrawide monitor with only a sing
Read the rest
le window on a workspace, you can add offsets to the sides so it doesn't stretch across the whole width and give poor usability). It's not really any one "big thing" but rather a difference in approach which adds up over many small design decisions. [1]: https://github.com/baskerville/bspwm/issues/563 [2]: https://github.com/koekeishiya/yabai/issues/505 [3]: from my own personal yabai config - imo this is not really acceptable for a user facing API, especially for basic commands like focusing and moving: ``` # focus window alt - h : yabai -m window --focus west || yabai -m display --focus west alt - j : yabai -m window --focus south || yabai -m display --focus south alt - k : yabai -m window --focus north || yabai -m display --focus north alt - l : yabai -m window --focus east || yabai -m display --focus east # swap window alt + shift - h : yabai -m window --swap west || yabai -m window --display west && yabai -m display --focus west alt + shift - j : yabai -m window --swap south || yabai -m window --display south && yabai -m display --focus south alt + shift - k : yabai -m window --swap north || yabai -m window --display north && yabai -m display --focus north alt + shift - l : yabai -m window --swap east || yabai -m window --display east && yabai -m display --focus east ``` [4]: https://hachyderm.io/@LGUG2Z/112493589633823318
In AeroSpace is an i3-like tiling window manager for macOS
I'm sorry you got downvoted for this comment, for what it's worth I tried voting it back up. The DSL is largely "borrowed" (stolen) from skhd, which has been around for a long time, so most existing shkd-syntax-compatible tools should(*) work, but I think I will take the time to also write tools specifically for whkd in the future based on this comment. TOML/YAML/JSON are imo even worse than AHK for configuring hotkeys that trigger potentially complex CLI commands. There always comes a point where the user is stuffing an entire sh script into a string and suffering in escape sequence hell. You can take a look at the feature/whkd branch on the komorebi repo for an idea of how this will look going forward. Backwards-compatibility with all the AHKv1 generated libraries will remain for users who don't want to move to AHKv2 or whkd, and a new
Read the rest
PowerShell generation target will complement the AHKv1 generation targets, finally bringing komorebi full-circle back to the bspwmrc/yabairc model of configuration using a script in the configured system shell (which also launches the hotkey daemon). As for moving away from the "bspwm architecture"[1] (I think this is what you meant by "read and apply the yaml config directly?) - this will never happen. I've written before about how I feel that the bspwm architecture is the endgame for tiling window managers, and my thoughts on this topic haven't changed. The komorebi license is pretty permissive so anyone is free to fork it and change it if they dislike the bspwm architecture that much. [1]: https://github.com/baskerville/bspwm#description
In AutoHotkey v2 Official Release Announcement
Indeed. I've tried a bunch over the years: i3, Qtile, Xmonad, herbstluftwm, awesome, dwm... And the most popular floating ones: Gnome, KWin, xfwm, Blackbox, etc. They can pry bspwm+sxhkd out of my cold dead hands. It's a fast, lightweight and rock-solid environment, with simple yet flexible customization. It gets out of my way and works exactly as I want it to. I've been using it for years, and don't have the need to switch to anything else. I'm only hoping that something similar can exist for Wayland. Otherwise I don't see myself switching from X anytime soon. Please support the author if you have the means: https://github.com/baskerville/bspwm/blob/master/doc/CONTRIB...
In My quest for the perfect window manager (2004)
komorebi dev here. I can't tell you the number of times I've wanted to just write my own take on sxhkd[1] for Windows and use that to manage my own keybindings for komorebi instead of ahk. You can just as easily write your own/use another hotkey daemon or PowerShell scripts to handle komorebi's configuration and keybindings, in that sense there is no dependency on ahk at all. However, the inertia around ahk in the Windows ecosystem is undeniable and it's in the interests of making adoption and onboarding easier that the project provides example ahk files and has invested in an ahk code generation library. My thoughts on the dominant hotkey daemon in the Windows ecosystem aside, I remain convinced that the famous bspwm socket communication architecture[2] is the best way to handle both configuration and keybindings for a tiling window mana
Read the rest
ger that has been proposed to this day. Unfortunately I have to concede that there is a certain configuration burden that comes with komorebi, which is amplified in some cases by having to write/maintain ahk. This configuration burden is largely due to the highly fragmented nature of Windows application development that is discussed often on HN and it is inescapable. With this in mind, the next release of komorebi (currently available on master) will invest even more heavily in automatic configuration generation. A separate repository of common application-specific configuration tweaks[3] (in YAML!) has been created which I and others from the komorebi Discord server are contributing to, with the goal of having the edge cases for as many applications as possible fully documented so that a comprehensive configuration file can be generated[4] for the user which ensures that every (major) Windows application behaves as expected under a tiling window manager. I hope that other Windows tiling window manager developers can use these YAML definitions in the future to handle the same edge cases in their projects so that eventually there will be a tiling window manager of every flavour (bspwm, i3wm etc.) available for Windows users where having to manually accommodate and compensate for the non-standard behaviour of individual applications is a thing of the past. [1]: https://github.com/baskerville/sxhkd [2]: https://github.com/baskerville/bspwm#description [3]: https://github.com/LGUG2Z/komorebi-application-specific-conf... [4]: https://github.com/LGUG2Z/komorebi/#generating-common-applic...
In Show HN: A tiling window manager like i3wm written entirely in C#
This is a great article and I remember reading it numerous times while I was implementing my own window manager. For someone interested in working on a really fun and rewarding hobby project a WM is a great one to look into since there are so many resources starting from really small implementations: - https://github.com/mackstann/tinywm - https://github.com/venam/2bwm - https://github.com/dylanaraps/sowm - https://github.com/dcat/swm - https://github.com/JLErvin/berry Which are great at introducing the concepts and allowing you to grok the required libraries. To larger more full featured packed window managers which will introduce you to more advanced topics: - https://github.com/baskerville/bspwm - https://github.com/herbstluftwm/herbstluftwm - https://www.nongnu.org/ratpoison/ - https://github.com/conformal/spectrwm Gradually as you ge
Read the rest
t more familiar with the ecosystem a few questions will come up: Should I use X11 or XCB? - I personally used XCB and didn't find it too difficult to interface with, and there are a large number of implementations which use it (2bwm, bspwm, ratpoison, etc) so you shouldn't have an issue with learning more about it. But the documentation is pretty limited. If you are just wanting to write a toy WM than X11 is perfectly fine. X or Wayland? - If you're wanting to write your first WM as a hobby project than I would recommend X over wayland just due to the much larger amount of reference material and documentation. You will have a much easier time getting your feet wet. Ignore the comments about X dying as it doesn't really matter for a hobby project, since the whole point is to have fun. Feel free to check out my window manager which is an example of what just reading this blog post and getting inspired can result in: https://github.com/cfrank/natwm
In How X Window Managers Work, and How to Write One (2014)
My favorite WM! I've been using it for years now, after trying i3, herbstluft, xmonad, qtile and a bunch of others. It's very lightweight and highly customizable. The configuration file is just a shell script of bspc (client) commands. It doesn't handle keybindings on its own, but leverages another awesome tool by the same author: https://github.com/baskerville/sxhkd Which also simply calls bspc, but can be used for generic hotkeys as well. It's just an awesomely simple pair of tools that work great, stay out of my way, are rock solid and well maintained. Pure gems of the open source world. Please consider donating to support the author: https://github.com/baskerville/bspwm/blob/master/doc/CONTRIB... (I have no affiliation, just a very happy user.) This WM is the only thing besides habit keeping me from switching to Wayland. Though I gues
Read the rest
s I could get used to Sway.
In bspwm: tiling window manager that represents windows as leaves of a binary tree
Some tiling window managers work this way without any issues. Bspwm[0], for instance, uses a client CLI program (bspc) to send commands to the daemon and alter its configuration at runtime. In fact, it doesn't have a configuration file format at all, since it can be configured via a simple shell script that runs a sequence of bspc commands. It also doesn't have any key binding functionality and offloads this to a separate program, sxhkd[1], whose only purpose is to interpret key presses and execute shell commands. Since this is bspwm's interface, the two work seamlessly together, even though they're not dependent on each other at all. This is just brilliant design, and speaks volumes for the "do one thing and do it well" school of thought. For the record, I've been using both programs without a single issue for the past 3 years at least,
Read the rest
and it's been one of the most stable and least problematic systems I've ever used, and use to this day. So just wanted to offer an opposing personal experience (anecdotal, to be sure) regarding your brittleness concerns with this interface. [0]: https://github.com/baskerville/bspwm [1]: https://github.com/baskerville/sxhkd
In Command line interfaces are reified UIs
I used DWM and derivatives (Awesome, etc) for some time but I didn't enjoy the automatic layouts. The split between primary and secondary areas felt clumsy to me. I recently switched over to bspwm [0], and I really like it. Instead of automatic layouts, all areas can be split horizontally or vertically (similar to e.g. vim or tmux windowing). The layout tree can be manipulated in various ways, but the only on I use is rotate (ie. change vertical split to horizontal or vice versa). I don't have any status bars or launchers. It's not all good, though. Just recently the config syntax changed and it was somewhat annoying to upgrade my old config to the new syntax, albeit the new syntax is much better. Hopefully it stabilizes soon. It's also split in a funny way, so that bspwm only manages windows. It doesn't even listen to the keyboard, but t
Read the rest
ypically uses another app (sxhkd [1]) for listening to the keyboard and launching a process (bspc) to control the wm. This is elegant and unix-ey but responsiveness suffers under heavy load. On the other hand, it's not tied together with a scripting language like e.g. Awesome is bound to Lua and XMonad to Haskell, which is nice. Status bars and launchers are done with external apps but I don't use any at the moment. I do miss a desktop activity indicator a little, though (tint2 didn't work out of the box with bspwm, lemonbar was too hacky for my taste). [0] https://github.com/baskerville/bspwm [1] https://github.com/baskerville/sxhkd
In A dynamic window manager for X11 written with Node.js

Showing the 15 most recent of 19 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.