Posts Tagged ‘Window Manager


Some words on X windows

I’ve recently been reading about and watching a few videos about the replacement for X called Wayland. Now I know very little about Wayland itself, but I’ve been a user of X since about 1999 when I first went to university, so I can’t help it, I feel moved to write about my current and old experiences. X is actually really quite an old protocol and was designed with different goals in mind than those modern desktop environments have today. The history is written all over the internet so I won’t repeat it, but it is evident that X was originally meant for the X-terminal connected to a mainframe case that was so very common at the point of its inception.

One of the questions asked was “what does X do well?”

Lincity via SSH

Lincity via SSH

The core of the X protocol is based around drawing primitives such as lines and circles but also includes pixmaps (bitmaps for those who don’t speak X). Here is an example screen shot of a program, lincity, that was one of the first games I wrote about here on my blog. In this case I’m running it through an SSH tunnel over an ADSL line with a maximum upload rate (to the X server) of about 75Kb/s. Because of the way X works lincity is not only able to draw to my remote display, but is able to animate the play area at a reasonable rate. This situation is something which VNC and RDP just can’t do over my connection. The remote machine running lincity is my old Sparcstation 20 with 2x 50Mhz supersparc processors, running a pkgsrc build at the same time.

Working remotely

Working remotely

Here is another screenshot of me monitoring my old Sparc, again doing a pkgsrc build (they take a long time with only 50Mhz you know). I’m able to get real time performance graphs and interactive terminals, all using about 5-7Kb/s data through a SSH tunnel, and much less when the remote windows are not visible on the screen. This kind of use if very common for me, not just to old machines, but also modern ones that are around my workplace, X and SSH makes it easy to start a program from any machine. This is very handy for testing and I can run software from home or work as I need.

XDMCP Chooser

XDMCP Chooser

My machines at home are running NetBSD, FreeBSD and Gentoo currently and whilst some of them are capable, none currently have a head attached. So I frequently use XDMCP and a X server on my windows machine to access them, and it works basically flawlessly. I realise this is a less common situation now, but with thin clients becoming all the rage in different forms, it seems this feature of X could be exploited more.

FVWM on my Sparc

FVWM on my Sparc

I love that there is so much variety in window managers and that there are light ones that make even my oldest machine quite usable with recent operating systems. Pictured here is my nostalgic favourite FVWM, which incidentally is still being maintained and developed. Windowmaker, openbox, fluxbox, etc, all deserve to exist and have a dedicated user base. They are interesting and useful, but mostly truly light-weight, making using older hardware viable. People like myself who collect and use old hardware find this useful to keep life in their old pride-and-joys.

No matter how it is implemented under the hood, for users the network feature of X is seamless and very easy to use, in no small part due to the hard work of the X11 developers, many of whom are working on Wayland. So what motivated the big change?

One of the major factors is X is becoming too large and difficult a project to develop and manage. A contributing factor to this is the explosion in extensions to it that made it kind of bloated. It seems they were sort of added willy-nilly (mostly during the Xfree86 days) to meet the demands of people developing the more eye-candy based style desktop environments we see now. Fortunately the X developers have been cutting much of the debris out of the extensions and have made the X server modular. Now if only the X server was actually installed/packaged in separate modules for each extension and the core it might make having a slimmer server easier, but as far as I know that’s not possible.

Personally I’ve not had much trouble with X. I mostly had problems with getting proprietary drivers to work for my GPU back in the Xfree86 days, but I’ve not had that problem in ages. I have only really seen the flickering that has been talked about over high latency network connections, never over any LAN I’ve ever used. I understand that it probably does have huge design flaws, and that a newer system and design is needed to meet the needs of new desktop environments. I just feel somehow, that when it’s gone I’ll miss X.


WindowMaker on FreeBSD

The basic WindowMaker interface plus a few applications.

WindowMaker on FreeBSD

This weekend I decided it was time to upgrade the software on the two functional Sun Sparc systems I have. I have FreeBSD on the newer of the two machines, and had been trying various window managers to use. The older Sparc has FVWM (recently upgraded to the latest version) on it so whilst it is really my favourite for reasons of nostalgia, I felt I’d like something different. I had tried XFce, but many features of it were broken on the FreeBSD/Sparc64 platform. So I installed a few other window managers to see what they were like.

I had never installed WindowMaker before but had certainly heard of it. I remember looking through many package lists to see many of the dock apps, and wondering about the window manager itself. WindowMaker has a similar style to the old NeXT workstations operating system called NeXTStep the system that would eventually become mac OSX.

The first thing I noticed when I fired it up was how minimalist it appeared to be. I found the root menu relatively quickly and managed to work out most of how it works within a few hours. I was quite impressed with how fast the interface responded when I clicked on items, although FVWM is a slight bit faster but not by much. There is a very nifty configuration program built-in that controls pretty much everything you could want to change. This makes it very newb friendly, I was able to set up my desktop the way I wanted it very quickly.

