I confess: leave me alone in your house, and I’ll browse through your books. I don’t usually have the chutzpah to pry into your desktop and configuration files if you leave your computer unlocked, but the temptation is strong. What seems natural to one user isn’t always natural to me, and I’ve learned a lot when I’ve been allowed to look around another person’s system.
After years of authorized and — I admit — the occasional unauthorized but non-tampering snooping, I’m overdue to offer reciprocity. I’m not naive enough to throw open my machine for everyone to examine online, but, over the years, I have developed several pages of hard-earned notes that I follow and revise whenever I buy and set up a new computer.
Since I’m currently mulling buying another computer in the spring, I’m sharing them now. I figure that many other people share my insatiable curiosity, and, like me, can find a benefit or two by seeing how someone else approaches the task of preparing a computer to run with their favorite free operating system.
Selecting hardware and general setup
If I were doing nothing more than writing and web work, I wouldn’t buy a new computer. Instead, I’d get a refurbished two or three year old computer from Free Geek Vancouver, saving me cash and making me environmentally responsible while giving me all the computing power I need.
However, I occasionally do graphics work or review software that strains system resources, so I try to have at least one reasonably up to date computer. I always buy a customized workstation from a small specialty store (every major urban center should have a couple) after researching GNU/Linux hardware compatibility. Then, when it’s assembled, I take a live CD — preferably from my distribution of choice — and test the assembled computer at the store before I take it home. These days, hardware compatibility is less and less of an issue, but, by making this effort, I sidestep any problems that might lessen the joy of a new machine.
Annoyingly, I don’t have the same option for a customized machine if I buy a laptop. At least, though, a laptop pre-loaded with GNU/Linux is an option these days. I won’t have the instant gratification of picking it up off the shelf, but I can have one if I have the patience to wait a few days.
Whether my next machine is a workstation or a laptop, the major issue for me will be the video card. I want to avoid video drivers that are either free but unable to give me access to a card’s full capabilities or else proprietary but buggy and requiring reinstallation with every new kernel. What’s more, I’m tired of waiting for the situation to improve. So, next time around, I’m thinking I’ll avoid ATI or NVidia cards, and go with an on-board Intel card. If complete and free drivers become available before I buy, I’ll rethink.
In the past, I’ve guiltily included a small Windows partition on my machines, because clients sometimes required me to work on Windows, and I occasionally do comparison articles. However, next time, I don’t think I’ll bother. Increasingly, I can deliver work that’s acceptable to clients without booting Windows, and the older copies of Windows I have floating around should do for any comparison articles. I must say I’m relieved — both for political reasons and for the extra hard drive space I’ll save.
My first step after bring my next computer home will be to partition it, using gParted or some other free partition editor. I’m a long time believer in extensive partitioning, so I will probably have separate partitions for root, /tmp, /usr, /var and /home for increased security and ease of recovery in the event of hard drive failure. The trade off is that I may have to adjust the size of some partitions occasionally, but with gParted that is a straightforward enough operation.
Installing a distribution
Right now, I’m using Debian on my main workstation and Fedora on my main laptop. I use Debian because of my long familiarity with it and because stability is what I want in a workstation. By contrast, I use Fedora to keep me in touch with RPM-based package management and because many innovations in GNU/Linux generally appear in Fedora first.
However, software freedom is an increasing priority for me. More and more, there seem to be fewer and fewer reasons for compromising it. Since Debian has voted to ignore the inclusion of proprietary firmware in its repositories, my next workstation may use GNewSense, which is based on Debian by way of Ubuntu, but at least tries to remove proprietary elements. For the same reason, I am inclined to replace Fedora with Blag, although I’ll check first to see how whether the Fedora install option to remove proprietary firmware is permanent or whether the proprietary package needs to be deleted with every kernel upgrade. I will also look closely at GNewSense’s and Blag’s repositories to check what software is available.
Software selection
Desktops tend to accrue to my systems, because I am always experimenting with new ones. At installation time, however, I generally install GNOME, KDE, and Xfce. Although I spend most of my time in GNOME, I refuse to cut myself off from such KDE applications as digiKam or KPDF, or Xfce ones like Xfmedia, whose small desktop footprint makes it ideal for transcribing recorded interviews. Often, too, I switch my main desktop in the hopes of keeping myself informed. In total, the three desktops occupy only a few gigabytes — a small exchange in hard drive space in return for the freedom to work with the applications I prefer.
Once I finish installing, my second step is to upgrade the system. The third, whenever the distribution is supported, is to run Bastille to tighten security. The average modern distribution has become so lax about security that you can easily increase security several notches without any inconvenience. I prefer programs like Bastille to ones like SE Linux (although I use both kinds), because Bastille takes a pre-emptive approach to security rather than a reactive one. When Bastille does not support a distribution I’m going to use for a while, I run it on another machine and use it as a guide to doing my own system hardening.
Much of my everyday software is installed by default by most distributions, including Firefox, the GIMP, and OpenOffice.org. To these basics, I make a point of adding SpamAssassin to help deal with junk emails, Inkscape for vector graphics work, gFTP for file transfers, Amarok for music, and Xchat for IRC. My bias is towards programs with small desktop footprints and extensive customization features, because I like maximum space for my work, and have strong opinions on the subject of fonts and backgrounds.
I submit much of my work in HTML, so HTML editors are an important consideration. For quick and dirty HTML, I add KompoZer, but much of the time, I work in Bluefish, a non-WYSIWYG editor that automates the adding of format tags — the perfect compromise, I think, between the clean code you get with manual inputting and the convenience of graphical editors.
Another important application for me is Evolution, which I value as a centralized work area. Numerous other programs handle email, notes, to do lists, and contact information as well or better, but few are as convenient as Evolution. However, with KDE 4 maturing, I am considering investigating KDE-PIM in depth, so that I can make an informed choice between the two.
As a sometime designer, I also check what fonts a distribution installs by default. These days, the number of free fonts is increasing, and many distributions install all that are available. However, if necessary, I make a point of installing Red Hat’s Liberation fonts to ensure I have metrical equivalents of Times Roman, Helvetica/Arial and Courier, the standard Windows fonts, and a selection of SIL fonts for their expanded Unicode support, so that I can type in non-English languages without looking ignorant — or, in the case of people’s names, discourteous. I am particularly careful to include SIL’s Gentium, one of the most drop-dead gorgeous fonts I’ve ever seen, regardless of the license.
For games, my preference is for short classic games, like GNU Backgammon or PySol, which has all the games of solitaire you could ever want. I also install the Civilization-style game FreeCiv and the combat-oriented Battle for Westnoth for when I have spare time and want a strategic challenge.
Most of these programs take no time to configure, because I keep regular backups of the home directory, so that transplanting is simply a matter of copying and changing permissions to fit the appropriate user-account. However, I usually conclude a fresh installation by adding OpenOffice.org and Firefox extensions. To OpenOffice.org, I add
the Sun Presenter Console (which requires configuring for dual monitor use), and the Sun PDF Import extensions.
To Firefox, I add two main categories of extensions. Since I regularly have several dozen tabs open while researching and writing an article, I use several to enhance the manipulation of tabs, such as remove tabs, TabHistory, Tabs Open Relative, and Undo Closed Tabs Button. An especially useful tab extension is Session Manager, which allows me to store different sets of tabs for easy reopening later.
Another large category of Firefox add-ons for me are ones for security and privacy. I have no need of Ad Block, since my eyes skip over ads unaided, but I do value Master Password Timeout, which limits the time that a master password in Firefox allows you unrestricted access. Recently, to, I have added Controle de Script, mainly so that I can be more selective about how Javascript runs, and BetterPrivacy, which allows management of super-cookies, such as those left behind by Flash sites, which the default Firefox controls miss.
Your Choices for the Linux Desktop?
From this list, anyone who doesn’t know me would have little trouble identifying who I am: a free software-loving user whose main purposes including writing, designing, and using the web, and only the simplest of programming. That makes me, if not quite a typical user, typical enough for many purposes.
But enough of me. What are your considerations when setting up and configuring a new computer with GNU/Linux? And what can other people learn from them?