4 ms·
I finally settled for dwm too nearly a year ago and I really can not emphasise how big of a deal the ~2,000 SLOC of code really is. It allows you to read it all
by ninjin 4y ago
I finally settled for dwm too nearly a year ago and I really can not emphasise how big of a deal the ~2,000 SLOC of code really is. It allows you to read it all in about an hour and once you have done that you will be “elevated” from user to developer. Now instead of desperately combing through manuals and guides with a fine comb you will just go “I could implement that…” now and then, which has been a game changer in terms of how I view software.
Another commenter mentioned the lack of an extension framework and that applying patches could lead to conflicts, but I think this misses a bigger point. If you find yourself applying a ton of patches, just stop, dwm is supposed to be about minimalism and frugality, do you really need those features? I am very happy and productive with three patches: statusallmons [1] (~5 SLOC), warp [2] (~10 SLOC), and my own not-yet-public Fibonacci-style layout algorithm with a bit more features to support multi-head setups nicely (~90 SLOC). That is it! Keeping it simple may have seemed madness to me a year ago, but I think I now “get it” in terms of the freedom it brings through lower complexity, greater understanding, and thus ultimately hackability.
[1]: https://dwm.suckless.org/patches/statusallmons https://dwm.suckless.org/patches/statusallmons
[2]: https://dwm.suckless.org/patches/warp https://dwm.suckless.org/patches/warp
Look at warp for a genius example of dwm simplicity. Other WMs will track the mouse pointer on a per-display basis and I was tempted to implement this for dwm, but then I tried the warp patch which is stupidly simple: move the mouse pointer to the centre of the currently focused window if it is not already inside it. No need for state and together with xbanish [3] you will always know where the mouse pointer is, yet it will not interfere with you while you work. ~10 SLOC, yet so incredibly powerful because it managed to take a novel stab at the heart of a problem.
[3]: https://github.com/jcs/xbanish https://github.com/jcs/xbanish
- grawp 4y agoYour arguments have persuaded me to give it a try. Though I'll go for dwl - a wayland alternative based on wlroots to dwm.