If the search terms that have been bringing visitors to my first review of Ubuntu 11.04 are to be used as a measure of what people think of Natty then I would be understating when I say that not many Ubuntu users are happy with Ubuntu’s new Unity Shell. Let me just say that a lot of people are doing a lot of cussing about Natty.
Who can blame them. The taskbar is unmovable, the application menu is a mess and individual window menus are non existent. It just isn’t an interface that people can… interface with. 11.04 is, well, natty.
There are solutions
The least obvious and easiest option is to change the default session to Ubuntu Classic.
Changing from Unity to Classic is as simple as booting your computer, selecting your login name, moving the cursor to the bottom of the screen and selecting Ubuntu Classic from the session manager drop down menu before typing in your user password and clicking “Login”.
Using Ubuntu Classic will change the way the taskbar functions and it will remove the Applications panel that blights the edge of the screen but you will still have one unified menu for all windows that dynamically changes according to whichever window is currently active. Once done, Ubuntu Classic will remain your default desktop shell until you change it to another one.
Every other option of changing from Unity to another shell involves software installation.
A Drastic Measure: A Clean Slate
The drastic method is to wipe Ubuntu from your hard drive then download and install another Ubuntu distribution that uses a different shell such as
The less drastic measure is to keep Ubuntu Unity installed and to install additional desktop environments with different shells alongside it.
Many applications require components from different desktop environments to enable them to run so it makes sense to keep Ubuntu (for GDE and GNOME) installed alongside other environments.
The question is, what’s the easiest way to install additional desktop environments?
Linux software tends to be installed as packages. Metapackages reference a list of software packages as dependencies. Installing a metapackage causes a package manager such as Synaptic or Aptitude to install the list of software “dependencies” referenced within the metapackage. For example, installing the metapackage labeled “kubuntu-desktop” does not install a particular package called “kubuntu-desktop” but a series of packages that a working Kubuntu Desktop depends on to function.
The Ubuntu repository stores several desktop environment, desktop shell and window manager metapackages.
You can find those metapackages by opening your preferred package manager and searching for the environment you would like to install, such as
- xubuntu-desktop, or
However, not all those metapackages install a full environment.
The second metapackage option is to install the metapackage installer called Tasksel with the terminal instruction
sudo apt-get install tasksel
Tasksel is run with the terminal command
Tasksel can install several environments with greater success than the metapackages listed in the Ubuntu repositories. I do not know why Tasksel does it better; it probably just installs a greater number of dependent packages. I feel that it works better because I have previously used Ubuntu metapackages then had to go through Synaptic to select multiple additional software packages to get a stable desktop environment.
Though Tasksel metapackages are more complete than those available through the official Ubuntu repositories, it is inadvisable to use Tasksel to remove those metapackages. Use Synaptic for that.
There is a downside to using metapackages
A metapackage’s purpose is to facilitate the installation of a series of other software packages. It is a means to an end. Consequently, uninstalling a metapackage will not necessarily uninstall the dependencies associated with it.
The cases for which metapackages might be removed include,
- to enable another software package it conflicts with to be installed
- to enable the removal of a package it installed as a dependency, or
- any other reason such as you just want to remove it
Metapackages are sometimes updated to include new dependencies or to remove old ones that are no longer required. Unfortunately, the removal of a metapackage will prevent the metapackage from being automatically updated by your package manager hence those metapackage updates won’t filter through to your system. The installed dependencies will still update so it is safe to remove a metapackage but be careful when deciding to do so.
More information about metapackages is available here.
Installing Packages Individually
You can, of course, use the list of dependencies mentioned in a metapackage to create a single terminal instruction to manually install only the components required of your chosen desktop environment and shell.
Manual selection negates the need for a metapackage and provides greater choice over which software is downloaded and installed on your system. You will miss out on the update benefits of a metapackage i.e installed components will still upgrade automatically but you will need to manually install any new software additions to your chosen environment as and when they are released.
But which packages to install?
Finding the packages installed by a metapackage is easy. Browse your hard drive to
then open the file called “available” in a text editor. You do not need to edit it. I recommend you do not try to edit it unless you are aware of the consequences. For our purpose, view it only.
Another way to get at the file is to type the following command into a terminal:
Feel free to replace “gedit” with the title of your preferred text editor.
If you do open “available” for editing, prepend the instruction with “gksu” not “sudo”. “gksu” is used for opening graphical programs as a super user whereas “sudo” is used for command line (terminal) instructions that require super user privileges for them to be enacted. Using sudo where gksu (or kdesudo) should be used usually causes a lot of persistent file permission errors within Ubuntu.
The “available” file lists all software packages that are available for download from the repositories registered with your system (repositories are often listed in sources.list).
Search the “available” file for the metapackage that installs the desktop environment you wish to install. Here’s the listing for “kubuntu-desktop”
Maintainer: Kubuntu Developers <email@example.com>
Depends: alsa-base, alsa-utils, anacron, ark, bc, ca-certificates, cups, cups-bsd, cups-client, dc, dolphin, foomatic-db-compressed-ppds, foomatic-filters, genisoimage, ghostscript-x, inputattach, kde-window-manager, kde-zeroconf, kdebase-workspace-bin, kdemultimedia-kio-plugins, kdepasswd, kdm, khelpcenter4, klipper, kmix, konsole, ksnapshot, ksysguard, kubuntu-netbook-default-settings, language-selector-kde, lftp, libpam-ck-connector, libsasl2-modules, libxp6, nvidia-common, okular, openprinting-ppds, phonon-backend-gstreamer, plasma-desktop, plasma-netbook, pnm2ppa, rfkill, smbclient, software-properties-kde, systemsettings, ttf-dejavu-core, ttf-freefont, ubuntu-extras-keyring, unzip, wireless-tools, wpasupplicant, x-ttcidfont-conf, xdg-user-dirs, xkb-data, xorg, zip
Recommends: acpi-support, akregator, amarok, appmenu-gtk, apport-kde, apturl-kde, avahi-autoipd, avahi-daemon, bluedevil, bluez, bluez-alsa, bluez-cups, brltty, cdrdao, cryptsetup, dragonplayer, foo2zjs, gdebi-kde, gnupg-agent, gpgsm, gtk2-engines-oxygen, gwenview, hplip, ibus-qt4, im-switch, jockey-kde, k3b, kaddressbook, kamera, kate, kcalc, kde-config-gtk, kde-config-touchpad, kdegraphics-strigi-plugins, kdenetwork-filesharing, kdepim-kresources, kdepim-runtime, kdepim-strigi-plugins, kdepim-wizards, kdesudo, kerneloops-daemon, kmag, kmail, kmousetool, knotes, kontact, kopete, korganizer, kpackagekit, kpat, kppp, krdc, krfb, ksystemlog, ktimetracker, ktorrent, kubuntu-default-settings, kubuntu-docs, kubuntu-firefox-installer, kubuntu-konqueror-shortcuts, kubuntu-notification-helper, kvkbd, kwalletmanager, laptop-detect, libnss-mdns, libqca2-plugin-ossl, libreoffice-calc, libreoffice-impress, libreoffice-kde, libreoffice-style-oxygen, libreoffice-writer, min12xxw, mobile-broadband-provider-info, nepomukcontroller, network-manager-pptp-kde, okular-extra-backends, oxygen-cursor-theme, oxygen-icon-theme, oxygen-icon-theme-complete, partitionmanager, pcmciautils, pinentry-qt4, plasma-widget-facebook, plasma-widget-folderview, plasma-widget-kimpanel, plasma-widget-menubar, plasma-widget-message-indicator, plasma-widget-networkmanagement, plasma-widget-quickaccess, plasma-widgets-addons, plymouth-theme-kubuntu-logo, plymouth-theme-kubuntu-text, policykit-desktop-privileges, printer-applet, pulseaudio, pulseaudio-module-bluetooth, pxljr, quassel, rdesktop, rekonq, splix, system-config-printer-kde, ttf-indic-fonts-core, ttf-kacst-one, ttf-khmeros-core, ttf-lao, ttf-liberation, ttf-punjabi-fonts, ttf-takao-pgothic, ttf-thai-tlwg, ttf-ubuntu-font-family, ttf-unfonts-core, ttf-wqy-microhei, udisks, upower, usb-creator-kde, userconfig, xcursor-themes, xdg-utils
Description: Kubuntu Plasma Desktop/Netbook system
This package depends on all of the packages in the Kubuntu desktop system.
Installing this package will include the default Kubuntu Plasma Desktop or
It is safe to remove this package if some of the desktop system packages are
Do you see where it says “Depends” and “Recommends”? They are toward the bottom and between “Version: 1.222” and “Size: 3758”.
All the items in the comma separated lists written next to “Depends:” and “Recommends:” are installed by the kubuntu-desktop metapackage. You can install them without the metapackage by typing into a terminal
sudo apt-get install
followed by the list of packages you wish to install. Do not include the commas. Only include the package names separated with a space between each one. For example
sudo apt-get install alsa-base alsa-utils anacron ark bc ca-certificates cups cups-bsd
If you were to copy and paste the details for the kubuntu-desktop metapackage into Gedit or Kate then you would be able to “find and replace” all comas very quickly.
Adding Update Repositories and Backports
Most Ubuntu distributions have their own Personal Package Archives at Launchpad. These particular PPA repositories are where experimental and beta package releases are stored. Using them might temporarily break your operating system or a component of it.
- Kubuntu Repository
PHP1sudo add-apt-repository ppa:kubuntu-ppa/ppa
PHP1sudo add-apt-repository ppa:kubuntu-ppa/backports
There are more.
- Lubuntu Repository
PHP1sudo add-apt-repository ppa:lubuntu-desktop/ppa
- Xubuntu Repository
PHP1sudo add-apt-repository ppa:xubuntu-team/ppa
PHP1sudo add-apt-repository ppa:gnome3-team/gnome3
Update your package list and system after adding any of the above repositories with:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
Note that adding GNOME3 will remove Unity. It cannot be undone.
Reconfiguring GDM, KDM or LXDM
After installing a new desktop environment you might discover your system takes a while longer to load or that programs take a few moments longer to open. I find the GDM desktop manager is a little quicker than KDM. For that reason, I find it beneficial to reconfigure my display manager to use GDM after I have installed a desktop environment metapackage.
Run the following terminal command to reconfigure (and select) your preferred desktop manager:
sudo dpkg-reconfigure gdm
Reconfiguring GDM, KDM or LXDM can assist with login issues. If you have more than one desktop manager installed and your default manager fails to load you, can drop to a command line and reconfigure Ubuntu to use a different desktop manager.
There’s no harm in trying each of the desktop managers available to your system at least once.
You may find the following resources useful. The first two are from JournalXtra and the bottom two lead to Wikipedia articles.