I love window managers. My first linux (and *nix) experience
was installing Slackware 3.x from floppies onto a Packard
Bell 486 laptop in a college library. Black and white screen
and a lot of fun. Slow process, but I got X11 running. I
still often use xsetroot -gray to have that same hashed gray
root window...
Back then, of course, you started with just X11... nothing
running on top of it. You added the window manager of your
liking. If you were like me, the window manager you liked
might even change from day to day. On that setup, I think I
only had mwm, and maybe fvwm.
My favorite in that era was FLWM- though I recall it being
FLVWM back then. It had a title bar on the left in the
style of wm2 a bit, plus a few neat features for the time,
and it was lightweight (important on a 486, of course.)
I felt like it let me get my work done, and that was about
it.
These days, my computer has more than enough RAM, Disk, and
cpu resources to use any of the available window managers
or desktop environments, but I often find myself nitpicking
the whole "window" experience. I tend to keep a long list
of window managers installed, and every once in a while I
poke around at them. Daily, I use fluxbox, which I feel
has a small footprint with a relatively large feature set.
I especially like that it provides a tray, taskbar, and key
bindings, all at very little resource cost.
Today, I needed to waste some time to avoid doing real work
so I fiddled with my window managers. First, I decided to
look a little bit at the entirely meaningless aspect of
memory footprint. At least, it's meaningless for most high-
powered modern computing scenarios. Here are some memory
stats from a few wm's. These are all with just the wm and
an xterm loaded. I was only in the mood to test "light"
window managers today:
I still think that as far as bang-for-the-buck goes, flux
beats most everything else. But looking at the list above,
I was reminded that TinyWM really needed a bit more looking
into. I mean, look how much of my RAM it leaves for real
work! Not that I'm doing any...
TinyWM is about 50 lines of C code, and that's it. It gives
you the ability to move windows, resize, and bring to the
top; and nothing else. I've looked at it before, but to be
honest, I've never really sat down and tried "working" with
it.
After looking at memory, and poking at a few of the window
managers (and getting distracted by downloading the Plan9
ISO and poking at that), I decided to really give TinyWM
a go.
So, I'm in TinyWM now. It is basic, but it mostly works.
I'm trying to avoid adding much to it, at least in the way
of active, running, background processes to introduce or
replace features and functionality that I'm used to in my
working environment. No taskbar, no system tray, no
launcher, no root menu, no virtual desktops. Just the
xterm that I added to my xprofile, so I can launch other
things.
This is, of course, just a silly experiment. I just want to
see how little I can get by with. I'll probably try a whole
workday tomorrow running it. So far the only thing that I
don't like about it is the inability to de-clutter my
workspace without closing windows. There's no minimize or
"roll up" type feature. If I want "clean" I have to close
things. Which is fine, except for things like mail, that I
like to keep running.
One thing I've never done is create, or even modify, a
window manager. At 50 lines of C (and I think a PY
version is available too), TinyWM might be a good way
to have a taste of that.