Background
By definition, a Linux server is designed to host long-running processes unattended. It is the opposite of a Linux-based desktop environment.
Yet a lot of time you do need or miss the convenience of GUI tools when working on your Linux servers. Or sometimes you use your Linux server as your development platform; and development tools, unless you’re a masochist, are typically GUI-based.
A relevant example would be in a setting where you and your co-workers need to connect to a cloud-computing instance. Obviously you want the minimal GUI without having to clog the network with unnecessary eye-candy and “smooth-rounded edges” of the mainstream GUI, or maybe you just prefer minimalistic and quick-response over polish. Either way, you can use this article as a stepping stone to join the fun.
NOTE: You can apply this to any modern UNIX system as long as you can get to the programs that we are discussing below.
As the world’s most flexible and (arguably) powerful OS, UNIX and its derivatives do not disappoint in this regard. Discovering the right combination of so many good programs out there is a big part of the thrill of putting together an environment.
In this article, I’m using Ubuntu 9.10 (Karmic). You can substitute almost 90% of apt-get command with yum if you’re using Fedora, or emerge for those of you Gentoo wizards.
First Part: Server-side setup
The reason I came across this exercise is a few months ago, I was upgrading my server to the latest Ubuntu release. A power outage shutdown the server when it’s in limbo-mode, rather than trying to recover from the unknown state, I decided to went ahead and re-install Ubuntu from scratch and rebuild the server.
TIP: I was able to “wing-it” because I have done the due diligence of backing up my data, otherwise, I’d have way less hair to worry about when combing.
Anyways, on to the history lesson (a practice of using UNIX history command to learn a great deal about how to setup a server):
3 apt-get update
4 apt-get upgrade
5 apt-get install apache2
10 apt-get install mysql-server-5.0
11 apt-get install libapache2-mod-auth-mysql phpmyadmin
19 apt-get install lamp-server^
20 apt-get update
21 apt-get install openbox
22 apt-get install obconf
23 obconf
30 vi /etc/xdg/openbox/menu.xml
Here we start by a pristine Ubuntu server install, nothing on it, and we add to it the LAMP stack, which gives us Apache 2.x, MySQL, and PHP.
Next here’s the lightweight window manager: Openbox. It’s not only a window manager that can run on top of Gnome or KDE, it’s can also run as a stand alone session. And this is the path we’re going in this article, since our goal is to go lean.
Two words: 1) ~/.xinitrc and 2) openbox-session. Put the second one inside the first one; and the next time you start Xwindows you’ll be running Openbox. Like this:

Follow this thread for much more details and interesting aspects of Openbox.
Next, what file manager?…