I've recently switched to using Ubuntu full-time as my primary operating system having previously used Macs for the last 4+ years. Moving over to ubuntu has been easy enough, I bought a lenovo R61 which has extremely good compatibility with Ubuntu out of the box. I've had very few issues except for an a smaill problem with the brightness control and an intermittant problem with X using 100% CPU when screensavers are activated. Though I've found simple enough workarounds for both issues.
I'm thinking about getting a US keyboard as this will be closer to the OSX keyboard thus making it less annoying for me to having to think where double-quotes and tilde are, as for now at least I'm probably going to continue using OSX at work until I can get to a good point to make it into the world's most expensive ubuntu laptop.
SoftwareHere's a few of the highlights of the software I'm using which has made the switch easier for me.
Gnome-doQuicksilver was something I knew I'd miss but Gnome-do seems to fill the hole quite nicely. It supports enough of the same featureset for me to be not feeling like I'm missing anything. To install it use the PPA (Personal Package Archive) so you can get the most up to date version.
Drop-down terminalYakuake has filled the slot performed by Visor on OSX. Although it's based on Konsole it took the edge over Guake as it's slightly more configurable.
VirtualizationVirtualbox OSE - is carrying out Virtualization duties - though I wish that it was easier to communicate with headless VMs I'm used to being able to SSH into VMs straight away having used VMware Fusion on OSX. Hopefully this is something that will be addressed in future versions or something I can resolve as I get more familiar with it's networking configurations. The version of VirtualBox OSE in the upcoming Ubuntu release (Jaunty) is newer so I looking forward to trying that out. Update: I've fixed the issues with networking using a virtual interface to access VirtualBox guests.
FontsI'm using font matrix to manage my font collection which seems just as much of a font management app as I need.
Aside from managing fonts I found that installing the ttf-liberation package (free alternatives to well known Microsoft fonts) made everything look like the proverbial "kick in the nuts" so I've manually played with /etc/fonts/conf.d/30-metric-aliases.conf and added "Freesans" above "Liberation Sans" for use in place of Arial. This has made all web apps like gmail etc much nicer to use as FreeSans is just gorgeous to look at.
<!-- Microsoft --> <alias binding="same"> <family>Arial</family> <accept> <family>Freesans</family> <family>Liberation Sans</family> <family>Albany</family> <!-- <family>Albany AMT</family> --> </accept> </alias>
In a similar fashion Georgia is horrific on Linux for some reason, whereas FreeSerif actually looks really good. At some point I'd love to do an up to date review of what fonts are best equivalents on various linux distros. One thing that's clear with all the substitutions going on in the font configs it's hard to really know what actual font you are really seeing rendered in a web page. I'd like to find a way to introspect that and really know what's happening for linux.
Code-editingI'm trying to get better at using vim as I work on other machines quite a lot via ssh; so improving my working knowledge of vim is definitely a good move for me. I'm also playing with gedit and it's numerous plugins. Sure it's not textmate but I've been able to emulate enough aspects of textmate that I like to make it useful. I've switched indentation to use alt+[ and unindent alt+] but doing that meant I had to patch the gemini plugin so that it didn't try and match a square bracket when I was using the alt modifier (I'll post the source to that if it's of any use to anyone). That was easy enough though thanks plugins being python and I could work out what I needed to do purely using introspection and some educated guesses. That's one thing I really like about gedit. All that's needed is some improvements to make snippets and commands scoped to specific languages together in one interface. Other things like code folding are about to land in the gtksourceview component too so over time it will be interesting to see where it goes.
Lastly I miss the bookmarking ability that textmate has. In textmate clicking the gutter containing the line-number is all you need to create a bookmark. It's nicely done and a preferable approach the way the gedit bookmark plugin works. This would presumbably something that would be implemented in the gtksourceview rather than as a plugin if the interface was to be identical.
BackupFor backup I'm currently trying Bubakup which can create backups of a live system which are bootable. Something of a simplistic SuperDuper for Linux. It's very easy to use - and I've not checked yet but I'm hoping that it's something I'll be able to set-up on cron.
Graphics AppsI'm adjusting to learning GIMP as a long time photoshop user. I'm pretty sure in time I'll be able to find out how to do everything I could do on Photoshop with it, it seems very powerful. For vector I'll be using Inkscape which again is pretty competent and I've already been using it on the mac to edit some of the Project Fondue mountain headers.
So what's missing?Application-wise - I'd like to find an equivalent to two apps. One is Omnifocus a Gtd application on OSX. The other is Together which is a general file/note-taking app which had the great feature of allowing you to add web addresses to it from which it created webarchives for viewing offline. These two apps are the only two things I've not got covered yet. I'm almost considering getting into Python GUI programming if I thought it wouldn't suck up too much of my time. If you've got any suggestions for apps that would fill this role then please do let me know. With the note-taking thing I'd love to have something along the lines of a personal wiki which can handle ReStructuredText and can create archives of web-pages - though that may just be something I'll build as a web app. Key thing here would be either you run it locally or it must have offline access.
So far I'm not really missing that much - clearly OSX has a certain feel of slickness to it but in the last couple of years Ubuntu has become much more refined and easier to use. More an more works without intervention - I'd long held an opinion that using linux was like owning a vintage beetle -- It's great but you have to spend all weekend tinkering with it to keep it on the road. For me using windows was like that, as I found more and more time was sucked into keeping my PC running. When I switched to OSX I found my productivity went up. So far with Linux it's too early to tell whether I'm as productive though I'm fairly confident that I'm finding enough software that performs well and is intuitive to use that I should be every bit as "at home" on Linux as I was on the mac. Plus with the added bonus that I've got a much better set of linux tools (rather than bsd) under the hood and not to mention that running an open source operating system is a much better prospect long term.
By all means any thoughts and recommendations towards must-have software etc - please drop a comment.