DISCLAIMER: This is all my personal opinion, if you can’t accept that then don’t read this article.
If you’ve been around the Linux space for some time, chances are you have heard of a tiling window manager. This awesome invention allows you to automatically organize the windows you open on your computer. If you’ve ever tried one, chances are you’re still using one, because of just how great they are.
Now, there are many different tiling window managers, on the x11 side we have things like i3, bspwm and, of course, dwm. While on the Wayland side there are hyprland, Sway and River. But all of these window managers fall under one of two categories: they either have manual tiling (like i3) or dynamic tiling (like dwm).
With a manual tiling, you still have to move windows around your screen like you would on a traditional stacking window manager. The only difference is they automatically take up as much space as they can. While if you use a dynamic tiler, you don’t have to worry about any of that, because it will always place new windows in a way that actually makes sense, like the default master/stack layout.
So why would anyone want to use a manual tiler? They’re basically getting half of what you would get from using a dynamic one.
But you may ask “What makes dwm so much better than other dynamic tilers?” and I would tell you that the best part of dwm is how you customize it. Because dwm is customized by modifying the source code, which is completely in C. You can either edit it yourself or find patches online (there’s a bunch of them on the developer’s website). This immediately gives you a level of control over the window manager that many others only give you if you download the source code off github (or whatever they use) instead of the window manager binary. While with dwm, you’re meant to download the source code, modify it to your liking and compile it yourself (which also makes it faster than just downloading a binary).
This also makes dotfiles super easy to share, because you can just send someone the source code for your dwm fork and all they have to do is compile it.
Some of you might still be skeptical of dwm because it is not available on wayland, but guess what? It is! There is a fork of dwm called “dwl” (if you’re trying to install it but can’t find it on github or it is archived it’s because the project has migrated to using codeberg in early 2024) that works perfectly.
Now, there is a lot of criticism around dwm being “too minimal” or “outdated”, but that’s the whole point of the software: it gives you a blank slate that you can work with to make your own. I just think the way you’re supposed to work with dwm is way better than the way you’re supposed to work with other window managers.
With all this being said, there are some people who absolutely shouldn’t use dwm. For example, it would be a nightmare for non tech-savvy people, but if you’re reading an article on HackerNoon; chances are you know a lot about tech, so you should really give dwm a try.