My introduction to Unix was BSD4.3 on a VAX-11/750 in 1986. I sat in front of a vt220 text terminal. It was heaven. For the prior two years I had been an evangelical first-generation Mac bigot. I'm not sure why, but the unix shell environment allowed me to express myself to the computer more efficiently, and more effectively, than any system I had seen previously. I was hooked.

It wasn't until around 1991 that I aquired my first real computer. (I used a 286-based PC running Coherent for a bit.) It was an AT&T 3B2/300 with 2 meg of ram and a 70 meg hard drive. It ran Unix SVR3, and in fact, was the reference platform for SVR3 in the 80s.

As I got more and more involved in collecting old & esoteric computers, I managed to aquire a steady stream of "obsolete" unix systems for home use. The 3B2/300 was joined by a 3B2/400 then a VAXstation-3100. Both were then replaced with a first generation RS/6000 server (Powerserver 930) which was eventually shut off, not because of better hardware, but because I just couldn't stand AIX any more. That was when I started getting Sun hardware. Aside from older pieces that were primarily of historic interest, I used Sparcstation-2s, Sparcstation-5s, and finally a Sparcserver-1000 for my home system.

Currently I use an SS5 for a firewall, another SS5 for my workstation, an SGI Origin200 as a compute server, and an SS1000 for my fileserver. The SS1000 runs Solaris, the Origin200 runs IRIX, the others run OpenBSD. (It looks like this.) And yes, this really is my current system circa 2005.

On the desktop front, I actually sat in front of an 80x24 text terminal through most of that. It was only around 2001 after I had switched to SPARCs that I decided to join the modern world of the 1980s and get an X terminal. Ever the minimalist, I scored an NCD19r x-terminal, which does 1280x1024 monochrome. Just recently that has been replaced by a Sun with a grayscale monitor.

I still do all of my work from the command line, and I hate flashy displays. So the question is - how to best configure an X environment for a comand-line mind?

I also try to learn from alternative experiments in non-GUI computer-human-interface design. VMS had an interesting consistancy in command line options which was really nice. TENEX had very slick command completion and was a huge influence on emacs (not that I use emacs). Symbolics Lisp Machines had probably the most impressive command line interaction of any computer system yet designed, so I try to learn from that.

This is an ongoing project (as all X desktop configurations are - HA HA.) and I think I am still in the early stages. Shell level tweaking is perhaps more important, and that's ongoing as well. (I used to use my own shell, then bash with my modifications, now I'm just using stock bash with an army of little shell scripts.)

Fvwm

I'm still a minimalist, so the slick desktop environments like Gnome and KDE are an abomination in my eyes. (If you enjoy them, great, and I think it's fantastic that the Open Source community has managed to produce something that blows away Windows on Window's home turf (ie: slick GUI for non programmers), but I don't want to use it.) I settled on fvwm as my window manager.

Although I don't like using the mouse too much, using the keyboard when I'm not at a shell prompt always feels like an ugly hack, so I try to avoid that too, and I don't use the keyboard for switching windows or picking menu items. The keyboard shortcuts I do use are alt-F1 through alt-F4 switch virtual desktops. I have a few more alt-functionkey commands set, but I almost never use them, and I can't really remember what they are.

Desktop widgets live in the dock thingy, and generally the only other things on the screen are xterm windows, or ghostscript, since I spend most of my time hacking postscript. The lack of a menu tree full of applications from my root menu is simply that I do everything from the shell prompt. I use xv all the time, but I always want to call it with filename arguments from the shell. I had more apps as menu items previously, but they shriveled up and fell off from a lack of use.

I do most of my web browsing in lynx, but also have an old version of Netscape for IRIX, and Opera for Solaris, for when I need a graphical web browser.

On the right side of the screen is my "dock thingy" (as I like to call it) which has my icon manager, pager, xload-equiv, clock, etc., stuff in it. From the top -

X11 - titlebar with windowshade-up/down buttons. This is the only place in my desktop I use the windowshade feature.

firewall/netstat - the firewall button opens an xterm on my openbsd firewall machine, and the space beneath it is "netstat -b 10 | awk ...." on the external interface.

origin200/cpu - origin200 is my compute server. The button opens an xterm, and the space beneath shows the CPU usr/sys for each processor.

ss1000/vmstat - the button opens an xterm, and the display shows page-in/page-out/user/sys/idle for my fileserver.

Icon manager - this is FvwmIconMan in text-only mode. Left click restores, center click minimizes, right click brings up an "Identify" window.

Pager - this is FvwmPager showing four desktops, which are refered to throughout the environment as "Mail", "Web", "Work", and "Project". Every window has menu items for sending that window to one of these desktops, by name.

Cut buffers - the xcb utility, showing ten cut buffers. Insanely useful both for seeing what's going on, for managing a few buffers simultaneously, and also as a place to quickly display text messages on the dock from any shell script. I use the bottom line for date/time, the next line up from my mp3 jukebox program to display the current song being played, then the current volume on the audio server, the current terrorist threat level, and then the current jobs running/queued in my network batch queue.

Bottom line is a couple of buttons for controlling the volume level.

I've been slowly replacing other desktop widgets with external hardware. This was inspired by my involvement with collecting old computers. The front panel switches & lights from a mini or mainframe from the 60s or 70s is just awe inspiring. I have a little real world interface box so I can wire up external circuitry, and I have actual lights for new mail notification as well as internet connection status. (And all the lamps in my computer room are under software control.) And then there's the analog meter showing the current terrorist threat level, updated every six hours... I had a big red light that indicated whether or not the word "nuclear" was present on the world news page at CNN, but eventually I had to use that relay for something else. I also have some mechanical counters that count all my incoming email, so every incoming message is accompanied by a nice audible 1950's solenoid "click". Very surreal - it makes it seem like my email is being handled by a giant mechanical beast, like something out of Metropolis.

Every xterm gets a title based on what it's being used for. Sometimes this is just the name of the machine, more often it is the project or function. The only buttons in the title bar are menu & minimize, so resize, close, and other standard window ops go under menu. Along with all the send-to-desktop-x commands. Typing "close" in an xterm window at the shell prompt minimizes it. (This is just a one-line shell script that calls "xwit -iconify".)

Just a little oddity here - most people don't realize that Microsoft Internet Explorer version 5 was ported to Unix & X11. I still have a hard time believing it, and it's running right in front of me...

(I also have Firefox, Opera, and Netscape running on my Solaris machine. On the rare occasions that I'm not browsing with lynx, I'm almost always using Opera.)