glider logo

Making Debian Livable

Over the years using Linux, I've come to settle on this series of steps to follow to get a fresh Debian installation up to snuff for my usual usage. These days I deselect the option to install a desktop environment, preferring instead to use MATE.

Last updated Monday September 16, 2013


On a fresh install, your /etc/apt/sources.list file isn't very useful. It just uses the "main" repository, which is just the very basic of things. You want more. Here is a wonderful sources.list generator:

For MATE, add this to your /etc/apt/sources.list file:

deb wheezy main
Then do
apt-get install mate-archive-keyring
to install's distribution keys. Now do
apt-get install mate-desktop-environment-extra
to install it. You'll also need to install
to actually get X11 started.

Firefox / Iceweasel

I'm still on the fence regarding the Firefox / Iceweasel split. Iceweasel does what I want it to and have had no meaningful problems. Some plugins are absolutely necessary. These are as follows:

Latest Iceweasel

The standard install of Iceweasel is decent enough, but it tends to lag behind standard Firefox on the releases. For something more up to date, see

John Bradley's XV

I got hooked on John Bradley's simple viewer/editor around 1994 and never looked back. It's quick and simple for viewing things and can even do simple enhancements. Unfortunately this application hasn't been updated since 1996 and its license is Shareware. Debian doesn't like that kind of license so it's not found in the Debian repositories. A fellow named Klaus Ethgan likes XV too and he took it on himself to package up XV along with the myriads of patches that have come out since 1996. You don't have to build XV by hand anymore if you don't want to. See Klaus's page at

The Positions of Control Keys

My Apple II had its control key just to the left of 'A'. So did my Commodore 64. The original IBM PC was like that too, but by the time of the AT, caps-lock moved there. Furthermore, the computers I learned Unix on, all had control to the left of 'A'. With my mind shifted into MSDOS and Windows mode, I could sort of get along with the misplaced caps-lock. But now with Unix being my main environment, I want control back where it belongs.

To turn caps-lock into the left control key for text consoles, add this to /etc/rc.local:

/sbin/kbdrate -r 25 -d 500
(echo `dumpkeys | grep -i keymaps` ; echo keycode 58 = Control) | loadkeys

For X11, under Gnome, MATE, or KDE, this is simple enough to fix, but to conclusively nail the problem for any environment, use this .xmodmap file:

keycode 66 = Control_L
clear Lock
add Control = Control_L
If you want to keep caps-lock, but put it where left control used to be, add the following lines:
keycode 117 = Caps_Lock
add Lock = Caps_Lock


This is mainly of interest for laptops. Network Manager is nice, but it only works when X11 is active, which makes the next step hard to do. Wicd is much nicer. If you do
apt-get install wicd
, that'll install the GTK, curses, and command line versions. You will need to manually tell Wicd where your wifi adapter is (ie eth1). Unlike Network Manager, it won't guess.

Proprietary Graphics Drivers

The situation with proprietary graphics drivers is a bit convoluted to work out with straight Debian. Ubuntu makes this a snap, but lately I've been jaded from Ubuntu. Here are two pages that explain how to get things rolling with ATI or Nvidia cards:

I find it easier to use the wonderful sgfxi script from A caveat: you need to run it at a virtual console without X running and have an active network adapter. This is a problem if you use NetworkManager and wireless. The easiest way around this is to plug in an ethernet cable. If your /etc/network/interfaces file looks like this:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
you should be fine. The system will notice the cable and configure things so you can get on the network. NetworkManager may add a line that looks like this:
#NetworkManager#iface eth0 inet dhcp
That won't hurt.


Wine is always very out of date in the Debian repositories. There are no alternative repositories with up-to-date packages either. You'll have to build it yourself. This isn't hard. First make sure you've created a sensible sources.list file with the "contrib" and "non-free" options enabled. Now, here are some commands to run as root. You did install sudo, right?
apt-get update
apt-get install build-essential
apt-get build-dep wine
apt-get install libmpg123-dev libgms1-dev libopenal-dev
This gets everything you'll need to actually compile and build Wine yourself. Now get the source tarball from the official website and put it somewhere like $HOME/src for instance. Open it up with "tar xjv wine-x.y.z.tar.bz2" and have a look inside. I like to configure it like this:
./configure --prefix=/opt/Wine
This will require you to add /opt/Wine/bin to your $PATH. If you feel brave enough to put Wine in /usr/local, use this command instead:
./configure --prefix=/usr/local
This is more "proper" from a historical perspective, but it makes removing Wine much more difficult if you don't keep the built source lying around in, say, /usr/local/src. Once that decision is made, you're ready to build:
make depend && make
Walk away and do something else. This will take a while. When you're ready, do this to do the install:
sudo make install

Some other Wine-related things to do:

( home | articles )