- Contact: tech-x11
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.