Technology/WMs/dwm, (sdf.org), 01/08/2019
------------------------------------------------------------
Alright, I said I was going to try dwm, to round out my
playing with spectrwm and i3[1]. I've downloaded,
configured, and compiled dwm, and have been using it
exclusively for a week. It's not much, and I will keep
working with it, but I thought I'd write a few thoughts at
this point.

First, a comparison between the three window managers
mentioned, in terms of memory use. There very well may be
better ways to figure memory use, but this is what I know...
it is at least the same method for all three. The results,
based on the listed commands run after login with only an
xterm running:

pidof spectrwm | xargs ps -o rss,sz,vsz
 RSS    SZ    VSZ
5796 16616  66464

pidof i3 | xargs ps -o rss,sz,vsz
 RSS    SZ    VSZ
11916 31098 124392

pidof dwm | xargs ps -o rss,sz,vsz
 RSS    SZ    VSZ
7208 15679  62716

These numbers are so low as to be irrelevant in today's
computing landscape. My fascination with them stems from a
stubborn insistence on not wasting system resources. My ram
sits wasted, largely unused; this may be the real waste, I
don't know. Does ram use less power if it's installed but
sitting idle?

Anyway, there's the memory comparison, for the curious.

In terms of usability, the very first thing a person might
notice with dwm is the philosophy of "figure it out, stupid"
that you encounter. If you know a tiny bit of C, then you
can safely ignore this conceit; but if you don't know C,
then you might be in the "this is not for you" crowd, who
can either walk away, or learn C. I'll appologize on behalf
of the dwm folks, since they won't be doing it.

That said, this is their creation, and they are doing it for
themselves, not for the rest of us. I'm happy that they
decided to share, and pleased that I know enough C to get
by.

The next usability note is the configuration. You modify the
h file and re-compile to change configuration parameters.
It's not a big deal, as the lines of code are few and the
compile time is quick (at least, on modern hardware.) The
config file comes with a sane and simple example to start
with, and is very easy to understand (arguably even for
those that don't really know C.) My one gripe with this
setup over spectrwm and i3 is that you can't restart the
window manager to use a new config, you have to restart it.
If you're using a login/session manager, this means a
logout/login.

Ok, I lied, because I have a second gripe with dwm: the
dwm folks attitude. Here is their comment on why a .h config
file for program options is wonderful:

 "Because dwm is customized through editing its source
  code, it's pointless to make binary packages of it. This
  keeps its userbase small and elitist. No novices asking
  stupid questions."

Honestly, any time people start talking about how elite they
are, I have to chuckle a little- not because I am more
elite, not at all, but because I've seen enough of humanity
to realize that we're all pretty defunct, each in our own
ways. There is absolutely no point, I feel, in holding up
our elitism when we're all so flawed.

Moving on to a conclusion: dwm is pretty nice. You tweak
your .h file and re-compile a few times until you have it
the way you want it, and you're pretty much done. dmenu is a
great way to launch programs. Keybindings are easy enough to
setup, even for your media keys. The status in the root
window is simple to work with (make your own script, or use
someone elses.) The tiling setup is good, and there are
fewer issues with misbehaving programs/windows than in
spectrwm (for me, at least.) It's a stay-out-of-my-way kind
of window manager, and I appreciate that.

So, thanks dwm programmers (do you gopher?) for your
excellent product. Even if I don't jive with your elitism, I
can certainly enjoy your skill.

[1] gopher://sdf.org:70/0/users/tfurrows/phlog/2018/ac5_i3wm.txt