Right now if you install NetBSD with native X11 you get the same
default X session that X has shipped forever, complete with TWM. Just
like it's 1989.

Obviously this behavior can be improved after installation by adding
suitable packages and choosing a different window manager, or
installing one of the full desktop environments. Veteran NetBSD users
know how to do this. Veteran Unix and X users who aren't veteran
NetBSD users can figure it out pretty easily. Most such people have an
X setup they've been using for years that they can and do just plop
into place on a new machine.

This project does not affect those users, even the ones who for some
crazy reason want to use twm. It also does not affect users who just
want to install GNOME, KDE, or whatever other desktop.

The goal of this project is to provide a less knobby default X
environment for users who are willing to run plain X rather than a
full desktop but do not have their own X setup.

The project is: choose a window manager suitable for replacing twm in
base; import it into base; and update the default X config to provide
a decent default session using it.

Note that it needs to be a mainstream window manager; tiling window
managers and other exotica are not really suitable for the purpose. It
should also not depend on anything that isn't in base (that is, base
with native X), it should be smallish and not a bloatmonster, and
ideally it should be BSD-licensed.

Based on the window managers in pkgsrc, there are two chief
candidates: fluxbox and golem. Each has pluses and minuses. Some of
these are:

golem is prettier and fully themeable

golem is written in C, fluxbox in C++

golem is a lot smaller (less than 1/10th the code size)

golem currently needs some work, chiefly on the config system; fluxbox appears to be ready to go

golem is just about dead upstream; fluxbox is not very active but is still getting occasional releases

Currently it looks like golem is a better choice, especially since
ideally we'd like to pick something that will run decently on
older/slower ports. But it requires more work.

Note that we could (AFAIK) become upstream for golem; this is not
necessarily a bad thing.

There might be other possible choices; these two are the ones in
pkgsrc that seem viable.

Note: this project is not listed as a GSoC project (although doing the
needed work on golem maybe could be one) because much of it has to do
with build system integration and ancient X things and other stuff
that requires experience a student probably won't have.