My Ubuntu Setup

Update: It was cute to have the two articles together, but this will be better for googleability and notwastingtimeability. Added information about typing breaks and getting Twhirl.

This is also booring, but might be vaguely useful for someone out there.

I’ve set up Ubuntu so many times that I’ve put down some deep neural pathways for how to do it. So here goes. These are all commands I type right after the first login:

General Users

# I add this line to /etc/apt/sources.list or through "Software Sources" to get most recent gnome-do:
# deb hardy main
sudo apt-get install liferea pidgin-libnotify gnome-do gnome-do-plugins gmail-notify cheese glipper

Liferea is a decent feed reader1. In preferences I turn off the notification icon and click “Show the items of all child feeds…”. After setting up Pidgin I turn on the libnotify plugin and “Psychic mode”. libnotify gives you nice popups and psychic mode tells you when someone’s about to IM you, so you can log out quickly :). Gnome-Do is pretty useful once you force yourself to use it (by default, it’s activated with super+space). You should enable most of the official plugins (click the corner down arrow and preferences) and teach yourself to keep tabbing to the more advanced options for an action. Gmail-notify is better than the Pidgin notifications IMO. Cheese is a Photobooth clone. Glipper is a more advanced clipboard. Add it as an applet to a dock (it’s called Clipboard Manager).

I have to add pidgin, gmail-notify and gnome-do to my startup session in Preferences -> Sessions. To my mind, this is clearly the most user-unfriendly but necessary step in the Gnome desktop experience. I should be able to right-click on the application in the dock to add it and each application should offer to do this for me, and I definitely shouldn’t have to type the correct application name (twice) to add it to an inscrutable list.

For Firefox, I install Firebug (a developer thing) and Delicious Bookmarks, and I hit YouTube to let the browser download Flash for me.

None of the native Twitter clients seem to work particularly well, so I’ve been using Twhirl with Adobe Air. Air is easy enough to install, just chmod +x the bin file and run it (you could also right-click it and change permissions to “read and write” for owner). You have to download Twhirl through the Manual Installation link.

One nice feature that’s a bit hidden away is Preferences -> Keyboard -> Typing Break2 for avoiding RSI/maintaining sanity.

The rest of these steps probably don’t apply to you.

Macbook Stuff

# Add this to /etc/apt/sources.list to get macbook stuff
# deb hardy main
# More configuration options for the touchpad
sudo apt-get install gsynaptics
# I install these for the isight and a weird problem with numlock staying on, respectively
sudo apt-get install isight-firmware-tools mactel-support-fnmode-fix
# Eh, I still get the numlock problem. Numlock goes on when I unplug my USB mouse?

I need to replace the relevant section in /etc/X11/xorg.conf to get two-finger right-click on my touchpad:

Section "InputDevice"
	Identifier	"Synaptics Touchpad"
	Driver		"synaptics"
	Option		"SendCoreEvents"	"true"
	Option		"Device"		"/dev/psaux"
	Option		"Protocol"		"auto-dev"
	Option		"HorizEdgeScroll"	"0"
	Option "FingerLow" "20"
	Option "FingerHigh" "30"
	Option "MaxTapTime" "150"
	Option "MaxTapMove" "90"
	Option "MaxDoubleTapTime" "180"
	Option "VertScrollDelta" "15"
	Option "VertTwoFingerScroll" "true"
	Option "FastTaps" "true"
	Option "TapButton2" "3"
	Option "TapButton3" "4"
	Option "SHMConfig" "true"

Development Stuff

# Get vim and a friendly IRC client
sudo apt-get install xchat-gnome vim-full vim-gtk vim-ruby vim-python
# These give you most of the build requirements for your system
sudo apt-get install build-essential gnome-devel
# Probably will need these too
sudo apt-get install git-core bzr subversion mysql-server-5.0 apache2

FWIW, I set terminal profile to grey on black, with about 80% transparency.

Ruby Stuff

sudo apt-get install ruby ruby1.8-dev rdoc irb

Despite the fact that it’s essential for doing anything with Ruby, Rubygems is still packaged improperly on Ubuntu as of Hardy (it will work now but gem executables aren’t installed or chmod’ed or something). It’s still the best bet to build it from the most recent source from here.

wget # e.g.
tar xvzf rubygems-1.2.0.tgz # again, e.g.
cd rubygem-1.2.0
sudo ruby setup.rb install
# For some reason, it's gem1.8 and not gem anymore. Let's fix that.
sudo ln -s /usr/bin/gem1.8 /usr/local/bin/gem
sudo gem install rails # say; do a new bash if it doesn't work

Actually, you want to use utility_belt in irb:

sudo gem install utility_belt

and create a file ~/.irbrc:

require 'rubygems'
require 'utility_belt'


  1. although I’ve switched to Google Reader now that I have to juggle machines at work and home. [back]
  2. I set “Allow postponing of breaks” so I can click “postpone break” every three minutes for sometimes an hour. It’s a nice diagnostic for internet addiction. [back]