I’ve tried for months to get along with the standard desktop choices for Ubuntu 11.04, but none of the “big 3” are doing anything close to what I want:

Unity crashes. A lot. And I don’t like having to click on an application icon multiple times to get a display of all open windows and then have to click on the window I want. For example, if you have multiple browser windows open, it just seems to pick the first one or a random one (as opposed to the last window of that application which was open) when you click on on the Unity icon for the app. And that sucks. I do like the menu integration into a single panel to save vertical space – but asides from that it’s just subpar.

Gnome 2 doesn’t frickn work properly anymore and also crashes a lot (far worse than ‘back in the day’, and Deskbar doesn’t work anymore either), and finally

KDE3 renders fonts really badly (yes, I did turn on and experiment with the sub-pixel hinting options) and although it can look quite nice, it just feels like a bodge. I spent hours trying to configure it properly and it was never as good as stock Gnome even after all the extra effort.

So, what options are left? Well, there’s LXDE (the Lightweight X Desktop Environment), and there’s XFCE (which Linus Torvalds recently switched to because he’s hating the desktop brokenness as well). I installed LXDE on my work laptop earlier, and there’s nothing particularly wrong with it which couldn’t be fixed up , but I installed XFCE earlier on the assumption that Mr. Torvalds knows what he’s talking about – and you know what? He does…

Some notes for if you decide to try out LXDE

In LXDE wireless networking doesn’t work right off the bat, so you might want to grab a copy of wicd before you plunge headfirst. Also, compositing isn’t natively supported with just LXDE, so you’ll also want a copy of xcompmgr, which you should kick off like this:

xcompmgr -c-f-F&

You can man xcompmgr once it’s installed to get all the switches, but for this example it just fades windows in and out nicely – and actually looks rather nice (not to mention blazingly fast).

I like LXDE, and if XFCE didn’t exist I’d use it without hesitation and be perfectly happy with it. Only XFCE does exist – and I choo-choo-choose that – at least for now. I also like the huge range of packages available for any *buntu, so that keeps me from jumping ship entirely. At the end of the day, it’s all up to personal choice about what features you absolutely must have, what features you would like, and your own personal preferences.

Step 1 of 1 – Install xubuntu-desktop

If you like dockbars you can use docky with XFCE without any arguments, but I kinda prefer a bottom ‘window-icon’ panel (ala Gnome 2) so I’ve just set things up that way on mine. And the entire thing goes on fine with the following simple command:

sudoapt-get install xubuntu-desktop

It’ll drag in a whole heap of other dependencies, but it’ll all install nicely, at which point you just need to log out and log back in selecting Xubuntu Session as the desktop environment to use. Wireless networking worked straight away with no hassle for me, but in all fairness to LXDE, I only installed the LXDE package (and its immediate dependencies), and not the lubuntu-desktop package which (may) have straightened all that out.

The end result

After looking through the themes, adding a few bits and pieces to the top panel, and creating a separate bottom panel for the window-icons, this is what I’ve ended up with:

First draft XFCE desktop - click for larger image.

Honestly though, I just couldn’t go on using a desktop environment that would crash if not once per day, then many times per day. I mean, really – WTF is with that? Why would you even ship a desktop windowing environment in that state? Since I actually like to get some work done and not have to be killing and relaunching processes all the time, XFCE is officially doing it for me at the moment. So no more unity –replace, s’long killall nautilus and sayonara panel has stopped responding – it’s time to be able to actually concentrate on getting some work done.

Update: I wrote this to switch out the JRE in Ubuntu 10.04, and it’s still valid & works in Ubuntu 10.10 =D

The default java solution for Ubuntu 10.04 is the OpenJDK virtual machine and the IcedTea plugin for firefox – but I’ve been having serious issues with it locking up, taking up 100% CPU and other such craziness – so I’ve switched over to the (proprietary) official Sun JDK, and things are working much better. Here’s how I did it, and how you can too…

1.) Add the Lucid Partner repository to your Sources list

We’re going to be installing the Sun JDK through the repos, and it just so happens that we need the partner repo enabled, so you can either add the following line to your /etc/apt/sources.list, or you can check the box in System | Administration | Software Sources (assuming you’re using Gnome – pick whatever source managing front-end KDE uses if that’s your poison):

deb http://archive.canonical.com/ lucid partner

or..

2.) Install the Sun JDK and Plugin

Before you install the good stuff, it’s an idea to check your current version so you can see the changeover’s worked. To do this, just run java -version from bash and you should see something like this:

If you do this before installing the Sun JDK, all packages depending on Java will be removed as well – so in this rare instance, later is better, and any packages depending on Java can now stay on the system.

4.) Check it all works

From the command line enter: java -version and you should see the new details:

If You’re Still Want to Build Your Own Copy However…

The currently available pre-packaged version of Handbrake (the Video/DVD transcoder/ripper) at the time of writing is 0.9.4 (actual filename for the 64-bit version: HandBrake-0.9.4-Ubuntu_GUI_x86_64.deb) – and it’s about as much use as a chocolate teapot on Ubuntu 10.04… You simply can’t endcode/transcode with it because it’s broken, with the Add to Queue and Start buttons permanently greyed out because the functionality behind them is mashed.

So let’s build a fresh version that works!

Step 1.) Get the Necessary Libraries

A quick trip to the command line will get everything you need (where everything you already have in this list is simply ignored):

Step 2.) Get the Source Code

Step 3.) Build It!

Once we’re in the right place, this configure line with the given switch will configure and make Handbrake in one fell swoop:

cd hb-trunk
./configure --launch

