If you installed KDE in ubuntu (GNOME based), you may have noticed that when you log back into GNOME, you keep the KDE cursor theme. To fix this, use update-alternatives like so:
0025|z@zentury ~$ sudo update-alternatives --config x-cursor-theme
There are 7 choices for the alternative x-cursor-theme (providing /usr/share/icons/default/index.theme).
Selection Path Priority Status
------------------------------------------------------------
* 0 /etc/X11/cursors/oxy-white.theme 50 auto mode
1 /etc/X11/cursors/core.theme 30 manual mode
2 /etc/X11/cursors/handhelds.theme 20 manual mode
3 /etc/X11/cursors/oxy-white.theme 50 manual mode
4 /etc/X11/cursors/redglass.theme 20 manual mode
5 /etc/X11/cursors/whiteglass.theme 20 manual mode
6 /usr/share/icons/DMZ-Black/cursor.theme 30 manual mode
7 /usr/share/icons/DMZ-White/cursor.theme 50 manual mode
Press enter to keep the current choice[*], or type selection number:
press “7″ for the default
This was a very annoying bug for me to deal with and it almost caused me to switch to kde 4 earlier than planned. Luckily I was able to pull up a fix which is simple to replicate but was a pain in the arse to solve.
To fix this, go into CompizConfig Settings Manager >> Workarounds >> uncheck “Legacy Fullscreen Support” as the red circle in the screenshot below indicates.

