Edit: Unfortunately, the images originally included in this post are gone, because of hosting problems in late 2009. My apologies.
This post is one part memo to self, one part demonstration of how I put together a very lightweight Feisty system using Openbox on a Dell Inspiron 1Ghz Pentium III laptop with 512Mb of PC133, two 60Gb 7200rpm hard drives and an Intel 2200BG wireless card.
These are all the steps I take, more or less from start to finish, step-by-step. If you want to put together a similar machine, feel free to use this as a framework for a system of your own. I’m not saying this is the only way, or even the best way. It’s just the way that works for me.
First, I blank the drive with Killdisk. Invariably I have old installations, partitions or a screwy MBR that really needs to be blanked. I know I could just run the partitioner over that, but I have personal experience in overwriting distros and getting really weird results.
Next I install a command line system off the Feisty beta CD. I use partitions that look like this.
boot, 96mb, ext2
root and home, remainder, xfs
I’ve been using XFS on this 1Ghz machine with good results; it takes less time to set up than ext3 with dir_index, journal_data_writeback, noatime and the rest of the tweaks (although Feisty does use dir_index by default now). I have had corrupted data with XFS in the past, and I would never dream of using XFS on my old 300Mhz machine … but for this one, it’s all right.
When the installation is finished, I use a sources.list file I generated here to dist-upgrade to the newest Feisty packages. After the upgradeI reboot for the first time. I like to think that I’m getting fresh packages before moving on … it seems especially important for something that’s still beta.
I’m still in a command line system now, and the next things I install are
sudo aptitude install debfoster readahead preload localepurge
These are maintenance packages, and will help keep things lean while I install the heavier stuff. readahead and preload are not part of the default command line system under Feisty; debfoster and localepurge allow me to reduce the bulk as I move along.
Since I have a lot of downloading ahead, I usually tweak my broadband settings next, by adding these to my sysctl.conf file. While I’m in there, I set the swappiness to 0, because this machine has more memory than I will ever need.
Next I set concurrency to shell in the /etc/init.d/rc file, then cut splash and quiet from my kernel boot line and add elevator=cfq. I also add vga=791, but that’s because I have a 1600×1200 screen and I do a lot from terminal windows, so I like the extra real estate.
sudo update-grub and the boot settings are finished.
Now back to installing.
sudo aptitude install xorg openbox obconf rxvt-unicode feh gtk2-engines htop
This is a good start for an Openbox system: You get the main stuff, plus a sweet terminal with urxvt, feh to set the background, and htop as a proper system monitor. I don’t install openbox-themes because there are very few themes in there I actually like.
When those are in place, I tamper with /usr/bin/startx to correct the annoying .serverauth file issue. And I add to my .bash_profile so X starts automatically on login. I don’t use a login manager like GDM or KDM; if I had to pick one to use, I’d go with Qingy.
Openbox needs a little help getting started, so put some menu files in place where you can edit them.
mkdir -p ~/.config/openbox/
cp /etc/xdg/openbox/* ~/.config/openbox/
ObMenu is one of the best things ever to happen to Openbox; it’ll need some python derivatives to get going, though.
sudo aptitude install python-glade2 python-gtk2
To build it, you basically decompress it and run
sudo python setup.py install from within the resulting directory. Once it’s installed, you can delete the folder it made.
I’ve never gotten used to the fact that Firefox 2+ starts and runs so slowly. I occasionally switch back and forth between Kazehakase and Iceweasel, but I’ve shifted back to Iceweasel lately because the 0.4.4.1 version of Kazehakase seems buggy to me. I use the Tab Mix Plus, Fasterfox, DownThemAll and Adblock extensions, but no more. Too many extensions makes Iceweasel chubby and slow.
After that, I install a slew of lightweight packages so I have some functions beyond browsing.
sudo aptitude install leafpad epdfview audacious pcmanfm-nohal mplayer gcolor2 tango-icon-theme-extras gimp graveman scrot gawk rtorrent easytag
All of those I pick because they don’t drag in half of Gnome just to get started. You probably know what most of those applications do; if you don’t, cruise past the Ubuntu package site and search for the names.
I should mention that I only install gawk because I need it to use a pipemenu script that sets my wallpaper from the Openbox menu. So you probably don’t need that one, really.
There are some heavier apps that I sometimes install, if I feel like I want or need them. Invariably they have a considerable payload.
sudo aptitude install abiword mirage gnumeric agave inkscape bluefish deluge-torrent gnome-cups-manager
All of those are quite useful, but come with a lot of baggage. I love Agave and Gnumeric, and I need Abiword and Bluefish, but I always hesitate because they rely on so much other stuff. In the end they always get installed anyway.
From there I reboot and see how things went. On the way through, I add
profile to the kernel boot line for a one-time rearrangement of the system startup.
From there I end up installing build-essential and some other things, because I’m caught in a proprietary Nvidia driver eddy right now, hoping someone takes pity on Geforce4 440 Go users and packages the 8776 driver for Feisty. I’m not going to hold my breath, though.
And really, anything after that is cosmetic. I have GTK, Openbox and icon themes that I prefer, and I tweak them a lot to get what I like. The final result is usually something like this.
That’s about it. I don’t do everything on the Edgy tweak list, but I do follow most of my own suggestions. ;)