A dwm build with preprocessor directives to decide which patches to include during build time
Please check out DWM flexipatch for a painless way to try out patches and get your setup right!
You can turn patches on and off at will, without having to mess with diffs. Once you get it right you can finalize your config with a separate script. It is like magic. There are also flexipatch repos for st and dmenu
dwm for Wayland
Before you even ask: yes, there's a port for Wayland: https://github.com/djpohly/dwl
Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.
Fork of Lua 5.1 to encourage end-user programming
There are options between those possibilities, though. Here's my preferred point in the state space:
It's impossible for people to effectively use software over the long term without learning about its internals. Software can help people learn about its internals.
Matthew's build of dwm (by racingmars)
I've used dwm as my window manager for a couple years now, after switching from i3, and have never looked back (i3 was fine, but it had a bug that was affecting me too often--I don't even remember what now).
For me, the killer feature (aside from tiling vs overlapping) is that on my three monitors, I can switch virtual desktops independently on each monitor. After being able to do this, I don't understand why every window manager doesn't offer this. It's not uncommon with tiling WMs that have good multi-monitor support, but you really can't find it in traditional WMs. There's an unmaintained patch of openbox--openbox-multihead--that added the feature, and there's an "experimental" hybrid window manager written in Go (by the same author of the openbox patch), but no mainstream window managers appear to have the feature. Apparently it goes against a requirement/assumption in the EWMH spec and breaks existing pagers. But that's okay, because I don't use a pager.
Anyway, it really is critical to how I work now. I can keep a set of windows on my right monitor, and flip between virtual desktops on my center monitor without the right monitor changing at all. (And no, using the "sticky" feature of other WMs doesn't work for me because sometimes I do want to flip to a different virtual desktop on the right monitor and have that set of windows for whatever context I'm switching to). Along the same lines, the pertag patch is part of making dwm the perfect windows manager for me.
(If you're interested in the particular set of patches I use and my config, I maintain it at https://github.com/racingmars/dwm)
A dynamic tiling Wayland compositor (by riverwm)
No, the biggest feature of DWM is dynamic window tiling (pretty sure DWM stands for Dynamic Window Manager). Sway/i3 can be made to kinda dynamically tile with scripts, but it's much less consistent, less powerful, and hardly works. They are manual tilers and they don't try to be dynamic tilers.
Personally I prefer being able to quickly toggle a dynamic window layout based on my current workflow, and switch back to manual tiling when I specifically need to manually tile.
Currently I use Sway too as it's the most mature tiling compositor on Wayland, but once River WM, also based on wlroots, matures more I think I will likely make the switch because I often miss dynamic tiling.
On a side note, I hate how window moving works in Sway/i3. I can hardly ever get windows to move to where I want them to go with keyboard. As a result, I have a bind that enters a 'move' mode that takes the current selected window and moves it to a window that I can select. That, or I just use the mouse to drag the window, which is kinda annoying considering this is a keeb focussed environment.
Script for sway and i3 to automatically switch the horizontal / vertical window split orientation
Move and resize windows on macOS with keyboard shortcuts and snap areas
Clean code begins in your IDE with SonarLint. Up your coding game and discover issues early. SonarLint is a free plugin that helps you find & fix bugs and security issues from the moment you start writing code. Install from your favorite IDE marketplace today.
So let’s talk about this Wayland thing
1 project | news.ycombinator.com | 17 Sep 2023
Looking for the most minimal wm available rn
2 projects | /r/wayland | 12 Jul 2023
Three signs that Wayland is becoming the favored way to get a GUI on Linux
3 projects | news.ycombinator.com | 13 Jul 2023
Linux / C - Getting Full List of Display Resolutions
1 project | /r/C_Programming | 8 Jul 2023
Should I switch to hyprland?
3 projects | /r/hyprland | 21 Jun 2023