If you’re coming from Windows, or like me, find yourself living in a live CD while you figure out which step went wrong; you’ll be interested in the essential media codecs, flash, java, Microsoft fonts, etc.
I thought I’d share the way I did this as quickly as possible in in Ubuntu 10.04 using the command line.
Open up terminal, using ctrl+alt+t (Which I’m very happy about as this has been my default since 8.04). Alternativelty from the main menu -> Applications > Accessories > Terminal
Make a backup in case you’re scared, then remove the comments from repositories you need to unlock to access the restricted (proprietary) packages.
ubuntu@ubuntu:~$ sudo cp /etc/apt/sources.list .
ubuntu@ubuntu:~$ sudo sed -i 's/^# deb/deb/' /etc/apt/sources.list
We do this be matching the first 2 characters with ‘# ‘ and replacing them with ” (nothing). See the diff below (> indicate original lines, < are changed).
ubuntu@ubuntu:~$ diff sources.list /etc/apt/sources.list
18,23c18,23
< # deb http://archive.ubuntu.com/ubuntu lucid universe
< # deb-src http://archive.ubuntu.com/ubuntu lucid universe
< # deb http://archive.ubuntu.com/ubuntu lucid-updates universe
< # deb-src http://archive.ubuntu.com/ubuntu lucid-updates universe
< # deb http://security.ubuntu.com/ubuntu lucid-security universe
< # deb-src http://security.ubuntu.com/ubuntu lucid-security universe
---
> deb http://archive.ubuntu.com/ubuntu lucid universe
> deb-src http://archive.ubuntu.com/ubuntu lucid universe
> deb http://archive.ubuntu.com/ubuntu lucid-updates universe
> deb-src http://archive.ubuntu.com/ubuntu lucid-updates universe
> deb http://security.ubuntu.com/ubuntu lucid-security universe
> deb-src http://security.ubuntu.com/ubuntu lucid-security universe
30,35c30,35
< # deb http://archive.ubuntu.com/ubuntu lucid multiverse
< # deb-src http://archive.ubuntu.com/ubuntu lucid multiverse
< # deb http://archive.ubuntu.com/ubuntu lucid-updates multiverse
< # deb-src http://archive.ubuntu.com/ubuntu lucid-updates multiverse
< # deb http://security.ubuntu.com/ubuntu lucid-security multiverse
< # deb-src http://security.ubuntu.com/ubuntu lucid-security multiverse
---
> deb http://archive.ubuntu.com/ubuntu lucid multiverse
> deb-src http://archive.ubuntu.com/ubuntu lucid multiverse
> deb http://archive.ubuntu.com/ubuntu lucid-updates multiverse
> deb-src http://archive.ubuntu.com/ubuntu lucid-updates multiverse
> deb http://security.ubuntu.com/ubuntu lucid-security multiverse
> deb-src http://security.ubuntu.com/ubuntu lucid-security multiverse
>
<pre lang="bash">
Now that we uncommented these lines, they will be read next time we update, so lets go ahead and do that now. Once that is done, we can install the extras.
ubuntu@ubuntu:~$ sudo apt-get update
ubuntu@ubuntu:~$ sudo apt-get install ubuntu-restricted-extras
Rock and roll.
I should have written about this months ago. Readers have replied to my previous post about nautilus svn, which I claimed to be the first that didn’t suck. This is the evolution of it, RabbitVCS (Version Control System), which aims to use the same intuitive, integrated gui for other version control systems, such as git (check the rabbitvcs roadmap for details on expected support for different versioning system.

credit to rabbitvcs for the screenshot
Intro
Thanks to a tip I picked up at Tombuntu about nautilus, after following up on a trick to add files to mocp through nautilus scripts trackback link from Hilltop Yodler (great article), when doing a google search for GiS for nautilus-actions (apt-get install nautilus-actions). I learned about 3 kick ass additions to the nautilus menu. I realized Fedora Linux and Linux Mint had some of these in their context menus but didn’t make the connection to ubuntu until now.
On with the Show
sudo apt-get install nautilus-open-terminal nautilus-image-converter nautilus-gksu
for some kick ass options in the context (right click) menu of nautilus (your default file manager in ubuntu). For more information, check out the tombuntu article I linked above.
to restart nautilus and have the new packages in your context menu
More
If you’re interested in this, you’ll probably also like my article about nautilus-actions.
Intro
Previously, I had written about enqueuing files with nautilus scripts. Since then, I have learned (and forgotten about) nautilus-actions. Which is a similar way to attack the issue but it using a more intuitive and decoration approach, as well as having the ability to be on the first level of the context menu hierarchy.
sudo apt-get install nautilus-actions
nautilus-actions-config
The approach to getting the example of enqueuing files to mocp accomplished is a bit different using this approach as you don’t need to go through the script as you did before (though you can if you want, it’s an unnecessary step). Here, as my screenshot shows, I directly call mocp from /usr/bin with the -a flag and use the $M variable the legend provided me with to pass a list of files and their full paths to mocp.

You’ll also want to change the conditions on the Conditions tab. I set it to allow multiple files from both folders and files. The default is to allow only a single file.

More
This article was inspired by Making Life Easier With Scripts For Nautilus. If you’re interested in this article, you’ll probably also like my article about nautilus packages you wish were installed by default in ubuntu.
If you’re using ubuntu and having trouble with nvidia-settings saving to the /etc/X11/xorg.conf file, you may find the following tip helpful in relieving that annoyance.
Looking for something interesting when I login to one of my servers, I decided to whip up the following script I appended to my ~/.bashrc file.
close nvidia-settings
in terminal:
sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.backup
sudo gedit /etc/X11/xorg.conf
paste the following:
Section "Device"
Identifier "Configured Video Device"
Driver "nvidia"
EndSection
save and close.
back to terminal:
and save the file.
Looking for something interesting when I login to one of my servers, I decided to whip up the following script I appended to my ~/.bashrc file.
# fortune and cowsay are needed for the snippet to work, I had to install these first
sudo apt-get install fortune cowsay
COWDIR=/usr/share/cowsay/cows/; COWNUM=$(($RANDOM%$(ls $COWDIR | wc -l))); COWFILE=$(ls $COWDIR | sed -n ''$COWNUM'p'); fortune | cowsay -f $COWFILE
UPDATE:
Suggested by MrBougo, a shorter but perhaps more process intensive method:
fortune | cowsay -f $(ls /usr/share/cowsay/cows/ | shuf | head -n1)

random cowsay fortune
Breaking down the script, the first 3 parts create variables and the last command executes the cowsay and quote.
# defines the directory of the cow files
COWDIR=/usr/share/cowsay/cows/;
# Get a random number limited to the number of files in the directory, making clever use of % (mod) and adding 1 to make sure it doesn't return 0
COWNUM=$(($RANDOM%$(ls $COWDIR | wc -l))+1);
# list the contents of the cow dir again, pipe to sed and use the number as a random line to get the name of a file
COWFILE=$(ls $COWDIR | sed -n ''$COWNUM'p');
# use fortune to get a quote, pipe to cowsay and use the file as defined above
fortune | cowsay -f $COWFILE;
Using moc player can prove to be both beneficial and challenging. I’ve found myself going back to exaile for a few hours on random days for the simplicity in file management via a GUI. Since I prefer to use a single media player and mocp is light weight and helpful in so many other ways to me… I knew I needed a solution. It dawned on me just today how simple that solution could be with nautilus scripts.
#!/bin/bash
# Enqueue with mocp
# by Tyler "-z-" Mulligan
#
# This is a nautilus script. When placed in ~/.gnome2/nautilus-scripts
# and chmod +x you will have the ability to right click >> enqueue files
# or directories in mocp.
#
mocp -a "$@"
Some other tips… [ and ] silently skip back and forward respectively at a rate of 5sec per second held… this beats the left and arrows which work interactively at 1sec per sec.
? and h bring up the help, don’t forget this. Use this, learn the commands that work for you and happy listening.
Thanks to MrBougo again for helping me simplify the script further… I was originally using a for loop which is unnecessary as the quotes will help the variable expansion and mocp -a can accept multiple files/folders.
I’ve been a little obsessed with improving the speed of web pages via minified javascript and css files. YUI’s team not only agrees with this, they recommend gzipping your minified js and css files. For a while I’ve been calling YUI Compressor inside my push to production scripts to do the deed. However, with this new mention of gzipping, I think might be exploring other options such as the method mentioned on the page which originally linked me to that awesome YUI writeup; minifying and gzipping javascript and css on the fly using php.