Step 4.) Test It!

After a successful build, you’ll see the executable HandBrake-CLI in the build folder – but you’re probably after the GUI version, which is tucked away in build/gtk/src and called ghb – just go to the right folder, launch it and give it a try out – should be absolutely mint.

There are a stack of different options for the encoding process which can slow down the encode/transcode process and increase the quality – I went with these final settings to get high encoding quality without the encode process taking all week:

I used to upgrade my Ubuntu distros after each release cycle, but it was never a very pleasant experience… There’d always be mismatched packages and configs, legacy cruft left lying around filling up my root partition, and all sorts of mismatch woes – so I ditched that for separate partitions for my root folder and home folders, and now wipe the root folder with the newest release as and when it’s out.

Because I’ve done this a couple of times over the last few years, I feel I’m getting pretty good at getting the machine up & running with everything I need at a pretty fast pace: maybe a day for all the core stuff, another to tweak the vast majority of everything so I have it as I want, and then just bits and pieces as they come up. This time, I thought I’d make a list of all the things I install (yes, I know you can automatically generate a list of installed packages) – because I also wanted to note why I install ’em, you know, what are they good for, so the next time I install a fresh system I can just grab it all even quicker.

Now, a stock/standard Ubuntu distro is a pretty good thing – but it doesn’t come with everything you need, so with that in mind, I’d like to present a list of things that I think you also need, and that once you have in place you’ll be able to do most anything you need with your system with just a few clicks. Before you do any of this, it’s a good idea to open up System | Administration | Software Sources and enable the restricted, universe and multiverse repositories as shown below:

With that done, here’s the list of things you’ll likely want to have installed in no particular-order, and only roughly sectioned off into classes (system, sound & media, social networking etc.):

Decent audio CD ripper, use with LAME. Also, it’s the only ripper I’ve found that doesn’t randomly fall over if it doesn’t like a CD…

Warning: The current version (v2.7.2) has two bugs which are kinda scuppering it: it doesn’t add ID3 tags to tracks ripped beyond track 10, and it crashes at the end of each disc rip =/ It might be better to use something else for the time being, but I really don’t like SoundJuicer or anything, so I just run MusicBrainz Picard (package name: picard) on any folder of MP3s ripped from a disc to fix up the tags after ripping.

lame

The best mp3 codec to rip audio with. Use high quality VBR and the results are superb.

soundconverter

Easily convert audio files between formats.

pautils

PulseAudio utils, stream choosers, volume controls etc.

gpodder

Really good podcast client for gnome: subscribe to Linux Outlaws, This Week in Tech (TWiT) etc..

mplayer

Useful to get data to transcode .avi files to to DVDs (see this article if you’re interested).

A system tray icon for accessing compiz related settings and switching/reloading window managers. Best to set it to autorun on boot through System | Preferences | Startup Applications.

python-sexy

Library used by compiz to extend Gtk widget functionality.

gnome-colors

Additional icon themes – more choice is never a bad thing.

screenlets

Widget system for the gnome desktop. Grab some more screenlets from here if you like (the NVidia and FuriousMoon screenlets are useful/pretty respectively).

gimp

The GNU Image Manipulation Program, which isn’t included on the CD for the first time this release..

gimp-plugin-registry

Useful GIMP plugins, including “Save for Web…”, which is a daily-use tool for me…

cheese

Mess around w/ your webcam

camera-monitor

A panel applet which indicates when your webcam is switched on – so you’ll know if anybody else is messing around with your webcam!

blender

3D modelling package. I WILL learn how to use it this year, fo’ real!

povray

An old-school but excellent ray-tracer (creates images by back-tracing light rays from geometry), always good for a mess around. Get povray-examples and povray-docs while you’re at it.

cbrpager

A simple comic viewer for gnome

Administration / Files / Network

gadmin

A suit of GUIs to administrate things on your system (proftpd, apache, squid etc.)

proftpd

FTP server, requires a fair bit of configuration, but I’ve written pretty solid article on it here if you’re interested in hosting files on your own FTP server..

filezilla

An excellent FTP client to connect to FTP servers.

sabnzbdplus

A really good news group client – download stuff with far more peace of mind than using torrents. I’ve also written a guide for downloading stuff from newsgroups which you can find here if you’re that way inclined…

pypar2

Tool to repair broken/corrupted/incomplete rar files using PAR(ity) files. Use with sabnazbdplus as and when needed.

A legacy PC emulator – run old DOS software if you need to. I use it to fire up ScreamTracker 3 occasionally.

There’s a few other things you might want which aren’t in the standard Ubuntu respositories, too. Such as:

Not Available In The Ubuntu Repositories

Application Name

Why Install It?

Get From

webmin

Tool to administrate your system through a web interface either locally or over the web. Either restrict administration to be from the local network or make your passwords strong if you allow external access from teh Internets!

Nice image organiser/basic photo adjustment tool. Can categorise images by faces (poorly) too! [I had to install this from the commandline for some reason. Used: sudo gdebi ./picassa-3_0-blah-blah.deb to install]

Newer versions not available for Linux =(

virtualbox

Virtualisation software so you can run stuff like XP/Vista/Windows 7 from virtually from within Linux. Get this from Sun rather than the OSE (Open Source Edition) in the repositories if you want USB support.

Simple and yet powerful DVD ripper/video transcoder with a decent GUI. If you’re ripping a DVD just point it at the top level directory of the DVD and hit Open for it to pull in all the .vob files for you.

Update: Don’t bother installing version 0.9.4 on Ubuntu 10.04 – it’s broken. Build yourself a working version from the freshest source using this guide!