It isn’t the most pretty of window managers however, and there is no pager built-in. Workspaces are managed by the clip icon, usually at the top left of the screen. When using it via X on the local network it was quite fast, but over a VPN or SSH connection it became quite sluggish when FVWM maintains reasonable speed. I’ve heard that it can get slow if you have a large number of dock apps running.

Overall I quite like WindowMaker, whilst it isn’t a replacement for FVWM for me, it will be a nifty interface for my newer sparc machine. I like that I can configure most things with the user interface, and the large number of dock apps available for it. It isn’t so useful when I’m connecting into my machine externally however as the speed drops of significantly. It’s available on all the different distributions and the various BSD systems.


Fvwm on NetBSD

Back when I first started university the computer labs in the engineering faculty used to mostly be filled with a type of thin client called a X terminal connected to servers running Solaris. This was my first exposure to pretty much any kind of Unix at all. Fortunately having been using DOS for many years meant that I learned the basic Unix bash shell pretty quickly to do normal run of the mill stuff. The window manager installed on pretty much all the Solaris servers you could access was fvwm. It was set up in pretty the default way, but with almost no modules started up by default, if I remember correctly they had the clock, the pager, xbiff and a rxvt window. I believe they had it set up this way because of the large number of X terminals they had (I’d guess a couple of hundred when I first started uni) and because they wanted to reduce network and server load for when there was a large number of students on the servers. As an end-user it was adequate, but the features of fvwm were definitely under utilised. The X terminals were not popular amongst the other engineering students, probably partly because they weren’t trained in their use, and because they were set up mostly with software engineering students in mind. This is why amongst my friends and myself, we often prefered using the X terminals because we would be guaranteed that we would get a computer when most of the other labs were full to the brim! There were also another two labs that instead of X terminals, had proper Solaris workstations in them. One had some old lunchbox style sparc stations that were a bit slow if you connected to the localhost. The other one had relatively fast Pentium (I don’t know what they were) intel based workstations there.

FVWM now

Pretty much every Unix distribution I’ve used of late either has a package for FVWM and an option to install it, or is quite capable of running it after being compiled from source. The base configuration has a lot more turned on by default than the university had, but it is still pretty sparse. Configuration of the program is done via a config file in your home directory, which can be quite daunting if you’re not used to setting up programs this way. The configuration file however allows for a crazy amount of customisation and given time you can make your desktop emulate most of the different popular operating system interfaces. The default has the window decorations looking very much like the window manager from motif/cde, but you can change the window decorations as you see fit, again using the configuration file. Some distributions have it already customised, for instance Debian adds its normal Debian menu into fvwm and updates it dynamically with software you install. Back when I was using Red hat Linux there was a perl based (I think) configuration wizard that helped you install themes.

The Good

One of the best parts about it is the fact that it is so light on resources. I’m running it on my old sparc station, it only has about 384 meg of ram and two 50Mhz processors, and fvwm runs as fast as if it were on a modern machine. The memory footprint is very small. It is incredibly customisable as I mentioned before, many people have created themes and configurations that you can borrow from. There are many scripts out there that implement most features you could want out of a window manager. The base configuration isn’t very pretty, but certainly functional.

The Bad

Changing the configuration can be difficult and may require scripting (or installation of scripts) to achieve the effect that you are after, which is obviously difficult for new users to do. Some distributions in the process of trying to make the most of fvwm, make their configuration files unreadable, and frankly un-friendly. This is a minor problem if you know how to make changes you want, but could be a major problem if you’re not prepared.


I tend to use fvwm in its default configuration with a few minor tweaks, partly because that’s what I’m used to, partly because that’s what I like. It’s what I use for any of my Linux/BSD systems that are a bit old or limited in resources, and even comes in handy when connecting to a powerful machine over the network via X. For power users who like to tinker with their window manager, you’ll enjoy using fvwm, and get a lot of satisfaction out of the result once you’ve completed your custom configuration. If you’re an ordinary user you might find the default settings adequate, but find it lacking when you want to change a simple setting.

FVWM on my Sparc

FVWM on my Sparc

Enter your email address to follow this blog and receive notifications of new posts by email.

Mister G Kids

A daily comic about real stuff little kids say in school. By Matt Gajdoš

Random Battles: my life long level grind

completing every RPG, ever.

Gough's Tech Zone

Reversing the mindless enslavement of humans by technology.

Retrocosm's Vintage Computing, Tech & Scale RC Blog

Random mutterings on retro computing, old technology, some new, plus radio controlled scale modelling.


retro computing and gaming plus a little more

Retrocomputing with 90's SPARC

21st-Century computing, the hard way