What does HackerNews think of bspwm?

A tiling window manager based on binary space partitioning

Language: 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 get 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

Bspwm is great too if you're interested in trying a tiling window manager. Have been using it almost exclusively for the last 2 years without too many problems.

[1] https://github.com/baskerville/bspwm

Your Autumn app looks pretty sweet by the way. I've been looking for a simple WM on Mac. The other ones are always needlessly complicated (looking at you Hammerspoon). Especially after using the beautifully minimal bspwm [1] + sxhkd on Linux for years.

But re: zero analytics, aren't you curious how many people use the app at a minimum?

[1] https://github.com/baskerville/bspwm

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, 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

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 typically 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

Is there a short summary of the features/value prop for each? The slides/video are a bit long and detailed.

A simple overview and link to Github makes a good pitch.

Curious how it compares to [1] bspwm and [2] sxchd? Which offers a minimal tiling window manager and daemon controlling keyboard shortcuts. Each has a small C codebase that's simple and easy to understand, unlike most other tiling WM.

The config is excellent too and integrates well with [3] xmobar for a very clean and lightweight desktop, well suited for ArchLinux.

[1] https://github.com/baskerville/bspwm

[2] https://github.com/baskerville/sxhkd

[3] https://github.com/jaor/xmobar

bspwm [0] + sxhkd [1]

  [0] https://github.com/baskerville/bspwm
  [1] https://github.com/baskerville/sxhkd
This looks really similar to bspwm[1] for Linux, which also uses a binary tree for window management, and also uses a daemon/client model for interaction with the window manager. bspwm is by far my favourite window manager, in any OS I have used.

[1]: https://github.com/baskerville/bspwm