Revision as of 17:20, 9 February 2013 by Perspectoff (Talk | contribs)
(diff) ← Older revision | Current revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Kubuntu 12.04 LTS (Precise Pangolin)


  • On April 26, 2012, Kubuntu 12.04 LTS was released.
  • It is codenamed Precise Pangolin and is the successor to Oneiric Ocelot 11.10 (Oneiric+1).
  • Precise Pangolin is an LTS (Long Term Support) release. It will be supported with security updates for both the desktop and server versions until April 2017.


General Notes

General Notes

  • This is the original Kubuntuguide. You are free to copy this guide but not to sell it or any derivative of it. This Kubuntu help guide is neither sold nor distributed in any other medium. Beware of copies that are for sale or are similarly named; they are neither endorsed nor sanctioned by this guide. Kubuntuguide is not associated with Canonical Ltd. nor with any commercial enterprise.
  • Kubuntu allows a user to accomplish tasks from either a menu-driven Graphical User Interface (GUI) or from a text-based command-line interface (CLI). In Kubuntu, the command-line-interface terminal is called Konsole, which is started: K menu -> System -> Konsole Terminal.
In this guide, text inside the grey dotted box like this should be put into a Konsole terminal.
  • Many changes to the operating system can only be done by a User with Administrative privileges. "kdesudo" or "sudo" elevates a User's privileges to the Administrator level temporarily (i.e. when installing programs or making changes to the system). Example:
sudo bash
  • "kdesudo" should be used instead of "sudo" when opening a Graphical Application (such as the graphical text-editor application kate), which can be done from the command-line terminal, through the "Run Command" dialog box, or as part of the command for starting an application from a menu item. Historically "kdesudo" preserved permissions within the Xwindows environment better (and "sudo" sometimes made undesirable permission changes). While this behaviour does not seem to occur very often any longer, "kdesudo" has always been regarded as safer to use. ("kdesu" was also previously available as well but has now been phased out.) Example:
kdesudo kate /etc/apt/sources.list
  • Many file management tasks can be accomplished with root Administrative privileges by starting the Dolphin file manager in a similar fashion. (This can be used as a menu item.)
kdesudo dolphin
  • "man" command can be used to find help manual for a specific command. E.g. "man sudo" will display the manual page for the "sudo" command. Example:
man sudo
  • While "apt-get" is a fast way of installing programs/packages, you can also use the Muon Package Manager (or even the Synaptic Package Manager), a GUI method for installing programs/packages. Most (but not all) programs/packages available with apt-get install will also be available from Muon Package Manager (or Synaptic Package Manager). In this guide, when you see
sudo apt-get install package
you can search for package in Muon Package Manger (or Synaptic) and install it that way.
  • Many instructions use the text editor "nano" (which is universally available in Linux). However, it is often easier to use the text editor "kate" in Kubuntu instead.
  • "K" or "K menu" means the bottom-left (or upper-left) button, akin to the Start button in Microsoft Windows®.
  • If you are using the 64-bit version, replace any "i386" with "amd64".

Other versions

How to determine which version of Kubuntu you're using

In Konsole type:

lsb_release -a

How to find out the version of your Kernel

uname -a

Newer Versions of Kubuntu

  • Kubuntu has a six month release cycle, with releases in April and October.

Older Versions of Kubuntu

Other Resources

Kubuntu Resources

  • Kubuntu Forums has a large community for online solutions and help specific to Kubuntu.
  • Ubuntu Forums has a large community for online solutions (for both Ubuntu and Kubuntu).

KDE Project

Kubuntu uses the KDE user interface.

Kubuntu Screenshots and Screencasts

New Applications Resources

Other *buntu guides and help manuals

  • Ubuntuguide -- Ubuntu uses the Unity (or, alternatively, the Gnome) desktop.
  • Lubuntu -- Lubuntu can run with as little as 256 Mb RAM. It is better for older machines with limited resources.
  • Edubuntu -- Edubuntu is a collection of software bundles optimized for use in educational environments. LTSP (thin client terminal server support) and many networking tools are bundled. A version for use with KDE (Kubuntu) is available.
  • SkoleLinux / DebianEdu -- a collection of (open-source) educational tools for Debian/Ubuntu Linux
  • Ubuntu Doctors Guild -- a collection of tips for using (K)Ubuntu Linux in health care environments
  • official Ubuntu Server Guide -- a good starting reference for server packages

Installing Kubuntu

Warning: During installation from the LiveCD, there is an option to install the boot loader to /dev/sda, which really installs the Grub2 boot loader to both the MBR (Master Boot Record) as well as the partition into which (K)Ubuntu will be installed. Pay careful attention during this step if your system uses a boot partition, uses multiple OS (more than 2), or chainloads bootloaders. For systems with such a boot partition, it is best NOT to overwrite the MBR. In this case, the boot loader should only be installed to the partition in which the (K)Ubuntu OS itself will be installed. (For example, if (K)Ubuntu will be installed to /dev/sda6, then only install the boot loader to /dev/sda6, not to /dev/sda. The text based installer used in the Server and Alternate versions asks whether to install the bootloader into the MBR. Answer "no" to this question, and then proceed to install the bootloader to /dev/sda6 only.)

Hardware requirements

Kubuntu Precise Pangolin runs with as little as 384 Mb RAM. (The GUI installer requires a minimum of 256 Mb RAM, while the alternative text-based installer can run using only 192 Mb RAM.)

The installation takes between 3-4 Gb hard drive space, and 8-10 Gb will be needed to run comfortably. (However, at least 25-30 Gb will likely be needed for routine usage.)

Netbooks will run Kubuntu Precise Pangolin, which has been optimised for speed, efficiency, and quick bootup. An interface optimised for Netbooks is available as an option.

If you have an older computer with less memory than this, consider Lubuntu (if 160 Mb RAM or greater), PuppyLinux (if 256 Mb or greater), or DSL (if minimal RAM, limited hard drive space, running from a USBdrive, or running from within another OS).

Fresh Installation

Kubuntu Precise Pangolin contains the KDE 4 desktop by default. The desktop has been improved and many bugs fixed since earlier versions of KDE 4. In addition, the incorporated Linux kernel is more efficient and more hardware is recognized by default. Especially on a smaller system with limited hard drive space, a new installation is recommended to prevent software bloat that can accumulate when updating older versions.

See this guide for burning the ISO image to a CD ("LiveCD").
Use the LiveCD for installation.

The Alternate CD version also allows the use of the same fast text-based installer used in the Server version (requiring less RAM), and there are more installation options than on the Desktop CD ("Regular Download").

  • If your computer, device, or hardware uses UEFI instead of a BIOS bootup system, then see this page.
  • If your computer, device, or hardware uses Coreboot instead of a BIOS bootup system, then see this page.

Kubuntu Netbook Edition

The KDE Plasma Netbook desktop is optimised for netbooks with screens less than 10". It is now installed as an option from the regular Kubuntu LiveCD, which can be installed as a USB flashdrive LiveCD.

Trinity Desktop (KDE 3 Remix)

Kubuntu Hardy Heron LTS used a simpler but well-respected stable desktop, KDE 3.5. This desktop environment has been renamed the Trinity Desktop Environment and is available for all versions of Kubuntu. Installation is accomplished using the Trinity PPA repositories.

Kubuntu Active

Kubuntu Active is a modification of the KDE desktop for use on tablets (and other mobile devices with touchscreens), based on the KDE Plasma Active tablet interface. It is in rapid development and not yet mature, but a preview version is available for testing on i386 devices (not ARMv7 devices yet). The preview version LiveCD can be booted as a demo from a USB flashdrive, for example. See this May 2012 YouTube demo video for an example of the Kubuntu Active interface.

  • Daily builds of Kubuntu-active are available for download here.
  • A package installation is also available from the Ubuntu repositories:
sudo apt-get install kubuntu-active

Dual-Booting Windows and Kubuntu

A user may experience problems dual-booting (K)Ubuntu and Windows. In general, a Windows OS should be installed first, because its bootloader is very particular. A default Windows installation usually occupies the entire hard drive, so the main Windows partition needs to be shrunk, creating free space for the (K)Ubuntu partitions. (You should clean up unnecessary files and defragment the drive before resizing.) See changing the Windows partition size.

After shrinking a Windows partition, you should reboot once into Windows prior to installing (K)Ubuntu or further manipulating the partitions. This allows the Windows system to automatically rescan the newly-resized partition (using chkdsk in XP or other utilities in more recent versions of Windows) and write changes to its own bootup files. (If you forget to do this, you may later have to repair the Windows partition bootup files manually using the Windows Recovery Console.)

Newer installations of Windows use two primary partitions (a small Windows boot partition and a large Windows OS partition). A (K)Ubuntu Linux installation also requires two partitions -- a linux-swap partition and the OS partition. The Linux partitions can either be two primary partitions or can be two logical partitions within an extended partition. Some computer retailers use all four partitions on a hard drive. Unless there are two free partitions available (either primary or logical) in which to install (K)Ubuntu, however, it will appear as if there is no available free space. If only one partition on a hard drive can be made available, it must be used as an extended partition (in which multiple logical partitions can then be created). Partition management can be done using the using the GParted utility or KDE Partition Manager.

If there are only two existing primary partitions on a hard drive (and plenty of free space on it) then there will be no problem installing (K)Ubuntu as the second operating system and it is done automatically from the (K)Ubuntu LiveCD. Allow the (K)Ubuntu LiveCD to install to "largest available free space." Alternatively, if there is an extended partition with plenty of free space within it, the (K)Ubuntu LiveCD will install to this "largest available free space" as well.

The main Windows partition should be at least 20 Gb (recommended 30 Gb for Vista/Windows 7), and a (K)Ubuntu partition at least 10 Gb (recommended 20 Gb). Obviously, if you have plenty of disk space, make the partition for whichever will be your favoured operating system larger. For a recommended partitioning scheme, see this section.

Alternatives include:

  • Wubi (Windows-based Ubuntu Installer), an officially supported dual-boot installer that allows (K)Ubuntu to be run mounted in a virtual-disk within the Windows environment (which can cause a slight degradation in performance). Because the installation requires an intact functioning Windows system, it is recommended to install (K)Ubuntu in this manner for short-term evaluation purposes only. A permanent (K)Ubuntu installation should be installed in its own partition, with its own filesystem, and should not rely on Windows.
  • EasyBCD, a free Windows-based program that allows you to dual-boot Windows 7/Vista and Ubuntu (as well as other operating systems) by configuring the Windows 7/Vista bootloader.

Step-by-step examples

  • Installing Kubuntu on an HP 2000-2619WM (64-bit AMD CPU) laptop with Windows 8. See here.
  • Installing Kubuntu on an Acer Aspire One (64-bit AMD CPU) laptop with Windows 8. See here.

Adjust Windows clock

When the Linux bootloader is installed, the Windows 8 bootloader / OS no longer correctly identifies the time from the BIOS clock. (The clock appears to perpetually revert to UTC time.) To repair this problem (in Windows 8), see this solution.

  • In Windows, bring up a command-line terminal and start regedit (or from the Start menu type regedit.exe in the search box). Navigate to
Right click anywhere in the right pane and hit
New > DWORD (32-bit) Value
Name it
then double click on it and give it a value of 1.
  • Reboot into (K)Ubuntu Linux, then reboot back into Windows. The clock should now display the correct time.

Installing multiple OS on a single computer

Warning: During installation from the LiveCD, there is an option to install the boot loader to /dev/sda, which really installs the Grub2 boot loader to both the MBR (Master Boot Record) as well as the partition into which (K)Ubuntu will be installed. Pay careful attention during this step if your system uses a boot partition, uses multiple OS (more than 2), or chainloads bootloaders. For systems with such a boot partition, it is best NOT to overwrite the MBR. In this case, the boot loader should only be installed to the partition in which the (K)Ubuntu OS itself will be installed. (For example, if (K)Ubuntu will be installed to /dev/sda6, then only install the boot loader to /dev/sda6, not to /dev/sda. The text based installer used in the Server and Alternate versions asks whether to install the bootloader into the MBR. Answer "no" to this question, and then proceed to install the bootloader to /dev/sda6 only.)

If you want to install more than 2 operating systems on a single computer, check out these tips. Also see these tips regarding manipulating partitions.

Upgrading from older versions

There are several methods for upgrades from the command-line interface (Konsole) (which can be used for both the desktop and server editions of Kubuntu/Ubuntu).

  • This is the preferred method:
sudo apt-get install update-manager-core
sudo do-release-upgrade
  • You can also use the update-manager (all editions):
sudo apt-get install update-manager
sudo update-manager -d
  • You can also use:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
(Note: the first two lines simply make sure your current distribution is current before upgrading the entire distribution, and are optional.

Always backup your system. Upgrades do not generally work for me, because I often make customizations to my older installations (to make my hardware work with them) but these customizations are often not required in the newest version. When the system then attempts to migrate my customizations (during an attempted upgrade), it often crashes my new system. (Fortunately, I always back up my important files, and reinstalling them on a fresh OS installation is therefore usually accomplished relatively quickly.) Here are some of the steps I have sometimes needed to take when performing upgrades.

  • In general, upgrades must be done serially from one version to the next in order.

Upgrade from KDE 4.8 to 4.10

Kubuntu Precise Pangolin comes with KDE 4.8. However, many new packages require the capabilities of the KDE 4.10 desktop or greater.

  • Add the Kubuntu backports repository (from Launchpad), either using the Muon Package Manager:
System -> Muon Package Manager -> Settings -> Configure Software Sources -> Other Software -> Add...
-> precise main
or manually from a command-line terminal:
sudo apt-add-repository ppa:kubuntu-ppa/backports -y
sudo apt-get update

Then upgrade either the entire distribution from the backports:

sudo apt-get dist-upgrade
or just the KDE desktop without Kubuntu's customizations:
sudo apt-get install kde-standard
or the KDE desktop with Kubuntu's customizations:
sudo apt-get kde-standard kubuntu-desktop

Add Extra Repositories

Software packages and programs are freely available for download at multiple online sites with standardized structures, called repositories. There are repositories officially sanctioned and monitored by the Kubuntu/Ubuntu developer community, while other repositories are independently provided, without official sanction or supervision (and should be used with caution). Additional information is available from the Kubuntu Repository Guide.

Types of Repositories

  • There are four major package repository types in Kubuntu:
  • main - Supported and supervised by Canonical. This is the major part of the distribution.
  • restricted - Software not licensed under the GPL (or similar software license), but supported and supervised by Canonical.
  • universe - Software licensed under the GPL (or similar license) and supported by users.
  • multiverse - Software not licensed under the GPL (or similar license), but supported by users.
  • There are also these additional types of repositories:
  • Precise-updates - Updates to official packages.
  • Precise-backports - Current version software from Quantal Quetzal (Precise+1) that has been backported to Precise Pangolin.
  • Precise-proposed - Proposed updates & changes (bleeding edge stuff).

Third party repositories

Software developers often maintain their own repositories, from which software packages can be downloaded and installed directly to your computer (if you add the repository to your list). Many of these third party repositories and software packages have never been reviewed by the (K)Ubuntu/Debian community and can present a security risk to your computer. Trojans, backdoors, and other malicious software can be present at any unregulated repository. When using repositories not endorsed by the (K)ubuntu/Debian community, make sure you have utter confidence in that site before enabling the repository and installing a software package from it.

PPA repositories

A Personal Package Archive (PPA) is a special software repository used for experimental source packages still under development. Such software has not been approved by the Debian or Ubuntu developers (but may eventually become an accepted package). Use this software at your own risk just like any other third party repository software.

Documentation about how to install software from this type of repository can be found at the PPA Installing Software Guide.

In brief, to add a repository:

sudo add-apt-repository ppa:user/ppa-name

Note: If add-apt-repository is not available on your system, then install it with the package:

sudo apt-get install python-software-properties

Add Repositories using the Package Manager

This is the preferred method.

  • K menu -> System -> Muon Package Manager -> Settings -> Configure Software Sources
  • Here you can enable the repositories for Kubuntu Software and Other Software.
  • For Other Software select Add -> enter the repository's address. It will have a format similar to:
deb precise main restricted
deb-src precise main restricted
  • Example: To add the Medibuntu repository, Add:
deb precise free non-free
  • Update the package list found in the new repository:
-> Close -> Reload
  • Download the repository key to a folder.
  • Example: The Medibuntu key can be downloaded from
  • Then add the key from:
  • K menu -> System -> Muon Package Manager -> Settings -> Configure Software Sources -> Authentication -> Import Key File...
  • (Alternatively, you can manually add the key from the Konsole command line terminal. See Add Repository keys.)

Manually add repositories

  • Adding a repository (such as a Launchpad ppa repository) can be accomplished from the command-line interface:
sudo apt-add-repository ppa:user/repository

where ppa:user/repository is an example of the repository you wish to add.

  • When the repository name has a format similar to the following, enclose the repository name in quotation marks:
sudo apt-add-repository "deb precise stable"
  • To remove a repository:
sudo apt-add-repository -r ppa:user/repository
  • Refresh the packages list from the new repositories:
sudo apt-get update

Note: If add-apt-repository is not available on your system, then install it with the package:

sudo apt-get install python-software-properties

Edit the repository sources list

  • This is an optional, labor intensive method. Do this at your own risk. Modify the default Kubuntu sources.list only if you understand what you're doing. Mixing repositories can break your system. For more information see the Ubuntu Command-line Repository guide.
  • Create a backup of your current list of sources.
sudo cp -p /etc/apt/sources.list /etc/apt/sources.list_backup

Note: sudo - runs the command with root privileges. cp = copy. -p = prompt to overwrite if a file already exists.

  • Edit the list of sources:
sudo nano /etc/apt/sources.list
or using a graphical editor:
kdesudo kate /etc/apt/sources.list
  • Note: To use your local mirror you can add "xx." before, where xx = your country code.
Example: deb lucid main restricted universe multiverse indicates a repository for Great Britain (gb).
  • Here is a sample sources.list. At the end have been added repositories for Medibuntu and Google:
deb precise main restricted
deb-src precise main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb precise-updates main restricted
deb-src precise-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb precise universe
deb-src precise universe
deb precise-updates universe
deb-src precise-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu 
## team, and may not be under a free licence. Please satisfy yourself as to 
## your rights to use the software. Also, please note that software in 
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb precise multiverse
deb-src precise multiverse
deb precise-updates multiverse
deb-src precise-updates multiverse

## Uncomment the following two lines to add software from the 'backports'
## repository.
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb Precise-backports main restricted universe multiverse
deb-src Precise-backports main restricted universe multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository. This software is not part of Ubuntu, but is
## offered by Canonical and the respective vendors as a service to Ubuntu
## users.
deb precise partner
deb-src precise partner

deb precise-security main restricted
deb-src precise-security main restricted
deb precise-security universe
deb-src precise-security universe
deb precise-security multiverse
deb-src precise-security multiverse

## Medibuntu - Ubuntu 11.10 "Precise Ocelot"
## Please report any bug on
deb precise free non-free
deb-src precise free non-free

# Google software repository
deb stable non-free
  • Refresh the packages list from the new repositories:
sudo apt-get update

Add repository keys

  • Download the gpg keys for the repositories and automatically add them to your repository keyring:
  • Example: To obtain and add the Medibuntu repository key:
wget --quiet -O - | sudo apt-key add -
  • Example: To obtain and add the Google repository key:
wget --quiet -O - | sudo apt-key add -

Note: wget - retrieves a file from a network location. --quiet = no output. -O - = Output downloaded item to the screen. The | (pipe symbol) is used to capture the output from the previous command and use it as an input for the piped command (i.e. apt-key, which adds it to the keyring).

  • Alternatively (and perhaps more easily), you can use apt-key directly:
sudo apt-key adv --keyserver --recv-keys KEY
where KEY is the missing key code printed in apt-get output, e.g. EF4186FE247510BE.
Note: Key servers often use port 11371. Make sure your firewall allows port 11371 to be open.
  • A repository key can also be downloaded then added ("imported") using your package manager or update-manager. For example, to use the Muon Update Manager:
K menu -> System -> Muon Update Manager -> Settings -> Configure Software Sources -> Authentication -> Import Key File...

Package Installation and Updates

Apt and Package Basics

Most new users will use Muon Package Manager to install packages. The instructions below are for installing packages from the command-line terminal (Konsole).

  • Install packages:
sudo apt-get install packagename
  • Example:
sudo apt-get install mpd sbackup
  • Remove packages:
sudo apt-get remove packagename
  • To remove all dependencies:
sudo apt-get autoremove
  • Example:
sudo apt-get remove mpd sbackup
  • Search for packages:
sudo apt-cache search <keywords>
  • Examples:
sudo apt-cache search Music MP3
sudo apt-cache search "Text Editor"
sudo apt-get update
  • Upgrade packages:
sudo apt-get upgrade
  • Upgrade the entire distribution (e.g. from Lucid to Maverick):
sudo apt-get dist-upgrade

Installing .deb packages

Debian (.deb) packages are the packages that are used in Ubuntu/Kubuntu. You can install any .deb package in your system. .deb files can generally be installed from your file manager (Konqueror or Dolphin) merely by clicking on them, since file associations with the default installer is already set in Kubuntu. These instructions are for those who wish to install packages from the command-line terminal (Konsole).

  • Install a downloaded Debian (Ubuntu/Kubuntu) package (.deb):
sudo dpkg -i packagename.deb
  • Remove a Debian (Ubuntu/Kubuntu) package (.deb):
sudo dpkg -r packagename
  • Reconfigure/Repair an installed Debian (Ubuntu/Kubuntu) package (.deb):
sudo dpkg-reconfigure packagename
  • Example:
sudo dpkg-reconfigure mpd

Handling (Tar/GZip) and (Tar/Bzip2) archives

(Tar/GZip) archives end in ".tar.gz" and (Tar/Bzip2) archives end in ".tar.bz2". Bzip2 is the newer, more efficient compression method. These files can generally be automatically extracted by merely clicking on them from your file manager (Konqueror or Dolphin), since file associations with the appropriate archival utilities are set by default in Kubuntu. These instructions are for those who wish to use the command line terminal (Konsole).

  • To extract:
tar xvf packagename.tar.gz

Note: tar is an application which can extract files from an archive, decompressing if necessary.

-x means extract.
-v means verbose (list what it is extracting).
-f specifies the file to use.
  • Decompressing ".gz" files
gunzip file.gz
  • Decompressing ".bz2" files
bunzip2 file.bz2
Note: You can also decompress a package first by using the command gunzip (for .gz) or bunzip2 (for .bz2), leaving the .tar file. You would then use tar to extract it.
  • To create a .gz archive:
tar cvfz packagename.tar.gz folder
  • To create a .bz2 archive:
tar cvfj packagename.tar.bz2 folder

Installing a package from source

  • Make sure you have all the necessary development tools (i.e. libraries, compilers, headers):
sudo apt-get install build-essential linux-headers-$(uname -r)
Note: "uname -r" lists the current kernel you are using
  • Extract the archive that contains the source files:
tar xvf sourcefilesarchive.tar.gz
  • Build the package using the package's script (in this case the configure script), compile the package (make), and install the compiled package into your system (make install):
cd /path/to/extracted/sourcefiles
sudo make
sudo make install
Note: typing ./ before a filename in the current folder allows the Linux shell to try and execute the file as an application even if it is not in the path (the set of folders which it searches when you type a command name). If you get a "permission denied" error, the file is not marked as being executable. To fix this:
sudo chmod +x filename
Example: In the above instructions, configure is the shell script to build the package from source. To be sure the configure script is executable:
sudo chmod +x configure
Create a .deb package from source files

If your build from source is successful, you can make a Debian (Ubuntu/Kubuntu) package (.deb) for future use:

  • Install package tools:
sudo apt-get install checkinstall
  • Rebuild package using "checkinstall":
cd /path/to/extracted/package
sudo make
sudo checkinstall
  • Keep the resulting ".deb" file for future use. It can later be installed using:
sudo dpkg -i packagename.deb

Note: These are basic instructions that may not always work. Some packages require additional dependencies and optional parameters to be specified in order to build them successfully. More info about .deb package structure can be found here.

Muon Package Manager

The Muon Package Management Suite is a collection of several package management tools, based on the QApt package management library for Debian-based systems, that includes the Muon Package Manager, the Muon Software Center (compatible with the Ubuntu Software Center), and the Muon Updater is a system update GUI. This is now the default package management system in Kubuntu.

Usage of the Muon Package Manager is somewhat similar to Synaptic Package Manager.

While "apt-get" is a fast way of installing programs/packages, you can also use Muon Package Manager (K menu -> System -> Muon Package Manager) for installing programs/packages. Most (but not all) programs/packages available with apt-get install will also be available from Muon. This is the preferred method for most desktop users. In this guide, when you see

sudo apt-get install package

you can simply search for package in Muon and install it that way.

  • K menu -> System -> Muon Package Manager
  • Search for the name of the program/package. You can also search for a word in its description.
  • Right-click on the name of the package -> "Mark for Installation". (If the program is already installed, use "Mark for Removal" or "Mark for Purge" to remove it).
  • Click Apply Changes.
  • The selected program(s) will be automatically installed (or removed), along with its dependencies.

Synaptic Package Manager

Synaptic Package Manager is the GTK-based GUI package manager for Gnome/Ubuntu. It can be used in Kubuntu without difficulty. Usage is similar to the other package managers. Install:

sudo apt-get install synaptic

Manual Updates

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install linux-headers-$(uname -r)
K menu -> System -> Muon Package Manager -> Check for Updates -> Edit -> Full Upgrade (or one of the other upgrade options)

Automatic Updates

K menu -> System -> Muon Package Manager -> Settings -> Configure Software Sources -> Updates -> Automatic Updates

Repair broken packages

If a package installation fails (which can cause a Package Manager to freeze or become locked), or if a package has unsatisfied dependencies causing a similar condition, then run one (or both) of the following commands from the command-line terminal:

sudo apt-get install -f
sudo dpkg --configure -a
  • If a problem occurs with MergeList (appearing as a missing "Package: header" error):
E: Encountered a section with no Package: header
E: Problem with MergeList...
E: The package lists or status file could not be parsed or opened.
then repair by recreating the package lists:
sudo rm /var/lib/apt/lists/* -vf
sudo apt-get update
  • If a problem occurs with a lock on the apt cache, for example:
E: Could not get lock /var/cache/apt/archives/lock - open (11: Resource temporarily unavailable)
then run:
sudo fuser -cuk /var/lib/dpkg/lock; sudo rm -f /var/lib/dpkg/lock
sudo fuser -cuk /var/cache/apt/archives/lock; sudo rm -f /var/cache/apt/archives/lock

File Managers


K menu -> System -> Dolphin
  • Many folders and files, especially system folders and configuration files, have root permissions associated with them. It is necessary to start Dolphin with root privileges in order to access them:
kdesudo dolphin
A menu item can be created with this command.
  • When opening the Dolphin file manager in this way, the default folder will be /root/. User files will be found by clicking on the "Root" icon and then navigating to the /home/user/ folder(s).

Add services to the Dolphin file manager

Context-sensitive services can be added to Dolphin.

  • Ruby must be installed first:
sudo apt-get install ruby
  • Add new services.
Dolphin -> Settings -> Configure Dolphin... -> Services -> Download New Services...
  • For example, a very useful service is the "Root Actions Servicemenu", which allows many functions to be performed with root (superuser or "sudo") permissions. This is necessary, for example, for editing text files that have root permissions.
  • The "Scan with ClamAV" service allows the anti-virus scanner to be run from Dolphin.
  • Once the new services have been installed, the system must be rebooted for the newly added service menus to appear in Dolphin.
  • <Right-click> on an item within Dolphin to bring up the services menu. For example, once the Root Actions Servicemenu has been installed, I can edit a text file with root permissions by <right-clicking> on it and selecting
Root Actions -> Open as text

This will open the text editor (kate) as root.

  • Other popular service menus include audiokonvertor, Extract and Compress, servicemenu-pdf, image2pdf, and vlcappend.
  • Many service menus in development can be found here.

Preview video files with Dolphin file manager

  • FFMpegThumbs uses FFMPEG to create thumbnail frames from video files, which can be used by KDE from a file manager like Dolphin. Install:
sudo apt-get install ffmpegthumbs
Alternatively, install kFFMpegThumbnailer (sudo apt-get install kffmpegthumbnailer), which works in a similar manner. (Both require FFMPEG to be installed.)

After installation of either of these modules, log out and log back into (or restart) your system for changes to take effect.

  • MPlayerThumbs not only shows a video frame thumbnail in Dolphin, it also has the capacity to show the entire video in the Dolphin Information side panel (for previewing). Though more powerful, it is slower to load than either FFMpegThumbs or kFFMpegThumbnailer. (MPlayer must also be installed for this thumbnailer / previewer to function.) Install:
sudo apt-get install mplayerthumbs

After installation, log out and log back into (or restart) your system for changes to take effect.

  • Make sure the settings for Dolphin allow JPG and Video previews:
Dolphin -> Settings -> Configure Dolphin... -> General -> Previews -> JPEG Images (ticked) -> Video Files (ticked) -> OK
-> View -> Preview (ticked)

Close and re-open Dolphin for changes to take effect.

  • If you wish information about the file to be displayed while the cursor hovers over the filename, also make sure Dolphin "tooltips" is enabled:
Dolphin -> Settings -> Configure Dolphin... -> General -> Behavior -> Show tooltips (ticked)
-> View -> Panels -> Information (ticked)

MTP through USB

Many MP3 players, as well as the latest Android devices, use MTP (Media Transport Protocol) for transferring data to the device storage.

  • In KDE (Kubuntu), enable MTP capabilities by installing the kio-mtp package:
sudo apt-get install kio-mtp
After installation, the device should appear in the Dolphin (or Konqueror or Rekong) file manager when the USB cable is plugged in.
  • Troubleshooting Android device connectivity: As a security precaution the newest Android devices do not have USB transfer capabilities turned on by default. It is necessary to carefully consult your device's user manual to find the method for enabling USB transfers (also known as "USB debugging mode" on many devices). For example, on my device, it was necessary to tap the "Settings -> About phone -> Build #" button 7 times to merely enable the USB debugging option, and then enable "Settings -> Developer options -> USB debugging" as a separate step!

WebDAV folders with Dolphin

  • Dolphin uses the same network proxy settings as Konqueror (or Rekonq). If there is trouble connecting to any online resource or folder with Dolphin, so that this error appears:
Could not connect to host:
Connection to proxy refused.

then check the Network Settings (or the proxy settings of Konqueror/Rekonq) and then make sure that Konqueror/Rekonq connects to the Internet successfully.

Settings -> System Settings -> Network and Connectivity: Network Settings -> Proxy -> No proxy (ticked) -> Apply
Konqueror -> Settings -> Configure Konqueror... -> Web Browsing: Proxy -> No proxy (ticked) -> OK
Rekonq -> Settings wrench icon -> Configure rekonq... -> Network -> Proxy -> No proxy (ticked) -> OK

Of course, if you are using a proxy, make sure that the proxy settings are correctly specified and that the proxy is working. When Konqueror (or Rekonq) connects successfully to the Internet, so should Dolphin.


Konqueror is a KDE-integrated browser that can also be used as a file manager. In addition to having tabbed browsing capabilities, it can transparently access FTP and SFTP servers, zip files (and other archives), and smb (Windows) shares, and can even browse and rip audio CDs. It is extensible and customizable through a system of plugins.

Desktop Add-ons

There are many add-on icons, themes, wallpapers, 3-D effects, and other customizations available for the KDE desktop.

  • KDE Apps has applications for the KDE desktop.
  • KDE Look has wallpapers, splash screens, icons, and themes for windows managers (including Kwin and Compiz) and other applications.

KDE Artwork

KDE Artwork is the package that contains themes, wallpapers, screensavers, widget styles, emoticons, and miscellaneous multimedia enhancers for the current KDE theme. Install:

sudo apt-get install kdeartwork

Change background wallpaper

A variety of choices to use for the background screen wallpaper are available, including a slideshow of images set to change at a determined interval, a Picture of the Day obtained from one of several online sources, a Mandelbrot pattern, a Weather forecast display, or a map selected from one of several sources.

KDE Cashew (upper-right corner) -> Desktop Settings -> View -> Wallpaper: <select wallpaper method>
  • Note: The kdeplasma-addons package may need to be added to your system for all options to work.

Change Plymouth Splash Screen

This is the initial splash screen you see at bootup. Different Plymouth themes can be found by searching for plymouth-theme in a Package Manager. Install a new one and then:

sudo update-alternatives --config default.plymouth
sudo update-initramfs -u

Plymouth does not reliably work (with nVidia and other graphics drivers) and during bootup a blank screen may result for several seconds.

Customize Screen lock

  • From KDE 4.12 and later, the Screen lock mechanism is activated from the settings menu:
Settings -> System Settings -> Display and Monitor -> Screen Locker
  • Prior to KDE 4.12, the Screen lock mechanism is activated as part of a screensaver:
Settings -> System Settings -> Display and Monitor -> Screen Saver


Add Plasma Widgets to the desktop

Plasma has replaced Kicker in Kubuntu. Plasma comes with plenty of applets/widgets (called plasmoids or widgets) that you can use on the desktop. Also see the KDE 4.3 Plasma FAQ or the KDE 4.4 Plasma FAQ.

  • Click on the Plasma icon in the upper right of the desktop.
  • "Add Widgets" and select from one of the already installed widgets/plasmoids.
  • Example: Add the Comic Strip widget/plasmoid. This will display a comic strip from the Internet. Click on the wrench icon to choose the comic strip, such as Dilbert.
  • Example: Add the Picture Frame widget/plasmoid (Plasma Picture of the Day). This will display either a single image or a slideshow of images from a folder or from a variety of Internet sources. Click on the wrench icon to choose the source.
  • "Install New Widgets".
  • "Download new Plasma Widgets" to choose a widget/plasmoid from KDE-look.
  • Example: Add Widgets -> Install New Widgets -> Download new Plasma Widgets -> Order by: Highest Rated -> Google Translator -> Install. Then Add Widgets -> Google Translator (to put it on your desktop).
  • To add support for webpage widgets written in HTML and JavaScript and for the Apple Mac OS X dashboard widgets you first may need to install the WebKit script engine:
sudo apt-get install plasma-scriptengine-webkit
  • Note: There may be problems installing Mac OS X widgets in some versions of KDE. See this KDE forum thread.
  • For troubleshooting the addition of plasmoids in KDE 4.5 see this page.
  • A large collection of KDE plasma widget addons can be installed:
sudo apt-get install kdeplasma-addons
sudo apt-get install plasma-widgets-addons

Add scripting for Plasma Widgets

Many installable widgets use customised scripts (written in Ruby, Perl, Python, Java, or another scripting language). Each may require installation of a scripting engine. All the script engines can be installed at once:

sudo apt-get install plasma-scriptengines

Run widgets in a screensaver

Add Plasma Widget packages

  • A large number of Plasma Widgets are available as packages, not as widget add-ons. To find a list of these, search for plasma-widget in your package manager (e.g. Muon or Synaptic). For example, to install the Flickr plasma widget, install the plasma-widget-flickr package. Similar complete packages include Google Calendar, Fortunoid, Translatoid, Customizable Weather, Next Wallpaper, and other plasmoid packages.

SuperKaramba Desktop Widgets / Gadgets

SuperKaramba is a tool that allows you to create themes and widgets.

sudo apt-get install superkaramba-kde4


KWin is the default Windows Manager in Kubuntu. It provides the 3-D effects previously available only in Compiz Fusion.

  • To enable these effects:
K menu -> System -> System Settings -> Desktop -> General -> "Enable Desktop effects"
  • Choose which effects to use:
K menu -> System -> System Settings -> Desktop -> Desktop Effects -> All Effects

Compiz Fusion

Compiz Fusion is also available as a separate Windows Manager to allow 3D desktop effects such as the rotating cube desktop. Some Kubuntu users choose to run Compiz instead of KWin. Install:

sudo apt-get install compiz compizconfig-settings-manager compiz-kde compiz-fusion-plugins-main compiz-fusion-plugins-extra emerald librsvg2-common

To change to Compiz as the Window Manager:

K menu -> System Settings -> Advanced -> Session Manager -> Window Manager -> Compiz

Note: You must logout and log back in for the change to take effect.

  • Select Compiz Configuration:
K menu -> Settings -> CompizConfig Settings Manager

Fusion Icon

Fusion Icon is a tray icon that allows you to easily switch between window managers (such as between KWin and Compiz), window decorators, and gives you quick access to the Settings Manager. This allows quick toggling of 3-D desktop effects (that may not be compatible with some applications).

sudo apt-get install fusion-icon
  • Start:
K menu -> System -> Compiz Fusion Icon

You can then easily access CompizConfig Settings Manager from the icon.

Rotate the Compiz Cube

Set the CompizConfig Settings Manager to enable the "Desktop Cube" and "Rotate Cube" and "Viewport Switching" options. Click on the icon for each to customize settings. For example, to change the appearance of the cube, click on the Desktop Cube icon to access its settings. You can set the hotkey buttons for rotating the cube in the "Viewport Switching" settings. Otherwise, hold down the Ctrl+Alt+Left mouse button and drag the mouse (or touchpad) the direction you want to rotate the cube.

Remember, the cube rotates between desktops. It's not a cube unless you have at least 4 desktops running. You will not get a cube if you are only using 2 desktops (you will get a "plate"). You can still rotate the sides of the plate, of course, but it will not be a cube. (Recent users from the Windows OS may have no experience with the concept of simultaneous desktops, but they are nice once you learn how to use them).

When running Compiz fusion as the Windows Manager, you must change the default number of desktops from within CompizConfig Settings Manger. To enable 4 desktops:

K menu -> System -> CompizConfig Settings Manager -> General -> General Options -> Desktop -> Horizontal Virtual Size -> 4

When you start an application, you can assign it to any one of the 4 desktops by right-clicking the upper left corner of the application window and choosing the "To Desktop..." option. Rotating the cube shows the different desktops. You can also go to a desktop using the taskbar icon which shows the 4 desktops.


Emerald is the theme engine for Compiz Fusion. Multiple themes are available from KDE Look, some of which are used in KWin as well. Oxygen, a default theme in Kubuntu, is an Emerald theme, for example. (These themes originated from the Beryl project before it merged with Compiz to form Compiz Fusion.) Emerald is not in the Precise 12.04 LTS default repositories.


deKorator is a window decoration engine for KDE. You can easily install lots of themes with this engine. See the installation instructions at KDE Look.

Google Desktop

Google Desktop for Linux was a proprietary suite of Google widgets and applications. It was discontinued in September 2011.

Dock applications

There are several are dock-like applications for (K)Ubuntu. A dock represents running programs as icons at the bottom of the screen (as is done on the Mac OS X desktop), instead of by toolbar panel segments (as is done in Windows and other Linux window managers). See this brief comparison of dock applications. Also see this Kubuntu forums thread for example implementations.

Of course, the default panel bar can be dragged to any screen edge (Unlock Widgets -> Panel Options -> Panel Settings -> Screen Edge) and the icon for any menu item added to it (Menu -> menu item -> <right-click> -> Add to Panel). This closely resembles the appearance of a docking application.

Icon-Only Taskbar Manager

This plasma widget is available in the default KDE desktop:

KDE Cashew -> Unlock Widgets -> Add Widgets -> Icon-Only Task Manager
  • The Icon-Only Task Manager has a horizontal orientation by default. To orient it vertically, add it to a vertically oriented empty panel:
KDE Cashew -> Unlock Widgets -> Add Panel -> Empty Panel -> Panel Settings
-> Screen Edge -> (Drag to desired edge)
-> Width (adjust width) -> (adjust vertical height with slide handles)
-> Add Widgets -> Icon-Only Task Manger -> (double-click)

Fancy Tasks

Fancy Tasks is a dock application for KDE. Download and install the plasma widget (.deb package for Kubuntu) from the KDE-look website.

Cairo Dock

Cairo Dock can be used either with a desktop compositing manager (such as Compiz or the KDE4 Kwin Window Manager) or without one. See the Ubuntu installation instructions for details. It is available from the repositories:

sudo apt-get install cairo-dock cairo-dock-plugins

Then choose whether to run the OpenGL version or the non-OpenGL version:

K Menu -> System - GLX-Dock (Cairo-Dock with OpenGL)
K menu -> System -> Cairo-Dock (no OpenGL)

Note: To check which compositing method (OpenGL or Xrender) is in use by KWin, check your settings:

K menu -> Settings -> System Settings -> Desktop Effects -> Advanced -> Compositing type: OpenGL

Avant Window Navigator

  • Avant Window Navigator requires that a desktop composition manager (such as Kwin (Kubuntu/KDE), Metacity (Ubuntu/Gnome), Compiz, Xcompmgr, or xfwm4 (Xubuntu)) be installed and running.
  • Install and upgrade proprietary nVidia or ATI graphics drivers so that the compositing manager functions properly.
  • Install AWN:
sudo apt-get install avant-window-navigator awn-manager
(Note: If you are using Gnome (Ubuntu) and do not already have a compositing manager installed (such as Compiz), Metacity will be installed as part of the installation.)
  • Enable automatic startup of AWN at bootup:
  • Menu -> System -> Preferences -> Sessions -> Add...
  • Select which applets should run from the dock menu by default:
  • Menu -> Applications -> Accessories -> Avant Window Navigator Manager
You can drag application icons onto the list, then activate or deactivate the applets from the list.

Yakuake command-line terminal

Yakuake is a stylish command line terminal similar to (and based on) Konsole.

sudo apt-get install yakuake
  • Enable it:
K menu -> System -> Yakuake

Use it by pressing F12.


Virtualization allows a second operating system (OS), such as Windows or OS X, to be run from within (K)Ubuntu. This requires extra RAM (because both (K)Ubuntu and the virtualized second OS require separate amounts of RAM) and a license for the second OS. If you wish to run a virtualized instance of Windows XP, for instance, you must have a license for Windows XP.


VirtualBox is a fast and complete virtualization solution that was owned and maintained by Sun Microsystems (now bought by Oracle). There is a free and fully open-source edition available under the GNU GPL license.

  • Install the open-source edition:
sudo apt-get install virtualbox-ose virtualbox-ose-source virtualbox-guest-additions
  • You can also add the QT-version (if using KDE/Kubuntu, for example):
 sudo apt-get install virtualbox-ose-qt
  • Start VirtualBox:
Menu -> VirtualBox OSE PC virtualization solution

For usage instructions, see the End-user documentation. For information on installing Virtualbox in Windows so that (K)Ubuntu can then be installed within in a virtual machine running in Windows, see this page.

Proprietary versions of VirtualBox

A few additional features that are not yet in the OSE version, such as a USB device interface, are available in the proprietary version of VirtualBox. To install a proprietary edition of VirtualBox:

  • Add the security key:
wget -q -O- | sudo apt-key add -
echo "deb maverick non-free" | sudo tee /etc/apt/sources.list.d/virtualbox.list
sudo apt-get update 
  • Install:
sudo apt-get install virtualbox


VMWare is a commercial virtualization platform that currently offers two free products: VMWare Player and VMWare Server (the latter with a free renewable yearly license). VMWare Player can play virtual appliances that have already been created, whereas VMWare Server (which has a broader range of features) allows the creation of virtual machines. In general, VMWare Server is recommended unless you only need to play an appliance. (Appliances will also run in VMWare Server). Users that wish to run servers (or processes) that need to be available to a network from within the virtual machine should use VMServer. If you wish to install a new OS within a virtual machine (other than in an appliance), you will need VMWare Server.

VMWare Player

Installation instructions are on the website, or at the Ubuntu community wiki. In brief, to install the free VMWare Player:

  • Install pre-requisites:
sudo apt-get install build-essential linux-headers-$(uname -r)
  • Get the binary package/installation script, give it executable privileges, then run the installation script:
chmod +x VMware-Player-2.5.3-185404.i386.bundle
sudo ./VMware-Player-2.5.3-185404.i386.bundle
  • Run:
Menu -> Applications -> System Tools -> VMWare Player

Create an Ubuntu Appliance

While any edition of Ubuntu can be installed in a virtual machine, the minimal installation option (F4) of the Ubuntu Server creates a highly-efficient edition (previously known as JeOS) optimised for use within a virtual appliance (which can then be played using VMWare Player or other virtual machine client). See this walkthrough.

A virtual appliance for VMWare Player (using this JeOS minimal server) can also be built using vmbuilder.

VMWare Server

  • Install pre-requisites:
sudo apt-get install build-essential linux-headers-$(uname -r)
  • Download the server source files for your architecture (32-bit or 64-bit) from the VMWare Server website and retrieve your license key by email.
  • Extract the files, give execution privileges to the install script, and run the install script:
tar xvf VMware-server-2.0.1-156745.i386.tar.gz
cd vmware-server-distrib
chmod +x
sudo ./
VMWare Package

VMWare Appliances (that include a (K)Ubuntu/Debian OS) can be created using VMWare Server and the VMWare Package utility. These appliances can then be deployed to users who can play them using VMWare Player. Install:

sudo apt-get install vmware-package

Keyboard errors in VMware guest

After installing VMWare 6.5, and installing a guest OS, the Function, arrow and Del/End/etc keys do not function. This is a bug with VMWare´s code. Add this line to ~/.vmware/config (create file if necessary) to fix this issue:

xkeymap.nokeycodeMap = true


KVM is the free open source virtualization solution implemented as a Linux kernel module (in the recent kernels) for computers whose processors contain virtualization extensions (Intel VT or AMD-V). See the Ubuntu installation instructions. Install:

sudo apt-get install kvm

Qemu (without KVM)

If your computer does not have the virtualization extensions, you can still run the QEMU virtualization platform. See this Ubuntu community documentation. It can be installed from source code.


Xen is an efficient open-source virtualization ("hypervisor") platform (which includes a merge with QEMU). It is the basis for the Amazon EC2 Cloud and is generally intended for use on a server (or on "baremetal" systems, i.e. no OS yet installed). It is free open source under a GPL license. The latest desktop (and installation instructions) is available from the website. (A commercial version is also offered by Citrix.) Implementation in Ubuntu requires some modification, currently. For more info, see the Ubuntu community documentation. Install:

sudo apt-get install xen-hypervisor xen-docs convirt

A Xen virtual machine host can also be installed automatically with certain 64-bit CPUs, using the 64-bit Ubuntu Server LiveCD. (A (K)Ubuntu desktop can then later be added -- see Ubuntu server).

Virtual Machine Manager

Virtual Machine Manager is an application to allow viewing of all instances of virtual machines on your system. It includes a secure implementation of VNC. This and other virtual management tools are available as an integrated package in (K)Ubuntu. Install:

sudo apt-get install ubuntu-virt-mgmt

Crossover for Linux

Codeweavers' Crossover Office for Linux is a subscription-based commercial package that allows many Windows programs to be run on (K)Ubuntu without the need for a Microsoft OS license or a complete virtualization system. See the website for more info. Codeweavers releases older versions of this product into the free package Wine.


Wine is a free open-source package that is similar to (and implements many elements of) CrossOver for Linux. Like CrossOver for Linux, no Microsoft license or virtualization platform is required to run Windows programs. See these instructions for installing the latest version of Wine.

sudo apt-get install wine

Also consider installing Microsoft's TrueType fonts:

sudo apt-get install ttf-mscorefonts-installer


PlayOnLinux is a Wine frontend which simplifies the installation and launch of many Windows programs, particularly games. Install:

sudo apt-get install playonlinux
Internet Explorer 7

Internet Explorer 7 can be installed with PlayOnLinux. Select "Internet Explorer 7" from the "Internet" section of PlayonLinux.

Internet Explorer 6 & 7

Internet Explorer 6 & 7 can function under Wine, albeit imperfectly. For most purposes, Firefox can be used (with the User Agent Switcher plugin) to mimic Internet Explorer.

  • Make sure you have Wine and cabextract packages:
sudo apt-get install wine cabextract
sudo chmod +x winetricks
  • Install with winetricks:
sh winetricks ie6
sh winetricks ie7

Note: Winetricks is automatically installed with the current version of Wine.

Netflix in Wine package

  • See this section.
  • Note: Netflix can also be played through a recent version of the Google Chrome browser. See this section.

Transgaming Cedega

Cedega is a commercial application (similar to CrossOver Office and Wine), for installing and running some Windows applications, specifically games, without the need for virtualization or a Microsoft license. It provides 3D support, software acceleration support, and a high level of DirectX support. Installation instructions are found on the website.


Mono is a free open source project sponsored by Novell to allow .NET programs to function in Linux ((K)Ubuntu) and Mac OS X. Several GNOME applications (like Tomboy, F-Spot, and Banshee) require mono to be installed, so mono may already be installed by default on your system. The most recent version is available here. Install:

sudo apt-get install mono-complete



  • Install the Java Runtime Environment version 6 (the default-jre package points to the open-jdk6-jre package):
sudo apt-get install default-jre
sudo apt-get install open-jdk6-jre
  • Alternatively, install the Java Runtime Environment version 7:
sudo apt-get install open-jdk7-jre
  • If you really need to use Oracle (ex Sun) Java instead of OpenJDK in (K)Ubuntu then install from the PPA private repository using the instructions found here.


DOSBox is a DOS-emulator that emulates CPU:286/386 realmode/protected mode, Directory FileSystem/XMS/EMS, Tandy/Hercules/CGA/EGA/VGA/VESA graphics, and a SoundBlaster/Gravis Ultra Sound card (for sound compatibility with older games). You can "re-live" classic games that otherwise won't run on newer computers.

sudo apt-get install dosbox


ScummVM allows certain classic graphical point-and-click adventure games to run (provided you already have their data files). ScummVM replaces the executables shipped with the games, allowing play on Linux operating systems (for which they were not originally designed).

sudo apt-get install scummvm

Google Android

Also see this page.

Android-x86 in VirtualBox

Android-x86 can can be downloaded as an .iso image and installed to and run in Virtualbox (or QEMU, VMWare, or other virtual environment). It provides a fast, efficient emulation environment with a large display but some functions and apps will not work with it.

  • See here for more details.

Android SDK emulator

Android SDK for Linux is a 32-bit Android emulator/software development kit. It incorporates a QEMU virtual machine framework as part of its installation. It provides a resource-hungry, slow, but largely functional Android environment and apps can be installed from (and run within) the emulator.

  • Once the Android emulator SDK is installed, install an app using these ADB instructions or directly from within an app marketplace.
  • More detailed instructions are available here.

F-Droid app repository for Android

  • F-Droid is the repository for free and open source software (almost all of it ad-free) for the Google Android platform.

Edutainment Applications

There are many superb applications that can be installed with a single click.

K menu -> System -> Muon Package Manager -> Games and Amusement

Below are a few examples that can be installed from this menu:

  • Mnemosyne -- a flash-card tool
  • Oregano -- a program for electrical engineering schematics
  • RlPlot -- a high quality graph generator
  • K3DSurf -- a program for modeling 3,4,5, and 6 dimensional models.
  • Gramps -- map your family-tree and co-operate with genealogy projects


There are some phenomenal games for (K)Ubuntu Linux.

There are hundreds of free, open-source games available in (K)Ubuntu. Most (including the KDE Games collection and the Gnome Games collection) can be accessed through the Games section of your Package Manager.

Examples are:

  • PouetChess -- an excellent 3-D chess game (sudo apt-get install pouetchess)
  • PokerTH -- a very nice Texas Hold 'Em Poker (sudo apt-get install pokerth)
  • Kajongg -- a real MahJongg game, for humans and/or robots (sudo apt-get install kajongg)
  • Planet Penguin Racer -- Penguin slides down a 3-D luge run, catching fish. (Extreme Tux Racer is the newer, updated version -- sudo apt-get install extremetuxracer)
  • KsirK -- play Risk against the computer or in a multiplayer environment (sudo apt-get install kdegames)
  • Racer -- the 3-D "real deal" Car Racing game (install binary found here). Also with extra tracks and add-ons.
  • TORCS -- the 3-D Car Racing game (sudo apt-get install torcs)
  • Supertuxkart -- the go-kart racing game (sudo apt-get install supertuxkart)
  • Pingus -- a Lemmings clone (similar to Super Mario Bros.) that uses penguins instead of lemmings (sudo apt-get install pingus)
  • Frozen Bubble -- the bubble-popping game (sudo apt-get install frozen-bubble)
  • Gweled -- a Bejeweled clone, simple in implementation yet almost as addicting (sudo apt-get install gweled)
  • Frets on Fire -- similar to Guitar Hero. You can import songs from Guitar Hero and from community sites (sudo apt-get install fretsonfire)
  • Scorched3d -- turn-based artillery game in a 3D rendered landscape (sudo apt-get install scorched3d)
  • Pyscrabble (and pyscrabble-server) -- online Scrabble game and server (sudo apt-get install pyscrabble pyscrabble-server) (Also see Lexulous and the Internet Scrabble Club for browser-based online games similar to Scrabble. Internet Scrabble Club requires Java: sudo apt-get install default-jre . It also requires firewall port 1325 to be open inbound/outbound.)

Wing Commander Privateer

The Linux version of this free version of Wing Commander can be downloaded as a binary here. It is a DOS program that runs in DosBox.


Vdrift is a free open source 3-D racing game, similar to Need for Speed, with realistic physics, multiple drift tracks, and multiplayer games. Support for joysticks, mice and keyboard is included. A binary package for Linux is available from the website.


Incredible action games (including those from the Top 25) are available in Ubuntu. Many can be installed using:

Menu -> Applications -> Ubuntu Software Center -> Games

Examples are:

  • Alien Arena -- a multi-player first person shooter action game with free servers. (Package: alien-arena) (Server: alien-arena-server)
  • OpenArena -- an open-source multi-player first person shooter action game, with free servers. (Package: openarena) (Server: openarena-server)
  • Tremulous -- a Halo-like multiplayer first person shooter action game. The repositories have the current version. (Package: tremulous) (Server: tremulous-server)
  • Sauerbraten - a multiplayer graphics-rich first person shooter game evolved from Cube. (Package: sauerbraten) (Server: sauerbraten-server)
  • Nexuiz -- an open-source multi-player first person shooter game with free servers and tournaments. (Package: nexuiz) (Server: nexuiz-server) A 35 map add-on community pack is also available here. To install it, extract the map pack to /home/username/.nexuiz/data (or ~/.nexuiz/data ).

Note: Many of these games require advanced graphics. Make sure you have the necessary hardware drivers activated.


UrbanTerror is a multiplayer first person shooter action game (with an integrated server). It uses the open-source quake 3 engine and features many real weapons and free-to-use servers for multi-player functionality. "Not recommended for adolescents in Germany." Download and install the binary using these instructions.


Skulltag, ZDoom, and PrBoom (Freedoom) are versions of Doom2. For Doom3, see Doom3 on Ubuntu.


Skulltag is an updated version of ZDoom that includes network play. It is now known as Zandronum. See the Zandronum wiki for simple (K)Ubuntu installation instructions. (You can use the Freedoom Iwad (see below) if you don't have an original Doom2.wad.) Note: Most of the modules require dependencies from the Universe repositories. Make sure you have the Universe repositories enabled (Package Manager -> Settings -> Configure Software Sources -> Community-maintained free and open-source software (universe) -> (ticked)).

  • Add the skulltag repositories, update, and install Zandronum and DoomSeeker (the Zandronum online server utility):
echo "deb stable multiverse" | sudo tee /etc/apt/sources.list.d/zandronum.list
sudo apt-get update
sudo apt-get install zandronum doomseeker-zandronum
  • If you don't have a doom2.wad, tnt.wad, or plutonia.wad already, you can copy the freedoom.wad to your ~/wads folder:
mkdir ~/wads
cd ~/wads
cp freedoom*/doom2.wad .
  • Configure Doomseeker to use the ~/wads directory for IWADS and PWADS. See here.
  • If you wish to use Midi for sound (optional), install some prerequisites :
sudo apt-get install timidity timidity-interfaces-extra
  • If you need more help (regarding the Zandronum-server, firewalls, and port forwarding with Zandronum/Skulltag, for example), see these additional tips.
  • Zandronum/Skulltag runs on any platform, with any graphics, and on almost any computer. There are thousands of add-ons, maps, and gameplay modes, giving a nearly endless variety of gameplay. The interface makes obtaining and playing the modifications very easy. This is my favorite game of all time (and I have been playing it for years).


PrBoom is a free open source port of the original first person shooter action game, Doom2. It does not have the advanced options of ZDoom. Freedoom is a free Iwad (set of maps) to replace the original Doom2.wad.

sudo apt-get install prboom freedoom timidity timidity-interfaces-extra

There are thousands of extra maps (Wads) available for this game. It is easiest to keep a directory for your wads in your home directory:

mkdir /home/user/wads
or alternatively, use the /usr/share/games/doom folder, giving universal privileges to the folder:
chmod -R 777 /usr/share/games/doom

Place your doom2.wad, tnt.wad, or plutonia.wad (from your original game) into this folder. If you don't have one, you can copy the Freedom version of doom2.wad from /usr/share/games/freedoom into this folder. Place any new .wad's you have downloaded from the Internet into this folder as well. Then run the game using both the original iwad map as well as your new .wad map (you will only see the new map).

prboom -iwad /home/user/wads/doom2.wad -file /home/user/wads/new_wad.wad

Note: Only doom2.wad, tnt.wad, or plutonia.wad can be used as an iwad. You must have one of these in addition to any new wad you wish to use. When in doubt, use doom2.wad.

Note: this game can also be installed using Menu -> Applications -> Ubuntu Software Center -> Games as Freedoom, but you must also install timidity and timidity-interfaces-extra.



The Spring Project is a scripting engine platform to develop and play free multiplayer games such as Star Wars Imperial Winter and Zero-K. Install:

sudo apt-get install spring

Regnum Online

Regnum Online MMPORG -- see basic installation instructions and the help forum as needed.


PlaneShift is a free full-immersion online fantasy game (MMPORG). Client downloads and patches are available here.

  • Make the downloaded binary installation file executable:
cd /directory_where_downloaded
chmod +x PlaneShift-v0.5.4-x64.bin
  • Run the executable binary as root (this must be done from the command line Terminal):
sudo ./PlaneShift-v0.5.4-x64.bin
  • Follow the instructions for installation. When prompted whether to manually set permissions, answer "no."
  • During installation, most users have recommended installing this game to your /home directory as a single user installation, instead of to /opt for all users. This avoids permissions problems. I was able to install to /opt, but it takes some effort.
  • Make sure your user belongs to the games group:
Menu -> System -> Administration -> Users and Groups -> user -> Manage Groups -> games -> Properties -> Group Members -> user (ticked) -> OK
Menu -> Applications -> Lost & Found -> Client and Setup

To run it from the menu, I had to edit the menu entries by checking the box: "Run in terminal." Alternatively, run it from the command-line Terminal:

sudo /opt/PlaneShift/pssetup
sudo /opt/PlaneShift/psclient

Notes: This game ran very slowly for me on a 32-bit installation with a DSL connection and I gave up. The 64-bit installation worked better.

Game Emulators

DosBox (DOS emulator)

  • DosBox is a DOS emulator that enables older DOS programs (and games) to be run. Install:
sudo apt-get install dosbox
  • Tweak the DosBox settings if necessary. For more info, read the DosBox instructions (man dosbox in a command-line terminal).

Dolphin (Wii emulator)

The Dolphin emulator is an open-source cross-platform Wii emulator that allows many Wii game disks to be run on many operating systems. (Whether the Wii Netflix disk will run under the Dolphin emulator has not yet been established.) (The Dolphin-emulator has no relationship to the KDE Dolphin file manager). Installation instructions for building the latest version from source code are here. Alternatively (and more easily), a Debian (.deb) package for 64-bit (K)Ubuntu systems can be installed (after downloading) from this location.

Other Emulators

  • Zsnes is a Super Nintendo game emulator. It is a 32-bit package, so will require a 32-bit system to be installed first when run on a 64-bit system (sudo apt-get install ia32-libs ia32libs-multiarch). Install:
sudo apt-get install zsnes
  • Desmume is a Nintendo DS emulator. Install:
sudo apt-get install desmume
  • PCSX is a Sony Playstation emulator. Install:
sudo apt-get install pcsxr
  • VisualBoyAdvance is a GameBoy Advance emulator (and vbaexpress is a GUI frontend). Install:
sudo apt-get install visualboyadvance vbaexpress
  • GnuBoy is a GameBoy emulator. Install:
sudo apt-get install gnuboy-x
sudo apt-get install pinball

Internet Applications

Internet applications enable you to make full use of your Internet connection. Web browsers, Email clients, Instant Messengers, and more are included in this category.

Web Browsers


Rekonq is the default web browser included with Kubuntu.


Konqueror was the prior default web browser included with Kubuntu.

Konqueror plug-ins

KGet (Download Manager) plug-in for Konqueror

KGet is a download manager for the Konqueror browser, but it can also work with Firefox as part of the FlashGot plugin.

sudo apt-get install kget

Mozilla Firefox

Mozilla Firefox is the ubiquitous web browser. Based on open source components, it is trademarked and cannot be altered or re-distributed with any change that involves the name or trademarks. Install the current version:

sudo apt-get install firefox
  • A KDE-optimised version of Firefox is available from the Blue Systems (the current sponsor of Kubuntu) Launchpad repository. Follow the instructions found there to install:
sudo add-apt-repository ppa:blue-shell/firefox-kde
sudo apt-get update
sudo apt-get install firefox firefox-kde-support

Firefox Plug-ins

The Firefox web browser supports a wide variety of third-party add-ons, extensions, and plug-ins. They are referred to as "plug-ins" in this guide (the original term) but many are found and configured under the "extensions" or "add-ons" tabs in Firefox (once they are installed).

Firefox -> Tools -> Add-ons -> Extensions (or Plug-ins)
Adblock Plus plug-in (block ads in a web page)

Adblock Plus blocks ads that appear in web pages. It is an important tool to limit tracking and undesirable website elements, as well. You can subscribe to a free filter service, and can add to the block list individual ads and website elements with a single click.

sudo apt-get install xul-ext-adblock-plus
  • You can also add this extension from Firefox -> Tools -> Add-ons -> Get Add-ons -> Search All Add-ons -> AdBlock Plus. (This method will also ensure that automatic updates are installed by Firefox.)
  • Recent versions of Adblock Plus allow the display of a large number of "partner" ads unless you disable this undesirable behavior:
Firefox -> Tools -> Add-ons -> Adblock Plus -> Preferences -> Filter preferences... -> Allow some non-intrusive advertising (unticked)

Because Adblock Plus appears to now be creating holes in its own blocking service, it is probably worthwhile to stop automatic updates and only update Adblock Plus selectively (in case the developers in the future decide to create even more holes in the plug-in's blocking capability without the corresponding option to disable the behavior).

NoScript plug-in (controls scripts)

The NoScript plugin is considered one of the most important security measures for browsing the Internet. Most viruses and trojans gain access to computers from the Internet through scripts. This plugin allows you to choose which scripts to allow and blocks the rest.

  • Add this extension from Firefox -> Tools -> Add-ons -> Get Add-ons -> Search All Add-ons -> NoScript. (This method will also ensure that automatic updates are installed by Firefox.)
  • NoScript has a long of websites on its "whitelist." It is important to review this list and remove the websites for which you don't wish to automatically allow scripts (I remove them all).
Firefox -> Tools -> Add-ons -> NoScript -> Preferences -> Whitelist
  • A large number of websites use multiple locations/URLs to assemble their webpage content, a process which is blocked by NoScript's ABE (Application Boundaries Enforcer) function. I have found it necessary to disable ABE in order for most of my websites to function correctly.
Firefox -> Tools -> Add-ons -> NoScript -> Preferences -> Advanced -> ABE -> Enable ABE (unticked)
  • Many websites now use aggressive pop-ups to place advertising in front of the actual content. While NoScript can block these ads, there will be a "placeholder" still blocking the content unless you turn off the placeholders:
Firefox -> Tools -> Add-ons -> NoScript -> Preferences -> Embeddings -> Show placeholder icon (unticked)
  • Most websites use scripting extensively these days, so that you may need to "Allow" a website in NoScript. To block the individual undesirable elements of the website, use AdBlock Plus.
Bookmark Favicon Changer plug-in

In the newest versions of Firefox, there are some bugs regarding the Favicons (the small icons that appear in the address bar) and the Bookmark icons. This plug-in will restore the icons that get erased (leaving a blank dotted box) or allow you to choose your own Favicons / Bookmark icons.

  • Add this extension from Firefox -> Tools -> Add-ons -> Get Add-ons -> Search All Add-ons -> Bookmark Favicon. (This method will also ensure that automatic updates are installed by Firefox.)
RefreshBlocker plug-in (prevents redirects)

RefreshBlocker allows the user to decide which websites (and pages) will be allowed to redirect (based on META tags within the webpage). Although Firefox (as of version 3.5) blocks all directs by default, the behavior is not customizable; it is therefore preferable to turn off the Firefox redirect control and use RefreshBlocker instead.

  • Add this extension from Firefox -> Tools -> Add-ons -> Get Add-ons -> Search All Add-ons -> RefreshBlocker. (This method will also ensure that automatic updates are installed by Firefox.)
  • Turn off the Firefox automatic redirect blocker:
Firefox -> Enter about:config in the browser location bar -> right-click on "accessibility:blockautorefresh" -> Toggle to change the value from true to false
Video DownloadHelper plug-in for Firefox

The Video DownloadHelper plugin allows the download of videos (including Flash videos) from sites like YouTube.

  • You can add this extension from Firefox -> Tools -> Add-ons -> Get Add-ons -> Search All Add-ons -> Video DownloadHelper. (This method will also ensure that automatic updates are installed by Firefox.)
Hide Tab Bar With One Tab plug-in

In Firefox v. 23 and later, the ability to hide tabs has been disabled. This plugin restores the ability to hide tabs if only one tab is open, restoring the function to hide tabs during normal browsing.

  • You can add this extension from Firefox -> Tools -> Add-ons -> Get Add-ons -> Search All Add-ons -> Hide Tab Bar With One Tab. (This method will also ensure that automatic updates are installed by Firefox.)
User Agent Switcher plug-in for Firefox

The User Agent Switcher plugin allows a browser to masquerade as another browser, allowing browser-specific content to be displayed (most of the time). In the past there were a few old web apps that ran only on IE (and if one is encountered this plug-in may still be useful). Now that Firefox is the world's leading web browser, however, this plug-in should no longer be necessary for the average user.

  • A user agent string also identifies your OS. Users of an uncommonly used (and easily identifiable) OS may wish to protect their privacy and not identify their OS correctly; for these users, User Agent Switcher is valuable for privacy reasons. Some users, for example, may wish to identify their very specialised OS as Debian or Ubuntu instead.
  • You can add this extension from Firefox -> Tools -> Add-ons -> Get Add-ons -> Search All Add-ons -> User Agent Switcher. (This method will also ensure that automatic updates are installed by Firefox.)
  • To use this add-on, the settings for Firefox must be changed prior to usage:
Firefox -> about:config -> Search: useragent -> general.useragent.enable_overrides -> Toggle (so that the value is true) -> Restart Firefox
  • A disadvantage of the User Agent Switcher is that it allows Firefox to revert to the default user agent string at each restart, so that it must be re-engaged each time. An alternate method to change the default Firefox user agent string is directly through the about:config settings (also see this blog post):
Firefox -> about:config -> Search: useragent -> general.useragent.enable_overrides -> Toggle (so that the value is true) -> <right-click> -> New -> String -> Enter the preference name: general.useragent.override -> OK -> general.useragent.override: Mozilla/5.0 (X11; Kubuntu; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0 -> OK -> Restart Firefox
  • The default user agent string for Kubuntu actually reflects Ubuntu as the OS (so that online OS usage statistics incorrectly count Kubuntu as Ubuntu). If you wish Kubuntu usage to be accurately counted, it is helpful to change your user agent string permanently.
Lightbeam (website crosslink visualization)

Lightbeam is a Firefox plug-in that is able to display the links on a website (to which you are connected) while browsing, giving you an indication of who can see your browsing habits at that moment.

  • You can add this extension from Firefox -> Tools -> Add-ons -> Get Add-ons -> Search All Add-ons -> Lightbeam. (This method will also ensure that automatic updates are installed by Firefox.)
Privacy Badger (tracking management)

Privacy Badger is a Firefox plug-in sponsored by the Electronic Frontier Foundation. Currently in alpha stage, it blocks many tracking mechanisms more stringently than the native Firefox mechanisms. Install the .xpi add-on from the website.

Unplug Download Management

The UnPlug add-on lets you save video and audio which is embedded on a webpage.

  • You can add this extension from Firefox -> Tools -> Add-ons -> Get Add-ons -> Browse All Add-ons. (This method will also ensure that automatic updates are installed by Firefox.)
Lucifox (eBook reader extension)

Lucifox (Lucidor for Firefox) enables e-books to be read and e-book catalogs to be browsed in a Firefox window.

  • To install, go to the website and click "Download Now."
Adobe Acrobat Reader for Firefox Plug-in
deb Precise partner
then install Adobe Reader:
sudo apt-get install acroread
Adobe Flash Player for Firefox Plug-in

To install the official Adobe Flash plugin (Flash 10) for Firefox:

sudo apt-get install adobe-flashplugin
Gnash Plug-in (Open source Flash Player replacement)

Gnash is available in a 64-bit version as well as a 32-bit version. It is the open source replacement for Adobe Flashplayer.

sudo apt-get install gnash

After installing, change your web browser's Preferences -> Applications so that SWF and SPL files use Gnash.

Java Runtime Environment (JRE) for Firefox plug-in
  • The IcedTea Plugin allows browsers to execute Java applets. The default icedtea-plugin package points to the icedtea-6-plugin package. Install:
sudo apt-get install icedtea-plugin
  • Alternatively, install the IcedTea Plugin for version 7:
sudo apt-get install icedtea-7-plugin
sudo apt-get install default-jre icedtea-plugin

Note: You must accept the license to use this product.

Kaffeine Plug-in for Firefox

This package also installs the Kaffeine player.

sudo apt-get install kaffeine-mozilla
MPlayer plug-in for Firefox

Gecko-mediaplayer has replaced the Mplayer plugin. This package also installs gnome-mplayer.

sudo apt-get install gecko-mediaplayer
VLC plug-in for Firefox

This package also installs the VLC player.

sudo apt-get install mozilla-plugin-vlc
Helix player plug-in for Firefox

This package also installs the Helix player, which is the open source player that plays Real Player content in Linux.

sudo apt-get install mozilla-helix-player
Moonlight plugin for Firefox

Moonlight is part of the Novell Mono project that is an open source implementation of Silverlight (the Microsoft multimedia presentation platform). It is based on FFMpeg. It is made to work best with the Firefox 3 web browser, as a plugin (but also works with other mozilla browsers). Version 2.3 is available as a plugin for mozilla-based browsers:

sudo apt-get install moonlight-plugin-mozilla
The stable version 2.4 is available here. The Moonlight 3.99 plugin (compatible with most Silverlight 3/4 content) is here.
  • Netflix under Moonlight
Netflix streaming requires both the capabilities of Silverlight 2.0 and Digital Rights Management modules. Although the current version of Moonlight 2.0 will run most Silverlight content (including Netflix content), Netflix has not yet released Digital Rights Management modules for Linux. Please contact Netflix directly for further information or sign a petition.
  • An HTML5 Netflix plugin (currently being developed by Google for the Chrome browser) may soon be available. Other alternatives are to run Netflix in Wine or to use the Netflix Android app in a virtual Android environment.

FireFTP for Firefox

FireFTP is a Firefox extension for FTP transfers.

Firefox Widgets

Turn off browser bar drop-down list in Firefox

This is the most frequently asked problem regarding Firefox. To turn off the location browser bar drop-down list (and therefore not show your browsing history):

Firefox -> about:config (in the location browser bar) -> browser.urlbar.maxRichResults -> right-click -> Modify -> set value to 0

Turn off SSL certificate name in address bar

In newer versions of firefox, the validity of the SSL certificate associated with a website is displayed as a color-coded background to the Favicon (the small icon displayed in the address bar). However, Firefox currently also displays the name of the site issuing the SSL certificate, which can be annoying, since for most sites this is a duplicate of the domain name (which then gets displayed twice in the address bar). To turn off this behavior:

Firefox -> about:config (in the location browser bar) -> browser.identity.ssl_domain_display -> right-click -> Modify -> set value to 0

View Firefox cache

In a new window/tab, enter about:cache in the Firefox address bar. You can view and save individual elements (from all open windows/tabs) in the cache from there.


  • Due to trademark restrictions of Mozilla products, the Debian project has created versions of the (otherwise free) software that has been stripped of the non-free trademarks. See here and the Debian wiki for more information. To install them, use a package manager to add the Debian repository for your country ( e.g. deb unstable main ) temporarily while installing the software. Then install the software package using the package manager or from the command line:
  • IceWeasel replaces the Firefox web browser (sudo apt-get install -t iceweasel).
  • IceDove replaces the Thunderbird email, newsreader, and calendaring client (sudo apt-get install -t icedove).
  • IceOwl replaces the Sunbird standalone calendaring client (sudo apt-get install -t iceowl).
  • After installation of the individual package, it is best to disable the Debian repository so it does not interfere with the (K)Ubuntu repositories.
  • A user that is interested in the philosophy of free software that Iceweasel symbolises may wish to consider a full Debian OS installation (of which (K)Ubuntu is a fork) instead of (K)Ubuntu.

GNUzilla IceCat

The GNU project also maintains a version of Mozilla Firefox that is free of trademarks and branding, called GNUZilla IceCat. .deb packages for (K)Ubuntu can be downloaded and installed through the GNUzilla PPA repositories.


Opera is a proprietary browser and internet suite (currently free on PCs) also used in some mobile devices and gaming consoles. It includes email, an address book, IRC chat, integrated BitTorrent, and webfeeds. A limited number of plugins are also available. Download from the website and follow the instructions or install from the Opera repository:

echo "deb stable non-free" | sudo tee /etc/apt/sources.list.d/opera.list
wget -O - | sudo apt-key add -
sudo apt-get install opera


Chromium is the open source browser on which Google Chrome is based. It does not include the undesirable user tracking mechanisms of Google Chrome or the Google logos (and is therefore recommended by many users instead of Chrome).

sudo apt-get install chromium-browser

If not installed automatically, you may need additional modules:

sudo apt-get install chromium-codecs-ffmpeg-extra chromium-browser-|10n

Google Chrome

Google Chrome is Google's proprietary web browser. Based on the open-source Chromium browser, Google adds the Google name and logo, an auto-updater system called GoogleUpdate, RLZ (a user-tracking mechanism), and other Google add-ons. To use this instead of Chromium, download and install the .deb package here.

Download Managers


KGet is a versatile and user-friendly download manager.


MultiGet is a GTK-based free-standing download manager utility.

sudo apt-get install multiget

Usenet Clients

  • Here is a sample list of free Usenet servers.


Pan is a Gnome-based Usenet reader and nzb binary downloader. Install:

sudo apt-get install pan


Kwooty is a Usenet reader and nzb binary downloader for KDE4. Installation instructions from source or PPA repositories are at the website.

Email Clients


KMail (Kontact Mail) is the default email client included with Kontact. Access it by going to

K menu -> Office -> Kontact Personal Information Manager


K menu -> Internet -> KMail

Kontact includes email, an address book, a calendar, reminders, pop-up notes, a link to the Akregator News/RSS reader, time-tracking, and more.

To change view mode or aggregation mode (grouping) of the message list pane, use the icons to the right of the search pane. (Configuration of this doesn't seem to be available from the settings menus.)

PGP and Kmail

PGP-encrypted messages can be emailed using Kmail. See this tutorial.

Kmail -> Configure Kmail -> Security -> Crypto Backends


Mozilla Thunderbird is a licensed and trademarked free open-source email client that is compatible with Firefox. Thunderbird works with free Gmail and Yahoo Mail accounts (using Imap). Install:

sudo apt-get install thunderbird

Lightning calendar extension

Lightning is the calendar extension for Thunderbird (with functionality similar to the stand-alone application Sunbird). Install:

sudo apt-get install xul-ext-lightning


Enigmail is an add-on to Thunderbird that allows you to easily encrypt your email using OpenPGP, which is included in the kernel by default. It also allows you to create and manage the encryption keys. Install:

sudo apt-get install enigmail
  • Also see these tips for instructions on setting up e-mail with PGP encryption.

Miniminize to System Tray

MinimizeToTray revived is a valuable plugin/add-on/extension, IMO. It allows Thunderbird to be minimized to the System Tray instead of to the Taskbar. This allows Thunderbird to run discreetly in the background, checking for new mail and calendar events (e.g. through the Lightning extension). The same plugin/add-on/extension also is available for Firefox. Install:

Thunderbird -> Tools -> Add-ons -> Get Add-ons -> Browse all add-ons (takes you to an external webpage) -> search for add-ons: MinimizeToTray revived -> + Add to Thunderbird -> Install Now -> Restart Thunderbird

New Mail Icon for Thunderbird

New Mail Icon is an experimental tray add-on which notifies you of new mail. (Note: If you leave Thunderbird running minimized to the System Tray (with the MinimizeToTray add-on, for example), it has a built-in "new message" notifier already, so that this add-on would not be necessary in such a situation.) Download from the website. Install:

Thunderbird -> Tools -> Add-ons -> Install -> select downloaded file


Evolution is the default Gnome-based email client used in Ubuntu. Installing it will also install many Gnome components.

sudo apt-get install evolution


FetchYahoo is a Perl script to fetch mail from a free Yahoo mail account and spool it locally so that an email client like Thunderbird can access it with POP3. For more info see the Ubuntu Community documentation. Install:

sudo apt-get install fetchyahoo



Akregator is the default news/RSS reader included with Kubuntu. Usage instructions are found in the Handbook.


RSSOwl is a Java-based RSS | RDF | Atom Newsfeed Reader.

Install java and in order to use the internal browser, install the packages xulrunner and firefox:

sudo apt-get install sun-java6-jre firefox xulrunner

Change to your "opt" directory:

cd /opt

Download the zip-archive into your opt directory:

sudo wget

Extract the archive and remove the extracted file:

sudo unzip ./ && sudo rm ./

Make a startscript:

sudo kate /usr/bin/

add the following lines to your startscript file /usr/bin/ and save it afterwards.

    cd /opt/rssowl

Make the startscript executable:

sudo chmod u+x /usr/bin/

To start RSSOwl:

Instant Messengers


Kopete is the default Instant Messenger application for KDE/Kubuntu. Webcam video and voice capability is incorporated. You can access multiple services with it. You can access it by:

K Menu -> Applications -> Internet -> Kopete Instant Messenger.

Plugins for Kopete

Kopete includes a number of default plugins:

Kopete -> Settings -> Configure -> Plugins
  • A language Translator plugin that can be used with Google or BabelFish is available (but is no longer functional since the closure of both the Google Translate API and BabelFish in 2012).
  • An encryption plugin (using Off-The-Record encryption) is available.
  • OpenPGP for Kopete is also available by installing the package kopete-cryptography:
sudo apt-get install kopete-cryptography

Kopete Styles

Additional styles for Kopete are available from KDE-look. Install from:

Kopete -> Settings -> Configure -> Chat Window -> Style -> Get New...

GoogleTalk on Kopete

Kopete can be configured to work with GoogleTalk Instant Messaging (but not VOIP) using the Jabber protocol. See these GoogleTalk instructions.

Facebook Chat on Kopete

Konversation (IRC client)

Konversation is no longer the default Internet Relay Chat (IRC) client in Kubuntu, but is highly recommended nevertheless. It functions similar to the venerable mIRC. Make sure you have ports 6667-6670 open in your firewall to use IRC (and ports 1024-1028 open to use DCC). "A little less action and a little more Konversation." -- Elvis. Install:

sudo apt-get install konversation


K menu -> Internet -> Konversation
  • Konversation can be used directly with a proxy. For example, if you are using a Socks5 proxy on port 9050:
Konversation -> Settings -> Configure Konversation... -> Behavior: Connection -> Proxy (ticked) -> Type: Socks v5 -> Address: (or localhost) -> Port: 9050

Quassel (IRC client)

Quassel is a cross-platform IRC client currently that is included as the default Kubuntu/KDE client. Based on the Qt platform, there is no DCC implementation (which makes this client limited in usefulness). Try Konversation for more features.

  • Quassel can be used directly with a proxy on a per-server basis. For example, if you are using a Socks5 proxy on port 9050:
Quassel -> File -> Networks -> Configure Networks... -> Servers: -> Edit -> Advanced -> Use a Proxy (ticked) -> Proxy Type: Socks 5 -> Proxy Host: (or localhost) -> Port: 9050

XChat (IRC client)

XChat is a cross-platform IRC client that allows DCC downloads and scripts. Install:

sudo apt-get install xchat
or a Gnome-integrated version:
sudo apt-get install xchat-gnome


Pidgin is an open source IM application. It is the default in the Ubuntu (Gnome) desktop, but will work in Kubuntu (KDE). You can access multiple services with it.

sudo apt-get install pidgin


aMSN is an MSN Messenger utility that functions like the original client. Unlike Kopete, it is not made for the KDE desktop (but can be installed nevertheless). Install it:

sudo apt-get install amsn

To enable Drag-and-Drop capabilities to aMSN for easy file transfer see Ubuntu Geek.


Emesene is an MSN messenger client that uses a simplified interface similar to the original client. Unlike Kopete, it is not made for the KDE desktop (but can be installed nevertheless). Install it:

sudo apt-get install emesene


Kmess is an MSN messenger client for KDE that is an alternative to Kopete (for MSN users).

sudo apt-get install kmess

KDEuBlog (Microblogging)

KDEuBlog is a desktop widget used for microblogging client on sites like Twitter and (StatusNet). Older versions do not have OAuth incorporated. Use Choqok instead. Install:

Widget icon (upper right corner of desktop) -> Add widgets ... -> Microblogging

Choqok (Microblogging)

Choqok is a utility used for microblogging on sites like Twitter and (StatusNet). It has incorporated the OAuth mechanism and allows the use of proxies. Install:

sudo apt-get install choqok
Notifications (popups/sounds) for incoming messages can be set:
K Menu -> System -> System Settings -> Notifications -> Event Source: Choqok -> New Post Arrived -> Play a sound (ticked)
  • When Twitter switched off API 1.0 on 11 June 2013, the tweets went dark for Choqok users as the application had not been updated in time to support API 1.1. This was due to the original developer not having time to maintain Choqok himself. On appeal to the Linux community, another developer stepped in and developed Choqok > 1.3.1 (which supports the API 1.1).
For users of Kubuntu Precise Pangolin 12.04 or later (> KDE 4.10), the updated program (or patch) is available at Launchpad. Download and run the version for your OS (32-bit i386 or 64-bit amd64). Either the Raring or Saucy version will work for Precise (after updating packages, including from KDE 4.8 to KDE 4.10).

FTP Clients

Although Konqueror can use FTP via kioslaves, you might wish to use a dedicated FTP client. Also see these FTP tips.


FileZilla is the ubiquitous free open-source FTP client and server for all platforms.

sudo apt-get install filezilla

Filesharing / P2P

Do not share copyrighted material or content that is otherwise illegal to share.


KTorrent is the default BitTorrent client in Kubuntu. Also see the KTorrent wiki or these additional tips.

K menu -> Internet -> KTorrent

Be sure to have your firewall ports open (by default 6881 and 4444).

  • It is possible to use proxies with KTorrent. For example, if you have a tracker proxy at and a socks proxy at, then set KTorrent to use these proxies:
KTorrent -> Settings -> Configure KTorrent... -> Proxy
-> HTTP:Proxy: -> Port: 8118
-> SOCKS: Use a SOCKS proxy server: (ticked) -> Server: -> Port: 9050 -> Version 5 (assuming you are using socks5)
  • It is important to note that although SOCKS5 proxies can handle UDP traffic, KTorrent passes UDP packets outside of the SOCKS proxy server. If you desire IP address privacy, do not use UDP-based trackers with KTorrent.
  • It is possible to use encryption with KTorrent:
KTorrent -> Settings -> Configure KTorrent... -> BitTorrent -> Encryption -> Use protocol encryption

In an era of increasing censorship, spying, and surveillance using Deep Packet Inspection, encryption has become an essential componenet of data transfer.

KTorrent -> Plugins -> IP Filter (ticked) -> Settings -> Configure KTorrent... -> IP Filter -> Use PeerGuardian filter (ticked) -> Download/Convert

This service attempts to monitor and filter IP addresses known for censorship, spying, or provision of false or malicious data to this type of Internet service.

  • Some older routers only allow 20 simultaneous connections or they will continually freeze (as their connection-table cache becomes full). If this occurs, decrease the maximum number of connections to 20:
KTorrent -> Settings -> Configure KTorrent... -> Network -> Advanced: Maximum number of connection setups: 20

Set Firefox to use KTorrent for magnet links

Firefox is very ticklish about this setting, so follow the instructions very carefully.

  • Open a window which has a magnet link on it. Click on the magnet link, and the error "Firefox doesn't know how to open this address, because the protocol (magnet) isn't associated with any program" usually appears.
  • Open a new tab (NOT a new window) and edit the configuration settings by typing about:config in the address bar of the newly-opened tab. Then add the network.protocol-handler.expose.magnet setting and set it to false:
Firefox -> about:config -> Search: network.protocol-handler.expose -> <Right-click> on the main window
-> New -> Boolean -> Enter the preference name: network.protocol-handler.expose.magnet -> Ok
-> False -> Ok
  • DO NOT CLOSE the about:config tab until this step is complete! While the about:config tab remains open, go to the tab with your magnet link available. Click on the magnet link. A dialog box should appear to choose the application.
Firefox -> Launch Application: Choose an Application: Choose... -> File system: /usr/bin/ktorrent
-> Remember my choice for magnet links (ticked) -> Ok
  • Now whenever you click on a magnet link in Firefox, it should be added automatically to KTorrent and will be found in the KTorrent -> Magnet section. If a different downloading program is later desired for use with magnets, the setting in Firefox can subsequently be changed:
Firefox -> Preferences -> Applications -> magnet -> (dropdown box)
  • Note: Magnet links will not work with KTorrent versions prior to 4.3 (and libktorrent 1.3). Download and install the current KTorrent / libktorrent versions from source code according to instructions here or install the Debian (.deb) packages found here.


Azureus is a Java-based BitTorrent client.

sudo apt-get install azureus


QBitTorrent is a PyQT-based BitTorrent Client that is based on the uTorrent model.

sudo apt-get install qBittorrent

Transmission (BitTorrent Client)

Transmission is the GTK-based default BitTorrent client in Ubuntu (Gnome). KTorrent can be used in Kubuntu.

sudo apt-get install transmission


Deluge is a GTK-based BitTorrent client, with plugins and a server package / daemon available. Install the client:

sudo apt-get install deluge-torrent

or the GTK-based interface:

sudo apt-get install deluge-gtk
  • The server daemon and web interface (for server functions) can be installed:
sudo apt-get install deluged deluge-web

Bittornado (BitTorrent Client)

BitTornado is a KDE-compatible BitTorrent client. Install:

sudo apt-get bittornado bittornado-gui

Torrentflux (P2P client and server)

TorrentFlux is a PHP based BitTorrent controller that runs on a web server (using a MySQL database with the mysql-server package for server functions or the mysql-client for client functions) and uses a web interface that can be accessed remotely (e.g. http://localhost/torrentflux). This makes it ideal for seedbox purposes. It uses the BitTornado client for downloads. Install:

sudo apt-get install torrentflux

Apollon (P2P Filesharing)

Apollon is an older (now relatively obsolete) BitTorrent client that uses the Gift network (Gnutella, etc.). It uses plugins for compatibility with multiple networks. Obtain the packages from the Debian Etch archives for apollon and gift.

KMLDonkey (P2P eMule/eDonkey2000 Client)

KMLDonkey is a KDE frontend for MLDonkey, the P2P file sharing program (and network) that is able to use different network protocols.

sudo apt-get install kmldonkey mldonkey-server

Opentracker (Torrent tracker)

Opentracker is the most widely used torrent tracker software. It can be used within a private organisation or as a public service to track freely-available torrents. Download (through CVS) and installation instructions are at the website.

Videoconferencing and VOIP

Videoconferencing and voice over Internet (VOIP) applications are merging into integrated applications. Most of these applications now allow placing calls to non-Internet based telephones for a small fee.


Formerly known as Gnomemeeting, Ekiga is a SIP compliant fully functional open source integrated VOIP and videoconferencing program.

sudo apt-get install ekiga


Skype is a proprietary integrated VOIP and video conferencing program similar to Ekiga. Also see instructions on how to record Skype conversations.

  • Install pre-requisites:
sudo apt-get install libqt4-dbus libqt4-network libqt4-xml
  • To get the most recent version, download and install the 32-bit version:
wget -O skype-ubuntu-current_i386.deb
sudo dpkg -i skype-ubuntu-current_i386.deb
sudo rm skype-ubuntu-current_i386.deb
wget -O skype-ubuntu-current_i386.deb
sudo dpkg -i skype-ubuntu-current_i386.deb
sudo rm skype-ubuntu-current_i386.deb
  • In the past. some users have noted that they cannot get their microphone inputs to work with any version later than They installed:
wget -O skype-ubuntu-current_i386.deb
sudo dpkg -i skype-ubuntu-current_i386.deb
sudo rm skype-ubuntu-current_i386.deb
wget -O skype-ubuntu-current_amd64.deb
sudo dpkg -i skype-ubuntu-current_amd64.deb
sudo rm skype-ubuntu-current_amd64.deb
How to install Skype on a 64-bit system

The current version of Skype for 64-bit systems is a masqueraded 32-bit module. To use on a 64-bit system you might still need to install the needed packages:

sudo apt-get install ia32-libs lib32asound2 libqt4-core libqt4-gui
  • Then download and install the current Skype .deb package from the Skype website:
wget -O skype_ubuntu-current_amd64.deb
sudo dpkg -i skype-ubuntu-current_amd64.deb
sudo rm skype-ubuntu-current_amd64.deb
  • If the 64-bit version doesn't work for you, use the 32-bit version (or see above for the most recent version):
wget -O skype-ubuntu-current_i386.deb
sudo dpkg -i --force-architecture skype-ubuntu-current_i386.deb
sudo rm skype-ubuntu-current_i386.deb

Installing Skype repository

It is possible to install Skype by adding the repository and installing from there. This has an advantage of maintaining updates automatically.

  • Install the respository security key. (This requires an open port 11371 in your firewall for the keyserver.)
sudo apt-key adv --keyserver --recv-keys 0xd66b746e
  • Add the Skype repository, update, and install Skype:
echo "deb stable non-free" | sudo tee -a /etc/apt/sources.list > /dev/null
sudo apt-get update
sudo apt-get install skype


Wengophone is an integrated VOIP and videoconferencing client available on many platforms. Wengophone was initially an open-source GPL-licensed package ('Wengophone Classic'). Both the Classic version (available as a .deb file) and the current proprietary binary version are available from the website. Wengophone Classic has now been rebranded as QuteCom, however. To install the current version as an Ubuntu/Kubuntu package, see these instructions.

  • Download and install the older Wengophone Classic version (.deb package):
dpkg -i --force-architecture wengophone-0.958m-1.i386.deb


Gizmo5 is an Internet soft-phone application, similar to Skype, that uses the SIP protocol. Install (.deb package):

dpkg -i --force-architecture gizmo-project_3.1.0.79_libstdc++6_i386.deb

Asterisk VOIP PBX system

Asterisk is an enterprise-grade, free open source PBX and telephony system for VOIP.

sudo apt-get install asterisk


Kiax is an LGPL-licensed open source IAX (Inter-Asterisk eXchange) application. It is used for making VoIP calls from an Asterisk PBX. The current version must be installed from source files. See the website for download and installation instructions, or see this Ubuntu Launchpad site.

OpenSIPS / OpenSER (SIP server)

OpenSIPS is an open-source SIP server that allows connections to be made through the Internet for VoIP, IM, and other communications protocols. While there are many public SIP servers, these are subject to spoofing and other "impersonation" problems. A company may wish to host its own SIP server to avoid the problems inherent in public services whose trustworthiness can not be determined. OpenSIPS is the successor to OpenSER (which is the version in the repositories). Install OpenSER 1.3.2 from the repositories:

sudo apt-get install openser

Alternately, the newest version of OpenSIPS can be downloaded as a .deb package from the website and installed. Installation and usage instructions are on the website.


Telepathy is a flexible, modular communications framework that enables real-time VOIP/chat communication via pluggable protocol backends (for protocols such as Jabber/XMPP/Google Talk/Jingle, link-local XMPP, SIP, MSN, Yahoo/AIM and IRC). Telepathy is a communications service that can be simultaneously accessed by many client applications (primarily Empathy), using QT4, Glib, and GtK libraries.

  • A version for the Gnome desktop (telepathy-gnome) is available. Install:
sudo apt-get install telepathy-gnome
sudo apt-get install kde-telepathy

Web meetings

Web meeting software allows video conferencing among many clients, with one server as host.


BigBlueButton is a free open source chat/video/audio and desktop sharing platform similar to GoToMeeting, WebEx, DimDim and similar products. Developed by GoogleCode, it utilises all open-source modules. A Moodle plugin is also available. See these installation instructions and these additional detailed instructions.


WebHuddle is a free, open source Java-based browser client (and server) for web meetings. To install the server, first install pre-requisites, including Java, JBOSS Application Server, and xvfb.

sudo apt-get sun-java6-jre jbossas4 xvfb

For more details on setting this up in (K)Ubuntu, see this.


TeamViewer is a proprietary cross-platform package that enables up to 25 participants to share a desktop for online meetings and provides a mechanism for users to control a PC's desktop remotely. Presentations can be viewed through most Internet web browsers, as well. A free .deb package can be downloaded here.


  • An interesting perspective on Internet privacy techniques can be found here.
  • Message encryption does not protect email file attachments. It is important to encrypt files that are meant to be sent as attachments as well. Any file encrypter (used for encrypting files on disk) can be used (such as ccrypt, TrueCrypt, or EncFS), but a different encryption tool / password should be used for attachments than the one used for private encryption of important files on the hard drive.

Text obfuscation

Companies routinely monitor the email and IM of its workers, governments of countries (even those founded by intellectuals and "revolutionaries" like Thomas Jefferson, who advocated strong privacy rights) routinely spy on its own citizenry, and even ISPs monitor unencrypted internet traffic for their own entertainment (I have personally watched this happen). Due to the volume of email and texts over the internet, word recognition algorithms are generally required in order to accomplish meaningful data-mining of text messages.

For purposes that do not require encryption (but for which there is a desire to limit the text data-mining techniques commonly used today), a few methods are available (but not foolproof).

  • One method of text obfuscation is to translate your article into another language (using Google Translate, for example, or Babelfish (now owned by Yahoo and without SSL encryption available), or Bing Translator (owned by Microsoft and without SSL encryption available) -- or even all three in series) and then to translate it back. This introduces random grammar, word choice, and spelling errors that obscures both the writing style of the original author and sometimes the text to the point of poor recognition by text-mining scanners. The more languages into which the message is serially translated, the greater the unrecognizability.
  • Anonymouth is a Java-based project for anonymizing writing styles (in English). Also see here.


FauxCrypt is a small program with an alhroitgm for modifictaion of a planitext documnet (written in English) taht laeves it gneerally raedable by a person but not raedily saercehd or idnexed by macihne. the alhroitgm empyols a dicitnoary subtsituiton of selected wrods, and an obfusctanig trnasposition of lteters in ohter wrods. the obfusctaion is dseigned to laeve the wrods udnertsnadable, aghtuolh tehy are badly slelpde. fauxcrypt is fere, open suorce sfotwaer, with suorce code available. Downloads are available at the website.

  • Download the Linux binary:
  • To convert a text file to a faux-encrypted text file:
fauxcrypt <input.txt> <output.txt>

Message and file encryption

PGP (Message Encryption)

GnuPG is the free open source implementation of the OpenPGP standard for PGP. It is a tool to encrypt your messages (such as email) to be unlocked only by someone who has a key to unlock it. While gpg is the default OpenPGP tool for command-line usage, gpg2 is the utility generally used by GUI frontends.

Enigmail with Thunderbird

By far the easiest method for encrypting email is using the Enigmail add-on for the Thunderbird email client. It creates PGP key pairs, stores and retrieves keys from keyrings, and encrypts and decrypts messages automatically.

Kleopatra (Cryptography and Certificate Manager)

Kleopatra is a certificate manager and a universal crypto GUI for KDE. It supports managing X.509 and OpenPGP certificates in the GpgSM keybox and retrieving certificates from LDAP servers. Install:

sudo apt-get install kleopatra
  • Create a new OpenPGP keypair:
K menu -> Utilities -> Kleopatra -> File -> New Certificate... -> Create a personal OpenPGP key pair


KGpg is the GUI for KDE to manage the key pairs and other options of GnuPG. It has fewer options than Kleopatra. Install:

sudo apt-get install kgpg

PGP Troubleshooting

If KGPG or Kleopatra gives an error, it is because of a problem with settings in the gpg.conf configuration file ( ~/.gnupg/gpg.conf). Edit the file (using either ~/ or /home/user/ ):

kate /home/user/.gnupg/gpg.conf

Comment out the two lines at the bottom:

#debug-level basic
#log-file socket:///home/user/.gnupg/log-socket

scrypt (Message Encryption)

scrypt encrypts / decrypts messages with a strong algorithm. Using a 10-character password combining random alphanumeric and special characters, an enormous amount of computing power is required to decode messages by someone that does not have the password. See the website for usage parameters. Install:

sudo apt-get install scrypt

bcrypt (Message Encryption)

bcrypt encrypts / decrypts messages with a strong blowfish algorithm. It is also able to overwrite the original message with a garbage-appearing replacement, further obscuring traces of the original message. See the website for usage instructions. Install:

sudo apt-get install bcrypt

File archival and encryption

Archives with Passwords

EncFS (File and Disk encryption)

EncFS is a free, open-source tool to encrypt files and store them in a secondary directory. See the Wikipedia article. Additional installation steps can be found on Ubuntu Forums. Install:

sudo apt-get install encfs libpam-encfs
Dolphin -> Settings -> Configure Dolphin... -> Services -> Download New Services...
-> Search: KDE Service Menu EncFS -> Install
  • KEncFS is a KDE frontend for EncFS.
  • A Gnome-based front-end named Cryptkeeper is available:
sudo apt-get install cryptkeeper

ccrypt (File and Attachment Encryption)

ccrypt is a command-line utility to encrypt files using the AES encryption algorithm with a password. Install:

sudo apt-get install ccrypt
  • Encrypt a file:
ccrpyt test.odt
which will yield the encrypted file test.odt.cpt after prompting for a password
  • Decrypt a file:
ccrypt -d test.odt.cpt
  • Several available GUIs for ccrypt are listed here.

TrueCrypt (File and Attachment Encryption)

TrueCrypt is a free, open-source application that allows encryption of files using a 256-bit AES encryption algorithm with a password. Download and Linux installation instructions are here.

Disk and Storage Encryption

Passwords and file authentication

Random password generator

  • Pwgen is a command line utility to generate a block of random 8-digit alphanumeric passwords. Run it from Konsole (in Kubuntu) or Terminal (in Ubuntu). Install:
sudo apt-get install pwgen
  • Run pwgen:
  • UUIDgen is a default utility to generate a random UUID (using only hex-digits). Run:

The random UUID can also be used as a 32-digit password, if desired.

Password checker and enforcement

John the Ripper is a free open source password cracker that uses a dictionary of over 4 million commonly used passwords in many languages. Because this tool is widely available, it is useful for scanning and securing your own LAN and computers for password strength. Install:

sudo apt-get install john
  • Passwdqc is a module to enforce password strength. Install:
sudo apt-get install passwdqc


  • To check the MD5 sum of a file, use this command in the command line:
md5sum filename
  • There are several Dolphin service menus to add / check md5sums (and other types of checksums) for files, such as "Check md5sum within Dolphin", "MD5 verify", and "Checksum". Select and install:
Dolphin -> Settings -> Configure Dolphin... -> Services -> Download New Services... -> Search: md5

Web browsing

Web tracking, scripts, and advertisements are extremely intrusive on the Internet. A dossier of your online habits is created by a multitude of services, including every major portal such as Google and Yahoo, as well as a variety of tracking services on the Internet. This is accomplished through the use of the "cookies" in your browser and by a variety of web elements (sometimes called "web beacons") embedded on the web pages you visit. Your behavior is monitored and correlated by recording the IP address of your computer (even when you turn off the cookies in your browser). It is highly recommended to configure your web browser to erase your cookies and history every time the web browser is closed; otherwise, every website you subsequently visit can instantly see the long list of recent websites you have visited. In Firefox, for example, cookies can be accepted for the current session but erased upon closing:

Firefox -> Edit -> Preferences -> Privacy -> History -> Firefox will: Use custom settings for history
-> Always use private browsing mode (or customise the settings to your desired level of privacy)
  • In addition, both Adblock Plus and NoScript are highly recommended as plug-ins for Firefox (and other Gecko-based browsers) to limit exposure to undesirable web elements, scripts, and tracking mechanisms.

DNS Servers and Search engines

  • Most users rely on the DNS server of their ISP (Internet Service Provider). DNS queries can be recorded, however, and theoretically correlated by an ISP to the data traffic to/from a user's IP address serviced by that ISP. A somewhat less trackable solution is to use a DNS service that does not belong to your ISP. This can belong to another commercial ISP or to a third party service such as OpenDNS, Comodo, Google (though slightly less secure due to Google's own tracking mechanisms), another free DNS service, or (for maximum security) a publicly-available international DNS server. For example, a Verizon customer could use the AT&T DNS servers or the OpenDNS servers. An AT&T customer could use one of the Verizon servers or the Comodo servers. It is important to use a reliable DNS provider, however, as man-in-the-middle DNS redirection and DNS cache poisoning attacks are increasingly common. Stick to one of the major DNS services (just not your own ISP's DNS service). It is important to note that starting Feburary 25, 2013, 5 major ISPs (Internet Service Providers) in the US (Comcast, Verizon, AT&T, Time Warner Cable, and Cablevision) have agreed to IP address recording and reporting (to the CCI) on behalf of the MPAA and RIAA. If using one of these ISPs, take extra efforts to ensure your privacy. (It is also important to note that major ISPs now often censor content using filters such as Cleanfeed. Choose your DNS and search providers carefully.)

The DNS server setting can be changed in the router's settings (recommended) or individually for each computer. If changing on an individual computer, use the Network Manager or Wicd settings, or if using a static IP address with manually configured settings, add a line to /etc/network/interfaces with a list of the desired dns-nameservers at the end of the iface stanza so that the file resembles:

auto eth0
iface eth0 inet static
  • Many search engines track your search requests (notably Google, Bing, and Yahoo) and keep logs of the searches they receive from your IP address. is a filtered search engine that has made its reputation not only by promising not to track searches, but also by providing a secure (encrypted), Tor-capable and anonymized search portal. Point your browser to (It can be used with Tor turned on.) Another search engine with similar privacy claims is Startpage / Ixquick.
  • Many censorship/filtering/tracking techniques (that use deep packet inspection) cannot be used with secure (SSL/TLS encrypted) websites (denoted by https:// ). Use them whenever possible. For example, use the secure Wikimedia portal for Wikipedia (and other Wikimedia services) instead of the insecure portal(s).
  • Many websites keep logs of referring http headers (which can be correlated with cookies to track your browsing activities). To turn off the passage of referral headers in Firefox, see this info.

Changing a MAC address

The MAC address of your network interface card is the "fingerprint" of your network connection. It is not possible to hide the MAC address and many tracking methods now use the MAC address to record user habits. (See this informative blog post.) To combat this, it is possible to change ("spoof") your apparent MAC address using software. It is important to remember, however, that it is generally the MAC address of the router (not computers on a LAN) which is displayed to the Internet. If you change the MAC of your computer but not the MAC of your router, you will gain nothing. Be sure to change both frequently (but most importantly that of the router).

  • It is possible to set the MAC address to a random selection in the Network Manager configuration:
Network Manager -> Manage Connections... -> connection -> Edit... -> Ethernet -> Cloned MAC Address -> Random -> Ok
  • Macchanger is a utility to change a MAC address. Install:
sudo apt-get install macchanger

Certificate verification

  • is a free certifying authority that maintains weak certificates that are recognized by many open source operating systems, but not by Firefox or most browsers. (For browsers that do not include recognition, certificates appear to be self-signed certificates.) While Debian incorporates's root certificate by default, Ubuntu derivatives do not (Canonical was originally founded with funds earned from Thawte, a certifying authority founded by Mark Shuttleworth.)

Tor (Network privacy)

Tor is a project to allow privacy while using the Internet and to limit usage tracking. It routes your traffic through several anonymous nodes, so that your usage appears to come from an IP other than your own. (There are always risks when using the Internet that even Tor can not help with, though. Read this.) Using Tor can slow down your Internet usage significantly, depending on how much traffic is being passed through the Tor network (routine file-sharing or large downloads will also significantly reduce performance of the Tor network.)

  • Install Tor by following the instructions here. Note that the instructions require port 11371 on your firewall to be open to use the gpg keyserver (and download the key for the debian package). Then see the Tor installation guide for details.
  • By default Tor (once it is running) acts as a Socks5 proxy on port 9050. To send traffic from any application through Tor, configure the settings of that application to use a socks5 proxy on port 9050.
  • Also see these additional tips.

Vidalia (Tor interface)

Vidalia is the recommended Qt4-based GUI frontend for Tor. If not installed with Tor, install:

sudo apt-get install vidalia

Tork (KDE Tor interface)

TorK is a KDE interface for Tor that relied on the older Qt3 platform. It is no longer included in the (K)Ubuntu repositories. However, if desired it can be installed (along with the older Qt3 libraries). See this section.

Using Tor with Firefox and Thunderbird

Recent versions of Firefox and Thunderbird allow direct use of Tor as a Socks5 proxy, both for traffic and DNS resolution. See this section for information on configuring this for Firefox and this section for information on configuring this for Thunderbird.

Using Tor with other programs

  • Other programs can also be used with Tor as a proxy. For an overview see these tips.


  • Tails is a free, complete GNOME-based Debian Linux operating system with Tor enabled by default. Iceweasel (the free Debian version of Firefox) and other Internet tools are cryptographically-enhanced, and, for privacy, browsing and other Internet usage traces are minimised. Components include LUKS for disk-encryption, Nautilus Wipe for erasing disk traces using the Nautilus file manager, KeePassX for password generation and encyrypted password storage, the Firefox plug-in HTTPS Everywhere to ensure the usage of encrypted website portals, and Off-the-Record_Messaging for Internet Message encryption, among others.

Proprietary Extras

Proprietary software helps you maximize your Internet experience, but is not open source. The software available includes Multimedia Codecs, Java Runtime Environment, and plug-ins for Firefox and Konqueror.

Restricted Extras

The Kubuntu Restricted Extras will install Adobe Flash Player, Java Runtime Environment (JRE) (sun-java-jre) with Firefox and Konqueror plug-ins (icedtea), a set of Microsoft Fonts (msttcorefonts), multimedia codecs (w32codecs or w64codecs), mp3-compatible encoding (lame), FFMpeg, extra multimedia codecs for K3b, the package for DVD decoding (libdvdread3, but see here for info on libdvdcss2), the unrar archiver, odbc, and cabextract. It also installs multiple "stripped" codecs and avutils (libavcodec-unstripped-52 and libavutil-unstripped-49). This is a single command approach.

sudo apt-get install kubuntu-restricted-extras
You could also use Ubuntu Restricted Extras (ubuntu-restricted-extras), but it installs plugins for the Gstreamer platform (the default in Gnome) and does not install the K3b codecs, so it is not recommended.
Note: Installation only works completely and properly when done from the command-line terminal Konsole. The entire package will not usually install completely from within a Package Manager.

Java environment

  • See this section for information on installing Java or the Java Runtime Environment.

Playing DVDs

  • See this section for information on packages needed to play DVDs.

Photos and Graphics

Manage and edit your photos, create stunning 3D drawings and graphics, or convert between formats.

GIMP (Image Manipulator)

Gimp is a powerful, full-featured, free open-source graphics and image editor, similar to Adobe Photoshop.

sudo apt-get install gimp
  • There is an extra set of brushes, palettes, and gradients for The GIMP.
sudo apt-get install gimp-data-extras
  • See these instructions to create an alpha transparency layer (transparent background) for any image using Gimp.

Gwenview (Image Manipulator)

Gwenview is the quick image manipulator installed by default in Kubuntu (K menu -> Graphics -> Gwenview Image Viewer). Simple cut-and-paste, resizing, and format conversion are some of the graphics files manipulations that can be accomplished. Install:

sudo apt-get install gwenview
  • Using the Print Assistant plugin (available in KDE by installing the KIPI plugins package), multiple images per page can be printed.
Gwenview -> Plugins -> Images -> Print Assistant -> Select page layout

Krita (Painting and Drawing)

Krita is a drawing and painting program that is part of the KOffice suite of applications. It has many of the functions of Gimp. Install:

sudo apt-get install krita

Adding Text to Images with Krita

Krita -> Add Shape: Text -> (Resize and position shape box) -> Double-click on the newly created shape box to bring up the Text Tool

Dia (Diagram editor)

Dia is a free open source GTK-based diagram creation program for Gnome (but can be used in KDE). It is similar to Visio.

sudo apt-get install dia

Kivio (Diagram editor)

Kivio is an open source flow-chart and diagram creation program that is part of the KOffice Suite for KDE. It supports Dia stencils.

sudo apt-get install kivio

Karbon (Vector Illustrator)

Karbon is a vector graphics illustration application that is part of the KDE-oriented Calligra suite of office applications. Install:

sudo apt-get install karbon

Inkscape (Vector Illustrator)

Inkscape Vector Illustrator is an open source drawing program similar to Illustrator and CorelDraw.

sudo apt-get install inkscape

Digikam (Photo Organiser)

Digikam is a comprehensive open source digital photo organiser and editor for KDE. It is installed by default in Kubuntu. If not, you can install it:

sudo apt-get install digikam kipi-plugins digikam-doc

KIPI Plugins

KIPI plugins (KDE Image Plugin Interface) provides a common plugin structure for digiKam, KPhotoAlbum, Showimg, and Gwenview. Install:

sudo apt-get install kipi-plugins

Google Picasa (Photo Organiser)

Google Picasa is a photo editor and organiser similar to Digikam. It allows uploads to a Google web server for online exchange. For more info, see the Picasa for Linux FAQ. A self-installing .deb file is available at Picasa 2.7 downloads.

Accessing a digital camera from the Dolphin file manager

  • Plug in your digital camera to the USB port using the appropriate cord and make sure the camera is turned on.
  • Start the Dolphin file manager.
  • In the leftmost panel of the Dolphin file manager, mount the camera as a folder:
Dolphin -> <right-click> on the leftmost panel -> Add Entry... -> Label: Digital Camera
-> Location: camera:/
  • Now you should be able to access the contents of the digital camera as a folder.
  • It may be necessary to adjust the settings of the camera first (to be sure it is properly recognised):
K Menu -> Settings -> System Settings -> Digital Camera

OpenClipart (ClipArt Library)

OpenClipart is a utility to provide access to a large library of free PNG, SVG, and OpenOffice clipart. It includes a utility for OpenOffice Gallery. Files are installed to /usr/share/clipart. Install:

sudo apt-get install openclipart

It is also possible to only install a single collection (openclipart-png, openclipart-svg, or in case you don't want the entire collection (or the utilities). For example:

sudo apt-get install openclipart-png

Optical Character Readers

Tesseract (Optical Character Reader)

Tesseract is a command-line optical character reader. Install:

sudo apt-get install tesseract-ocr

Ocropus is a document-analysis engine that uses Tesseract. Install:

sudo apt-get install ocropus

Cuneiform (Optical Character Reader)

Cuneiform is an optical character reader. Install (multiverse repositories must be enabled):

sudo apt-get install cuneiform
  • Pdfocr is a tool to use Cuneiform for OCR and then to add the resulting text file layer back to the PDF file to make it searchable.

YAGF (Cuneiform/Tesseract GUI)

YAGF is a Qt-based GUI for Cuneiform, Tesseract, and/or XSane. Installation can be from a Debian (.deb) package from GetDeb (see these instructions as well) or by compiling from source downloaded from the original site. (Qt 4.7 or later, already part of Precise, is required on your system).

Scanning Utilities

Xsane (Scanning utility)

Xsane is a full-featured scanning utility. Install:

sudo apt-get install xsane


Some users report a "SANE: Error during device I/O" error with HP multifunction printers. See this bug report. If experiencing this problem, verify it in the logs:

sudo nano /var/log/User.log 
If the logs include a line that references the file "", such as in this example:
scanimage: scan/sane/soapht.c 67: unable to load restricted library: cannot open shared object file: No such file or directory
then try creating the following symlink to fix the issue:
sudo ln -s /usr/lib/ /usr/lib/

Simple Scan

Simple Scan is a straightforward Gnome-based scanning utility that uses the same SANE backend as Xsane. Install:

sudo apt-get install simple-scan


Skanlite is a lightweight KDE4-based scanning utility included by default in many KDE-based systems. If not, install:

sudo apt-get install skanlite

Gnome-Scan (Scanning Utility)

Gnome-Scan is a simple utility for scanning. Install:

sudo apt-get install gnomescan


VueScan is a proprietary cross-platform scanning program that can be installed in Linux. Some users prefer it for scanning film on older scanners. See these installation instructions.

Screencasts and Desktop Recording

Several utilities allow you to capture your desktop (and then create a screencast from it).

FFMPEG with x11grab

FFMPEG includes x11grab, a module for screen capture. This method gives the best results for screencaptures and is one of the most flexible methods, allowing a variety of audio inputs and audiovisual output formats. FFMPEG must be installed first (sudo apt-get install ffmpeg). See here for more details. In brief, an example command to capture to an .avi file using the X264 video codec and lossless 16-bit sound would be:

ffmpeg -f alsa -ac 2 -ab 192k -i pulse -f x11grab -s 1024x768 -r 30 -i :0.0 -acodec pcm_s16le -vcodec libx264 -vpre lossless_ultrafast -threads 0 /home/user/capturedvideo.avi

recordMyDesktop (Desktop Session Recording)

recordMyDesktop is a desktop recording utility, which has both pyGTK and a pyQT4 GUI frontends available. Recordings are saved in Theora video/Vorbis audio files. Only the Gtk version is available from the repositories (but it works well with KDE/Kubuntu nevertheless). To install with the gtk GUI:

sudo apt-get install gtk-recordmydesktop

Using recordMyDesktop with PulseAudio

  • If you have not installed Pulse Audio Controls and Volume utility, they are useful for monitoring your pulse audio devices:
sudo apt-get install pavucontrol paprefs padevchooser
  • Change the recordMyDesktop settings so that the capture device is the one you select through pulse audio:
gtk-recordMyDesktop -> Sound Quality (ticked) -> Advanced -> Sound -> Device: pulse

This sets recordMyDesktop to use whichever input device(s) are selected through pulse audio. If you have several input devices, all of them will be recorded. This is an easy way to mix inputs.

Istanbul (Desktop Session Recording)

Istanbul is a desktop recorder for the Gnome desktop. It records your session into an OGG Theora video file.

sudo apt-get install istanbul

xvidcap (Desktop Session Recording)

xvidcap is a utility to capture your desktop as a video. Install:

sudo apt-get install xvidcap


CamStudio creates a virtual webcam that can mix several video sources together and can be used for live broadcasting. See the website for installation instructions.

Wink (Presentation Editor)

Wink is a open source tutorial and presentation editor. It allows you to capture screenshots and use them for presentations. Download the .tar.gz source package, install using these instructions, and follow one of the user guides.

wget -O winkcurrent.tar.gz

Note: Wink is a 32-bit application. If you are running a 64-bit system, make sure ia32-libs is installed first:

sudo apt-get install ia32-libs

Freeseer (Presentation capture)

Freeseer is a utility to capture output from a projector or other display device (including another computer). See these installation instructions.

Screencast Demos

KSnapshot (Screen Capture)

KSnapshot is the default screen capture program included with Kubuntu. Run:

K menu -> Graphics -> KSnapshot Screen Capture program

The Print Screen key will run Ksnapshot and capture the whole screen, by default.

Online content capture and streaming

  • See this section for packages to capture or stream content online (over the Internet).

Video Disk Recording (Personal Video Recorder)

  • See this section for information on disk recording from TV cards.

Video Applications

Capture, record, edit, and convert video using these applications.

  • Also see the list of Media Players.
  • Also see the Audio/Video Conversion section as well as these tips for video conversion techniques.
  • Also see this section for information on packages needed to play DVDs.
  • Also see this list of open source video applications.
  • Trivia: The movie Avatar was created at Weta Digital on a super-computer comprised of 4,000 servers running Kubuntu Linux, co-ordinated by the previously open-source Sun Grid Engine (no longer available).


OpenShot is a GTK-based non-linear video editing suite for Linux. Install:

sudo apt-get install openshot

PiTiVi (Non-linear Video Editing Suite)

PiTiVi is a simple, limited-capability open source video editor that will be the default in newer versions of Ubuntu. It uses the GStreamer/Fluendo framework. Install:

sudo apt-get install pitivi

Avidemux (Video editor/processor)

Avidemux is a free, GPL-licensed open source cross-platform video editor and processor. Using mencoder as a backend, it allows cropping, trimming, special effects, and conversions between many filetypes (MPG/DVD, AVI, MP4, ASF). Install the GTK-based version:

sudo apt-get install avidemux

Kino (Non-linear Video Editing Suite)

Kino is a widely used GUI-based non-linear video editing suite for Linux. It imports video files into (and then uses) the DV (Digital Video) format for editing.

sudo apt-get install kino mjpegtools

KdenLive (Non-linear Video Editing Suite for KDE)

Kdenlive is a GUI-based non-linear video editing suite for KDE based on FFmpeg and the MLT video framework. It has tools for DV, video4linux, and screen capture. Install:

sudo apt-get install kdenlive mjpegtools

Cinelerra (Non-linear Video Editing Suite)

Cinelerra Community Version is a complete high-end open source video editing suite that is a derivative of a similar commercial system. Follow the installation instructions for Ubuntu.

LiVES (Video editor/processor)

LiVES is a free, GPL-license open source video editor and processor that is promoted as being useful for VJ editors. Install:

sudo apt-get install lives


OpenMovieEditor is a free, open source movie editing program for basic movie making. Install:

sudo apt-get install openmovieeditor


Blender is a free GPL-licensed 3D graphics and modeling tool that has been used in several animation projects. Install:

sudo apt-get install blender

Stopmotion (Animation)

Stopmotion is an open-source program for creating stopmotion animation. Install:

sudo apt-get install stopmotion

Animata (Animation)

Animata is an interactive-animation (similar to Flash video) design platform that uses the fltk libraries. It is built from source using the SCons package (which is a make replacement).

  • Make sure you have the usual components for compiling from source code installed:
sudo apt-get install ia32-libs build-essential linux-headers-$(uname -r) gcc cmake gettext
  • Install the fltk and scons libraries:
sudo apt-get install libfltk1.1 libfltk1.1-dev scons
  • See these details. Download the Animata source code, extract, and then from the directory into which Animata was extracted run scons:

Webcam Applications

  • To display your webcam on your screen, take photos from it, or to create other effects, install one of these webcam applications:
  • Cheese (sudo apt-get install cheese) is a Gnome-based webcam application with many options and a re-sizable window.
  • Kamoso (sudo apt-get install kamoso) is a KDE-based webcam application.
  • Camorama (sudo apt-get install camorama) is a Gtk-based webcam application that has been around for years.
  • Xawtv (sudo apt-get install xawtv) is a Gtk-based application. Because the Xawtv window can be arranged so that only the webcam image is shown, it is my favorite webcam display for screencasts. (Click on "X" in the window bar -> Advanced -> No Border (ticked) .)

Any of these applications can be used in either Ubuntu or Kubuntu.

Video Disk Recording (VDR)

  • MythTV has one of the leading capabilities for video disk recording.
  • XBMC has an integrated frontend using the vdr backend.


  • VDR is a long-standing video disk recording app (backend) for Linux. Also see these instructions (mostly in German) for (K)Ubuntu. Install:
sudo apt-get install vdr vdr-dev
  • TVHeadend has both a backend and frontend available for video disk recording. See the website for details.

Audio Applications

  • See this section for a list of audio Media Players.
  • See this section for Audio/Video conversion, including CD/DVD ripping and burning.

Audacity (Audio Editor and Recorder)

Audacity is the leading cross-platform free open source (GPL-licensed) audio recorder and editor. It can be used to record, splice, edit, and manipulate sound files similar to tools found in recording studios. Install:

sudo apt-get install audacity

Ardour (Digital Audio Workstation)

Ardour is a free, GTK-based professional-grade digital audio workstation for high end audio manipulation and mixing. Install:

sudo apt-get install ardour

Rosegarden (Digital Audio Workstation)

Rosegarden is a midi/audio interface for synthesizers, as well as a digital audio studio for recording, editing, and notating music. It is often used in combination with Audacity. Install:

sudo apt-get install rosegarden

Hydrogen (Drum synthesizer)

Hydrogen is an advanced drum machine for Linux. Install:

sudo apt-get install hydrogen

EasyTag (ID3 editor)

EasyTag is a utility for editing the ID3 tags of mp3 and other music files. Install:

sudo apt-get install easytag
  • Run:
Applications -> Sound & Video -> EasyTAG
  • Rename files using Artist and Track title:
EasyTAG -> Scanner -> Rename File(s) and Directory...

Use %a - %t in the popup "Tag and Filename Scan" box to rename the files using the Artist - TrackTitle naming convention. Then click on the green scanner box in the popup ("Open scanner window / Scan selected files") to build a database of the changes (or EasyTAG -> File -> Scan File(s) ). To save the changes (and actually rename the files), "Save Files" using the FloppyDisc icon in the top toolbar (or EasyTAG -> File -> Save File(s) ).

This can be done in batch mode by highlighting numerous files in the "File Name" pane.

PuddleTag (ID3 editor)

PuddleTag is a comprehensive utility for editing the ID3 tags of mp3 and other music files. Install:

sudo apt-get install python-qt4 python-pyparsing python-mutagen python-configobj python-musicbrainz2
wget -O puddletag_current.deb
sudo dpkg -i puddletag_current.deb

UbuntuStudio (Ubuntu distribution customized for multimedia editing)

UbuntuStudio is an official derivative of Ubuntu that pre-packages many multimedia editing packages. (Each of the packages can also be installed independently.) See the website for a full list of the premier audiovisual software packages available for Ubuntu Linux.

sudo apt-get install ubuntustudio-audio
sudo apt-get install ubuntustudio-video
sudo apt-get install ubuntustudio-graphics

Audio / Video conversion

Here is a nice review of some of the applications that enables conversion and handling of these types of files. Some specific examples and suggestions are here.


Mencoder is part of the MPlayer set of libraries (that also uses several of the FFMPEG libraries) for audio/visual conversion, including from DVD (.vob) format to other video formats. Some examples of usage are here.

FFMPEG video / audio conversion

FFMPEG is the swiss-army knife of video and audio format conversion. It succeeds when no other program can. It is free and open source. If it not yet installed on your system as part of another package (it is used by many video/audio editors), then install it:

sudo apt-get install ffmpeg

For examples and further information, see this section.

  • FFMpeg requires that multiple restricted extra codecs be installed. This can be done in a single easy step from the command-line Terminal:
sudo apt-get install kubuntu-restricted-extras

WinFF is a free, GPL-licensed open source GUI frontend for FFMPEG. Install:

sudo apt-get install winff xterm


Menu -> Applications -> Sound & Video -> WinFF
Join video segments

Individual video segments (MPEG-2, for example) can easily be joined:

cat samplevideo1.mpg samplevideo2.mpg samplevideo3.mpg > samplevideo123.mpg
You can then write the resulting MPEG-2 file to a DVD and play it in most DVD players.
Split a file into segments

Any file can be split into segments using the Linux command:

split -b 1440k my_big_file

which will split my_big_file into equal segments of size 1440 kb.

Save any streaming Flash video

An easy way is to install the Video DownloadHelper plug-in for Firefox.

Otherwise, most Flash videos download to the /tmp directory while you watch the video, creating a randomly-named video file there (such as Flashuh4G6s). When you close the webpage, this file in the /tmp directory will be erased. After the entire video has downloaded, but before you close the webpage, copy that file (such as Flashuh4G6s) to your home directory (where it will not be erased). Of course, for this to work, you must change your Flash (or Gnash) settings to allow an unlimited buffer. While watching your Flash video, right click to bring up the Flash -> Settings window. Set the Buffer to "Unlimited."

Once you have copied the file, rename it appropriately with the .flv added to the filename. You can then watch it using VLC or Mplayer.

Here is another method that involves making a symbolic link.

Save rtmp / flv streams

flvstreamer is a command-line application to dump rtmp streams. Install:

sudo apt-get install flvstreamer

Example of usage:

flvstreamer -r "rtmp://host/dir/file.flv" -o filename.flv

If you see the following the "WARNING: Download may be incomplete, try --resume!" message, try to use the --resume option:

flvstreamer -r "rtmp://host/dir/file.flv" -o filename.flv --resume

Convert Flash video audio to mp3

Once you have downloaded flash video content (.flv) from the Internet (using the Video DownloadHelper plug-in for Firefox, for example), the audio component can be converted to an .mp3 file. (This will work for any type of video file, not just Flash.) For details, see this section.


2ManDVD is a GUI utility for creating DVD videos. It is the successor of ManDVD. Choose the version for your architecture and install it from the 2ManDVD website. Click on the download link and select to open it with the GDebi Package Installer (default). (If you have previously installed ManDVD you must uninstall it first.) For a usage tutorial, read this 2ManDVD guide.


Menu -> Applications -> Sound & Video -> 2ManDVD


DeVeDe is a program to create video DVDs and CDs suitable for home players (i.e. VCD, sVCD or CVD) from any source video file that is supported by MPlayer. Choose the version for your architecture and install it from the DeVeDe website. Click on the download link and select to open it with the GDebi Package Installer (default). For a usage tutorial, read this DeVeDe guide.


Menu -> Applications -> Sound & Video -> DeVeDe


ManDVD is a QT-based DVD authoring tool which accepts several different file types as input. Install:

sudo apt-get install mandvd xine-ui

DVD Author

  • For more details on creating a "commercial" (.vob) format DVD-video, see this section.
  • DVD author allows you to create menus and format your MPEG-2 videos onto a DVD disc so that you can play it in a commercial DVD player. DVD Author is a command line tool, but several GUI's exist. Install:
sudo apt-get install dvdauthor
  • To prepare an audiovideo file (e.g. an .avi file) for conversion to DVD (.vob) format authoring (using a tool like dvdauthor), it is best to convert the file to a format with MPEG-2 (avcodec) video, AC3 (lav) audio, and the MPEG-PS (A+V) container as an intermediate first. This can be done using the GUI utility Avidemux, for example. Here is the Avidemux tutorial for doing this. Details are also found here.
  • QDVDAuthor is a Qt-based GUI for DVD Author. A package for Precise does not exist, but the Maverick package can be used.
  • Enable the Maverick multiverse repository temporarily by adding it to the Synaptic Package Manager Origin of Packages ("Other" software):
Menu -> System -> Synaptic -> Settings -> Edit Origins -> Software Sources: Other Software -> Add...
deb maverick multiverse
  • From the Get and Remove Software menu (of Synaptic), install the qdvdauthor package (and the qdvdauthor-common package if it is not automatically installed as a dependency).
  • Once the download/installation is complete, disable the Maverick multiverse repository (to prevent conflict with other Precise packages).
  • Download and install the addons:
cd /tmp
wget -O masks.tar.bz2
wget -O buttons.tar.bz2
wget -O alpha_trans.tar.bz2
cd /usr/share/qdvdauthor/
sudo tar -xjf /tmp/masks.tar.bz2
sudo tar -xjf /tmp/buttons.tar.bz2
sudo tar -xjf /tmp/alpha_trans.tar.bz2 


Menu -> Multimedia -> QDVDAuthor

Follow instructions in the Quick-Start Guide:

QDVDAuthor -> Help -> Quick-Start Guide

For a tutorial on authoring DVDs, see this guide.

Other DVD authoring programs

There are several other DVD authoring programs. For additional information see the Ubuntu Community pages. Packages include:

  • Bombono, a GTK-based, GUI DVD authoring program. Install (requires multiverse repositories to be enabled):
sudo apt-get install bombono-dvd

KMediaFactory is a fast and simple KDE-based DVD authoring frontend for dvdauthor. (The DVD folders can then be burned to disc using K3b.) Install (requires multiverse repositories to be enabled):

sudo apt-get install kmediafactory
  • DVDStyler is a full-featured, cross-platform DVD-authoring frontend. Install:
sudo apt-get install dvdstyler


ToVid is a collection of tools to create a DVD from a number of different video formats. A GUI is available. Install:

sudo apt-get install tovidgui tovid

Ripper X CD Ripper/Encoder

Ripper X is a GTK-based (i.e. Gnome) open source utility to rip CD audio tracks to OGG, MP3, or FLAC formats. It supports CDDB lookups.

sudo apt-get install ripperx

Asunder CD Ripper/Encoder

Asunder is a GTK-based open source CD ripper/encoder which saves to Wav, MP3, OGG, FLAC, or WavPack. Self-installing .deb packages are available here.

Audex CD Ripper/Encoder

Audex is a port to KDE4 of the KAudioCreator package used in KDE 3. It can create output for LAME (MP3-compliant), OGG Vorbis (oggenc), FLAC and RIFF WAVE. Install:

sudo apt-get install audex

Gnac (GNome Audio Converter)

Gnac (GNome Audio Converter) converts between all GStreamer supported audio formats. It is not yet part of the standard repositories. See these installation instructions.

SOX (encodes/decodes audio)

SoX is a command-line utility to convert audio formats. See this usage guide. Install:

sudo apt-get install sox


Install MP3 support for SoX
  • Install the MP3 libraries (if not already installed):
sudo apt-get install libmp3lame0
  • For simple conversions, I have found FFMPEG to be easier, and FFMPEG already has mp3 support. Example:
ffmpeg -i audiofile.m4a -ab 128k -ac 2 -ar 44100 audiofile.mp3
where -ab specifies the bit rate, -ac specifies the number of channels (in this example 2-channel stereo), and -ar specifies the sampling frequency.

CDs and DVDs

K3b (CD/DVD burner)

K3b (KDE Burn Baby Burn) is the default KDE CD and DVD burning utility included in Kubuntu. This includes the ability to burn VideoDVD's. K3b is included by default in most Kubuntu installations. If not, install:

sudo apt-get install k3b

Install MP3 support for K3b

Due to licensing requirements, mp3 capabilities for K3b must be installed separately. (Note: this package is automatically installed as part of kubuntu-restricted-extras). Install the libk3b3-mp3 package:

sudo apt-get install libk3b6-extracodecs

If it still does not work then:

sudo apt-get install lame

Normalize audio levels

Volume normalization for an audio CD requires a separate external plugin. Install:

sudo apt-get install normalize-audio

Then select normalization:

K3b -> Project -> Properties -> Advanced -> Settings:Normalize volume levels (ticked)
  • Recent versions of k3b have a bug that doesn't properly recognise normalize-audio. See these tips (or these tips) for a workaround.

Burn a DVD using K3b

  • Video files in containers such as AVI, MP4, WMV, or FLV should be written to disk as data files using the "New Data Project" option.
  • If you have folders named VIDEO_TS and AUDIO_TS (as is used with the VOB format found on many commercial DVDs), burn them to DVD using the "New Video DVD Project" option:
K3b -> New Project -> New Video DVD Project

If the size of the VIDEO_TS and AUDIO_TS folders is greater than the capacity of the disk to which you wish to burn them, you can use k9copy to shrink the data.

Rip an audio CD using K3b

  • K3b can be used to rip an audio CD (.cda) to another audio format (such as .mp3):
K3b -> More actions... -> Rip audio CD -> Start Ripping -> Settings: Filetype: Mp3 (Lame) -> Start Ripping
  • The default bitrate for MP3 ripping is 128 Kb. To change to a different bitrate for ripping, edit the k3b settings:
K3b -> More actions... -> Rip audio CD -> Start Ripping -> Settings: Filetype: Mp3 (Lame) -> Wrench icon
Configured encoders: Mp3 (lame) -> Edit... -> Command
  • Change the default command string from:
lame -r --bitwidth 16 --little-endian -s 44.1 -h --tt %t --ta %a --tl %m --ty %y --tc %c --tn %n - %f
lame -r --bitwidth 16 --little-endian -s 44.1 -b 192 --tt %t --ta %a --tl %m --ty %y --tc %c --tn %n - %f
where 192 is the desired constant bitrate.

K3b Troubleshooting

Cdrecord error 254

This problem usually occurs when a large amount of data (around 3.5 GB or larger) is being written to a DVD-R. The wodim 1.11 (there seem to be no problems with older versions of wodim such as v1.9) and genisoimage packages from the cdrkit (or one of their dependencies) used by Debian-based distributions (including (K)Ubuntu) may be dysfunctional and may generate a message similar to "cdrecord error 254" error while burning using K3B. Alternately, any file(s) written above the 3.5 GB limit may be improperly written to DVD. This problem effectively limits DVD-R burning to less than 3.5 GB.

  • Solution: Do not use the cdrecord (which includes wodim) for writing DVD disks that contain more than 3.5 Gb data. Instead, use growisofs:
K3b -> Burn -> Writing app: growisofs -> Writing mode: DAO
This has successfully allowed me to burn DVDs with more than 3.5 Gb data.

Note: If the "growisofs" option is not visible, then change the K3b settings to allow Advanced GUI settings:

K3b -> Settings -> Configure K3b... -> Advanced -> Show advanced GUI elements (ticked)
  • Another (difficult) suggested solution entails installing a current copy of cdrtools manually. One location for obtaining cdrtools .deb packages is this Launchpad PPA repository. Download and install the cdrecord .deb package for your OS type (i386 or amd64). mkisofs and cdda2wav should be installed as well, as indicated here. Note: The solution here has not been verified, and the problem may lie in a different module than cdrkit, such as libdvdread. Take these suggestions with a grain of salt. See this explanation, and this Ubuntu forums thread and this one.
  • Alternatively, obtain and use the older version of k3b/cdrecord/wodim (v1.9), such as used in Lucid Lynx. This is not an easy solution to implement other than by installing a standalone Lucid Lynx OS in its own small partition.
Cdrecord has no permission to open the device error

If you receive the "cdrecord has no permission to open the device" error while burning using K3B, open a terminal and type:

 sudo chmod 777 /dev/scd0
Note: replace /dev/scd0 with your own device, e.g. /dev/sr0.
Note: chmod 777 is the universal option for granting full permission to a folder. The 777 mask indicates that read, write, and execute permission is given to all users.

K9copy (DVD Ripper)

K9copy is the free open source DVD backup, copying, compression, and authoring utility that requires libdvdcss. You can easily create MPEG-2. MPEG-4, or DVD videos with this utility. For other info, see either this or this guide.

sudo apt-get install k9copy
  • See this section for tips on using k9copy with mencoder and NTFS DVDs.
  • Tips: At times you may not be able to copy your DVD directly from DVD to DVD. This may because you have a small imperfection in the DVD, or because the DVD was initially created with a non-standard burning method. There are two methods that can help solve this problem:
  • Copy the VIDEO_TS and AUDIO_TS folders from your original DVD directly to your hard drive. Then use k3b (or Gnomebaker) or k9copy to burn a DVD directly using these hard drive folders.
  • Alternatively, use k3b (or Gnomebaker) to copy an .iso image from the original DVD to your hard drive. Then use k9copy to extract from the hard drive .iso image and then burn a DVD directly from it.


Handbrake is a GPL-licensed open source tool for converting DVD to MPEG-4 (iPod format) that is an alternative to k9copy. (It can handle many DVDs that k9copy cannot.) Note that Handbrake supports X264/H.264 and MP4 video encoding but no longer supports the XVID video codec. It uses the .MP4/.M4V or .MKV containers, but no longer supports the .AVI container. However, it uses a streaming algorithm that (while slower than other methods) is compatible with a large variety of encryption techniques. (Following "ripping" from a DVD, the resulting .MP4 or .MKV file can be converted to other formats, such as .AVI with XVID, using these suggestions.) Installation is from the developmental PPA archive.

sudo add-apt-repository ppa:stebbins/handbrake-releases
sudo apt-get update
sudo apt-get install handbrake-gtk handbrake-cli

If you do not intend to use the command-line interface, you can skip handbrake-cli.

  • Alternatively, to your package manager you can add the custom repository:
deb precise main

then install the package handbrake-gtk (and handbrake-cli if desired).


dvd::rip is a DVD backup/copy program, written in GTK-based perl, that uses the transcode and ffmpeg video/audio processing and conversion tools. See the website for installation and official documentation. For other info, see this dvd::rip tutorial. Install:

sudo apt-get install dvdrip rar


Acidrip is a DVD backup/copy program, written in GTK-based perl, that uses the Mplayer and Mencoder video/audio processing and conversion tools (and therefore yields the best quality DVD rips to an .AVI file with XVID video, for example). See the website for installation and official documentation. Install:

sudo apt-get install acidrip

DVD Fab (DVD Ripper)

DVD Fab is a favoured DVD backup tool in the Windows community for today's DVD encryption methods. It must be run in Wine (since it is a Windows application). It comes as a fully featured 30-day trial, but see these instructions for fine-tuning the trial period.

DVD Playback Capability


To play encrypted DVDs, the libdvdcss2 package is essential. libdvdcss2 is a simple library designed for accessing DVDs like a block device without having to bother about the decryption. More information about this package can be found at VideoLAN.

  • Add the VideoLAN repository key:
wget -O -|sudo apt-key add -
  • Install the repository and package manually from the command-line:
sudo add-apt-repository "deb /"
sudo apt-get update
sudo apt-get install libdvdcss2
deb /
then install the libdvdcss2 package using the package manager.
  • You can install libdvdcss2 as a 64-bit .deb package (without installing VideoLAN repositories):
wget -c
sudo dpkg -i libdvdcss2_1.2.13-0_amd64.deb
or a 32-bit .deb package:
wget -c
sudo dpkg -i libdvdcss2_1.2.13-0_i386.deb
  • As of September 2013, Medibuntu is no longer maintained. Here are legacy Medibuntu instructions which will work for only a limited period more.
  • You can install libdvdcss2 as a 64-bit .deb package (without installing Medibuntu repositories):
wget -c
sudo dpkg -i libdvdcss2_1.2.12-0.0medibuntu1_amd64.deb
or a 32-bit .deb package:
wget -c
sudo dpkg -i libdvdcss2_1.2.12-0.0medibuntu1_i386.deb
  • You can also install 32 bit or 64 bit Windows multimedia codecs (if you haven't already done so using kubuntu-restricted-extras):
sudo apt-get install w32codecs
sudo apt-get install w64codecs


Many newer DVDs use the UDF filesystem. To play them properly, also install libudf:

sudo apt-get install libudf0

Other tools are useful:

sudo apt-get install udftools libudf-dev

Music Players


Amarok is the default music player in Kubuntu. Volume normalization (using ReplayGain) is a built-in option.

Amarok themes

Amarok themes can be downloaded from KDE Look and installed.

  • Download the theme (ending in .tar.bz2) to your home directory (or chosen directory).
  • Amarok -> Settings -> Appearance -> Install New Style
  • Select the downloaded file.

Play Shoutcast Internet Radio through Amarok

Shoutcast internet radio can be played through Amarok 2.2 or later by installing the Shoutcast script:

Amarok -> Tools -> Script Manager -> Get More Scripts -> Search: Shoutcast -> Install
-> Restart Amarok -> Tools -> Script Manager -> Shoutcast service tralala (ticked) -> Ok -> Internet -> Shoutcast service tralala

Note: Internet radio streams use many different ports. You must adjust your firewall to allow the ports over which the streams will be sent.


RecordStream is an Amarok plugin that enables recording of Internet Radio streams (works best with Shoutcast streams). Install:

Amarok -> Tools -> Script Manager -> Get More Scripts -> Search: RecordStream -> Install
  • Install the required streamripper module:
sudo apt-get install streamripper
  • RecordStream / Streamripper will record streams in two modes:
  • "Record webradio" will save each individually streamed track to its native MP3 or AAC file, preserving the original song/track title.
  • "Record livestream" will record continuously whatever is being streamed until the "Stop recording" option is chosen.
  • Of course, Streamripper can be used as a standalone command-line program as well. For instructions, enter man streamripper on the command line. The RecordStream script is not set up to pass all the variables available to Streamripper; for fine-grained control it is better to run Streamripper as a standalone program. See these tips.

Stream Amarok output to Airport Express

Make sure your firewall is not blocking ports 5353, 5000, and 6000.


QMMP is a compact, fast Qt-based music player similar to XMMS2, Audacious, and WinAmp2 and can use the "Classic" WinAmp2 / XMMS skins. Volume normalization (using ReplayGain) is a built-in option. It supports many plugins and is ideal for streaming content. Install:

sudo apt-get install qmmp

You can switch between the "PulseAudio Output Plugin" and the "ALSA Output Plugin" under

QMMP -> Settings -> Audio -> Current output plugin.
  • There are many places to get .wsz skins ("Classic" Winamp2/XMMS) that are compatible with QMMP, Audacious, or XMMS2:


Audacious is a compact, fast GTK-based music player that is a fork of XMMS. It resembles XMMS2 and WinAmp2 and can use the "Classic" WinAmp2 / XMMS skins. Volume normalization (using ReplayGain) is a built-in option. It supports many plugins and is ideal for streaming content. Install:

sudo apt-get install audacious

You can switch between the "PulseAudio Output Plugin" and the "ALSA Output Plugin" under

Audacious -> Preferences -> Audio -> Current output plugin.


Juk is a compact, fast music player with a simple iTunes-like track browser, ID3-tag editing capabilities, and playlist interface. However, volume normalization is not currently an option. It is part of the KDE multimedia project. Install:

sudo apt-get install juk


Clementine is a Qt-based music player modeled on Amarok, with available options such as ID3 tags, music format conversion, audio CD playing, and more. Install:

sudo apt-get install clementine

Banshee Music Player

Banshee is a Gstreamer, Mono and Gtk-based music player for Linux and Mac OS X. It supports multiple mp3 players (including the iPod).There are plugins for podcasts, internet radio, and more.

sudo apt-get install banshee

Exaile Music Manager and Player

Exaile is a GTK-based music player that supports many formats, incorporates a Shoutcast directory, a plugin for iPod, Last.FM support, tabbed playlists, and other features. Install:

sudo apt-get install exaile

Songbird Music Player

Songbird is an open source music player from Mozilla with an appearance meant to resemble iTunes. It is in current development and does not yet have full support for mp3 players (such as the iPod). It incorporates a Shoutcast internet radio interface. The current beta version can be downloaded from the website.


aTunes is a Java-based player designed to be similar to iTunes. Installation instructions are here.

VLC Player

VLC works quite well as an audio player. See this section.

Multimedia Players

Most current video multimedia players play many video formats (as well as audio), including the Flash video .flv format.

VLC Multimedia Player

VLC is a cross-platform multimedia player that supports many formats without need for additional codecs. It can not only receive video streams (also see here to convert it to mp4), but can act as a server for video streams, as well. It is one of the only players that can view and backup almost any DVD format, no matter which copy protection is used. See these tips for using VLC to backup/rip encrypted DVDs.

sudo apt-get install vlc vlc-plugin-pulse
  • Troubleshooting tip: On some hardware (such as the Acer Aspire One), the video is blank or VLC freezes when trying to play a file or disc. To solve this problem, select "X11 video output":
VLC -> Tools -> Preferences -> Video -> Output: X11 video output (XCB) -> Save

VLC plugins

There are many VLC plugins. You will likely only need to install a few of them, however, depending on your hardware and input/output configuration:

sudo apt-get install vlc-plugin-ggi vlc-plugin-jack vlc-plugin-pulse vlc-plugin-sdl vlc-plugin-svgalib mozilla-plugin-vlc vlc-plugin-esd

MPlayer Multimedia Player

Mplayer (and now Mplayer2) is a video player with a wide range of formats supported (including RealMedia and Windows-codecs) and a wide variety of outputs.

sudo apt-get install mplayer
sudo apt-get install mplayer2
  • Kmplayer (sudo apt-get install knmplayer) -- for KDE
  • KPlayer (sudo apt-get install kplayer) -- for KDE
  • SMPlayer (sudo apt-get install smplayer) -- Qt-based
  • Mplayer-gui (sudo apt-get install mplayer-gui) -- GTK-based

Dump a video stream to disc

You can dump a video stream to disc using Mplayer:

mplayer -dumpstream streamurl

If you don't know the exact URL of the stream you wish to save, you can discover it from the webpage it is embedded in by using the Firefox add-on UnPlug. Do not save streams that are illegal to download.


Dragonplayer is the default KDE media player included in Kubuntu. It does not have as many options or play as many formats as other video players, but is integrated into the KDE framework.

Kaffeine Video Player

Kaffeine is a video player for Kubuntu/KDE. It does not play as many formats as other video players. Install:

sudo apt-get install kaffeine

Xine-UI Multimedia Player

Xine UI is a multimedia player based, of course, on the xine platform. It can also play streamed video from the Internet and supports most formats, including some uncommon ones.

 sudo apt-get install xine-ui

RealPlayer 11 Multimedia Player

The Linux Realplayer is actually based on the open-source Helix player. Helix itself can be installed as a package easily (read Helix plug-in) and used instead of Realplayer. These instructions are to install the proprietary version of RealPlayer only.

Download Real Player official linux player

Open a terminal and cd to the directory you have downloaded realplayer's .bin file. Then issue the following commands

chmod +x RealPlayer11GOLD.bin
sudo ./RealPlayer11GOLD.bin

When it asks for installation path enter /usr/local/RealPlayer

For all other questions just choose default by pressing enter.

If you have installed mozilla-mplayer package you will need to delete the mplayer firefox plugin for real player videos. Other wise all real player files will open with mplayer. For that please do this

cd /usr/lib/firefox/plugins
sudo rm mplayerplug-in-rm.*

Please remember to restart firefox and when ever you click on a real player video choose the option open with and use /usr/bin/realplay

Internet TV

Myth TV

See MythTV. Ubuntu TV is essentially Myth TV.

Miro Player

Miro Player (formerly Democracy TV Player) is an open-source Internet TV and video player that allows you to watch Internet TV and videos. Unlike other video players, it contains a structured guide that includes more than 2500 channels, has built-in BitTorrent, and has features that can automatically save videos, such as from YouTube.

sudo apt-get install miro

Sopcast Internet TV

Sopcast is an interface to play live P2P video streams through the VLC media player. Install VLC first. This is a Chinese program and most content is hosted in China and may not be legal in your area. Please consult local regulations.

You can install a SopCast Player PPA using the following commands:

 echo "deb `lsb_release -cs` main" | sudo tee -a /etc/apt/sources.list
 sudo apt-key adv --keyserver --recv-keys CD30EE56 

If you are using Karmic or later:

sudo add-apt-repository ppa:jason-scheunemann/ppa
sudo apt-get update
sudo apt-get install sopcast-player


Applications->Sound & Video->SopCast Player


Zattoo is a free Internet TV player that allows you to watch terrestrial television from various countries in Europe. See the Zattoo Download page for further instructions on installation. For screenshots and an alternate installation guide, see this UbuntuGeek guide.

  • Install dependencies first:
sudo apt-get install libgtkglext1 adobe-flashplugin
  • Install the downloaded .deb package:
sudo dpkg -i *.deb
  • Run Zattoo:
K -> Application -> Multimedia -> Zattoo Player
Note: you have to register for a free account when the player starts.

TV Time (TV Viewer)

TVTime allows the display of television and other digital inputs (made available to the computer by a video capture card). A plugin for the Remuco remote control (remuco-tvtime) is also available. Install:

sudo apt-get install tvtime

ABC iView

Python-iView is a program that works with rtmpdump to record streams offered by ABC iView (Australia). Installation instructions are at the PPA repository.

BBC iPlayer

BBC iPlayer provides replays and downloads of BBC programs to UK residents. The BBC, however, has crippled its streams to prevent downloading and legal actions against iPlayer appear to be in progress. (Flvstreamer may be required for rtmp stream recording). To install a Flash 64-bit edition of iPlayer:

sudo apt-get remove flashplugin-installer
sudo add-apt-repository ppa:sevenmachines/flash
sudo apt-get update
sudo apt-get install flashplugin64-installer
get_iplayer (BBC program recording)
  • get_iplayer allows BBC streams (through their iplayer service) for UK users, as well as Hulu streams for US users, to be recorded to mp4, wav, and mp3 files (depending on content). See here for usage instructions. Install (may not work for all users):
sudo apt-get install get-iplayer
  • See the website for usage or:
man get-iplayer
  • Get a current listing of what's available and save it in the home directory
get-iplayer >~/iplayer-listing.txt
  • Having found some interesting programmes (and noted the numbers found in the left-hand column), download them:
get-iplayer --get 123 537
  • Some users will need to install rtmpdump for successful streaming.

Netflix in Wine app

A (Windows-based) Netflix app (32-bit version) has been modified and bundled to work in the Wine environment. It is available as a package from a private (non-approved) repository here.

  • To run the app will require a 32-bit operating system, which for a 64-bit operating system usually requires installing ia32-libs (and/or ia32-libs-multiarch):
sudo apt-get install ia32-libs-multiarch
sudo apt-get install ia32-libs
Note: ia32-libs-multiarch / ia32-libs may no longer be able to be installed on your system. See this suggested solution.
  • Then install the Netflix-desktop:
sudo apt-add-repository ppa:ehoover/compholio
sudo apt-get update
sudo apt-get install netflix-desktop
  • The package installs the Microsoft core fonts (ttf-mscorefonts-installer). During this part of the installation a prompt to accept the Microsoft EULA will appear. Use the "TAB" key to maneuver to the "Ok" button and then press "Enter" to accept. The installation should then continue to completion.
  • The package creates a menu item for the Netflix Destop, or the app can be started from a terminal with the command:
  • The Netflix app starts in full screen mode. You can exit out of the app completely by pressing ALT+F4 or by using the pop-up "X." You can also press F11 to exit out of full screen mode.
  • Additional installation tips are here.
  • On some of my systems, installing a full Mono setup (sudo apt-get install mono-complete) worked better prior to installing the Netflix-desktop. After doing this, I then answered "No" whenever the Netflix-desktop installer prompted me to install mono.
  • For both updates and troubleshooting, the following steps also seemed to be necessary for me. See this discussion.
  • Remove the netflix-desktop and the wine-browser settings folder, reinstall the netflix-desktop, then restart netflix-desktop in order to complete the reinstallation:
sudo apt-get purge netflix-desktop
rm -rf ~/.wine-browser/
sudo apt-get install netflix-desktop

Netflix through Chrome

Netflix can also be played through a recent version of the Google Chrome browser. See this section.

Netflix Android App

A Netflix app for the Android market is available here. It must be installed in an Android environment but is not fully functional in the current Android emulators.

Internet Radio

Internet radio streams through different ports, so check your firewall if you are not able to play the streams.

Last FM

LastFM is a service for sharing music recommendations and individual radio streams. It is included as an option in Amarok, or can be installed separately:

sudo apt-get install lastfm

Shoutcast Internet Radio

Shoutcast is the first and last free mp3 streaming service. Hundreds of radio streams can be played through Amarok, Audacious, or other multimedia player. Simply associate the .pls streams with your favourite player (Audacious or QMMP recommended). Of course, Shoutcast can also be played through Amarok.

StreamTuner Stream Directory Browser

StreamTuner lists streams available on the Internet through a GTK-based interface. It lists Shoutcast and Live365 streams, among others. Install:

sudo apt-get install streamtuner


Streamripper is a standalone command-line utility to record online audio streams (primarily from Shoutcast). Also see these tips. Install:

sudo apt-get install streamripper
  • Fadecut is a front-end script that allows the removal of certain elements of live streams (sudo apt-get install fadecut)
  • KStreamRipper/KRadioRipper is a GUI front-end for KDE (sudo apt-get install kradioripper)
  • Streamripper is also available within the music player Amarok using the RecordStream plug-in.


RadioTray is an app that, once started, docks in the System Tray and allows easy selection from a list of online .pls streams (listed by radio station genre). Additional .pls streams and genres can be easily added to the pre-configured list. Install:

sudo apt-get install radiotray

Pithos (Pandora client)

Pithos is a Gnome-based Pandora internet radio client. Install:

sudo apt-get install pithos


Spotify is a music streaming service that bases streams on user tastes and interests. Download the Spotify client .deb package for your system (i386 version for 32-bit systems or amd64 version for 64-bit systems) and either the Qt version or Gnome front-end from this location then click on the two packages to automatically install them. For example, to install the 64-bit version with the Qt front-end:

wget -O spotify-client_current.deb
wget -O spotify-client-qt_current.deb
sudo dpkg -i spotify-client_current.deb
sudo dpkg -i spotify-client-qt_current.deb
sudo rm spotify-client_current.deb
sudo rm spotify-client-qt_current.deb

Alternatively, install the repository and install the packages from the repository.

  • To use the keyserver, port 11371 in your firewall must be unblocked temporarily, then add the repository key manually (using the command-line terminal):
sudo apt-key adv --keyserver --recv-keys 94558F59
sudo apt-add-repository "deb stable non-free"
sudo apt-get update

or add the repository deb stable non-free to your package manager through its settings dialog.

  • Install either the regular 64-bit version or select the 32-bit (i386) version, either using your package manager or manually (using a command-line terminal):
sudo apt-get install spotify-client
  • Install one of the GUI frontends (Qt for Kubuntu or Gnome for Ubuntu), either using your package manager or manually (using a command-line terminal):
sudo apt-get install spotify-client-qt
sudo apt-get install spotify-client-gnome-support

Media Centers and PVR (Personal Video Recorder)

There are a number of open-source Media Centers for Linux, some of which include personal video recorder functions. For a full list of open-source media centers, see this guide.


MythTV is a media center with PVR (personal video recorder) for retrieving, recording, and playing broadcast and Internet TV and other multimedia content. It has many options and plugins for expansion. To be useful, you will need a compatible TV tuner card. For setup tips, see this guide. Install:

sudo apt-get install mythtv


Mythbuntu is an integrated Ubuntu (Xubuntu) desktop optimised for MythTV usage. In can be used instead of adding MythTV to a (K)Ubuntu desktop.


XBMC is a free, mature, open-source cross-platform media center. It does not have a PVR capability nor as many functions as MythTV, but has a very nice interface. Install:

sudo apt-get install xbmc


Boxee is an XBMC-like open source package to allow streaming video over the Internet, including from YouTube and other sites. It is a fork of XBMC, and is still in alpha development and testing stage. It is currently available for 32-bit systems only, and recommended for Hardy. A current version is anticipated soon. (Note: Boxee does not run Netflix on Linux, despite their ads). See these download instructions.


Elisa is a cross-platform media center that uses the Gstreamer multimedia framework. Commercial plugins are available from Fluendo. It supports PVR and Music Jukebox . Install:

sudo apt-get install elisa


See LinuxMCE.

Multimedia Servers

MPD Multimedia Playing Server

MPD is a music server meant for LAN usage. It can be controlled from remote clients. It can also stream internet streams.

TiMidity++ MIDI Sound Server

TiMidity is a MIDI software synthesizer required by several games and other MIDI-dependent applications.

sudo apt-get install timidity

uShare UPnP A/V Media Server

uShare is a UPnP media server compatible with the Xbox360 and PS3.

sudo apt-get install ushare

Also see: How-to: Run uShare at Startup.

Content streaming


Icecast2 is a multimedia streaming server that allows the creation of an "Internet radio station." Install:

sudo apt-get install icecast2
  • EZStream (sudo apt-get install ezstream)
  • DarkIce (sudo apt-get install darkice)
  • Ices2 (sudo apt-get install ices2) is part of the Icecast2 project. It allows Ogg Vorbis streaming only.
  • Oggfwd (sudo apt-get install oggfwd) is a barebones client to send Ogg Vorbis files to an Icecast server.
  • Djplay (sudo apt-get install djplay) is Qt-based, uses the Jack audio system, and supports live Icecast broadcasting.
  • LiquidSoap (sudo apt-get install liquidsoap liguidsoap) is an OCAML and Python-based scripting language and GTK-based GUI for building complex audio-streaming systems (with many plug-ins available) for use with an Icecast (or other streaming) server


CRTMPServer (aka Rtmpd) is a free (GPLv3-licensed) server that can stream Flash and many other media types using rtmp streaming. Install:

sudo apt-get install crtmpserver

Red5 Media Server

The Red5 Media Server is a Java-based media streaming server and recorder that uses rtmp and AMF protocols to stream (and/or receive) flash video and other content. Install:

sudo apt-get install red5-server


Flvstreamer is an open source command-line RTMP client to stream audio or video content from all types of flash or rtmp servers. It is a fork from rtmpdump with encrypted rtmp and swf verification support removed. Install:

sudo apt-get install flvstreamer

rtmpdump (Capture streaming video)

Rtmpdump allows the capture of many types of streaming video. Install:

sudo apt-get install rtmpdump

Streamcapture with VLC

VLC allows the capture of certain types of streaming content. See the VLC instructions. You can also "Convert" streams to selected video file formats.

VLC -> Media -> Stream... -> Network -> Please enter a network URL:
  • If you don't know the exact URL of the stream you wish to save, you can discover it from the webpage it is embedded in by using the Firefox add-on UnPlug. Do not save streams that are illegal to download.

Streamcapture with MPlayer

Home Automation / Home Theater / Home Security

Complete Systems

Linux MCE (Media Center Edition)

LinuxMCE is an integrated home theater/home security/home automation/telephone PBX/intercom system for your home. It incorporates MythTV, Pluto home automation, Motion security surveillance, Asterisk PBX, VDR video disk recorder, and other home automation/security/theater packages in an integrated platform. It is available in 32 and 64 bit versions. LinuxMCE can run either as a standalone Home Theater PC or can co-ordinate a fully networked home, using the networking capabilities that are intrinsically part of the Kubuntu Linux OS. For more info see the LinuxMCE website or wiki.

The most recent stable version runs on Kubuntu 8.04 (Hardy). A beta version for Kubuntu 10.04 (Lucid) has been released, and the full version is anticipated soon. LinuxMCE can be installed at the same time as the Kubuntu OS (on a new PC with an nVidia graphics card), with a single DVD installation. Alternatively, Kubuntu can be installed first and LinuxMCE then installed from a 2 CD installation.

Other systems in development

  • MisterHouse -- a Perl-script based open source home automation project. See the example Ubuntu server installation walkthrough.
  • Minerva -- home automation and multimedia control with a GUI interface. It can even hook into Google Calendar.
  • DomotiGa -- home automation software from the Netherlands, using a MySQL database.
  • NetHomeServer is a Java-based cross-platform automation system authored by a single coder. It is in alpha development but can be downloaded from the website and evaluated.
  • The Wosh framework is message-based middleware to effect home automation processes. the project is in early development.
  • Linux Home Automation contains information regarding many nascent home automation projects.

Home Security

Zoneminder surveillance system

Zoneminder manages surveillance cameras and stores images on the hard disk. Images can be viewed using a (LAMP) server remotely. X10 devices can be triggered using built-in perl scripts. Install:

sudo apt-get install zoneminder ffmpeg
Myth Zoneminder

MythZoneminder allows you to view your security cameras through Myth TV, essentially. It is a plugin that interfaces the two packages Zoneminder (which must be working on your system) and Myth TV (which must also be working.) See the installation instructions. Install:

sudo apt-get install mythzoneminder

Office Suites

Kate Text Editor

Kate is the default text editor in Kubuntu. See the Kate Handbook for usage instructions.


LibreOffice is a free and open source (GPL-licensed) office suite with applications for word processing (Writer), math formulae and equations (Math), diagrams and charts (Draw), presentations (Impress), spreadsheets (Calc), and databases (Base) that is now installed by default in (K)Ubuntu. If not, it can be installed:

sudo apt-get install libreoffice-kde

Open Word 2007 Documents in LibreOffice

The latest edition of LibreOffice opens .docx (i.e. Word 2007) documents by default.

Open Office

Open Office was installed by default in older versions of (K)Ubuntu. It has been replaced by LibreOffice (which is similar) and is no longer available in (K)Ubuntu.


Calligra is a KDE-oriented office suite that is fork of (and replaces) KOffice. It includes applications for word processing (Words), graphics and painting (Karbon and Krita), presentation and diagrams (Stage and Flow), spreadsheets (Sheets), databases (Kexi), and project management (Plan). Install:

sudo apt-get install calligra


The KOffice suite was previously part of the KDE project but has been replaced by the Calligra office suite. It was discontinued in September 2012 and its office-oriented applications renamed in the Calligra suite.


AbiWord is a fast, collaboration-enabled word processor. For the most current version see the AbiWord web site. To install from the repositories:

sudo apt-get install abiword

GoldenDict (Multi-lingual Dictionary and Translator)

GoldenDict is multi-lingual dictionary and translator that supports Babylon and StarDict translation dictionary files and has multiple modular plugins. Install:

sudo apt-get install goldendict


Xournal is a free (GPL-licensed) GTK/Gnome-based application for notetaking, sketching, or keeping a journal using a stylus. Install (universe repositories must be enabled):

sudo apt-get install xournal

Special characters

  • KCharSelect is a KDE-based utility for finding special characters which are not available on the keyboard. Install:
sudo apt-get install kcharselect
  • Gucharmap is a Gnome-based utility for finding special characters which are not available on the keyboard. Install:
sudo apt-get install gucharmap

Document management

  • Kraft is a free, open-source (GPL-licensed) document management interface suitable for managing invoices and other small business-oriented tasks. Install:
sudo apt-get install kraft

PDF Files

PDF is the file format used by Adobe Acrobat (which can be read by many e-book readers as well). There are many PDF-oriented utilities available in (K)Ubuntu. In a package manager, search for "pdf".

Print to a PDF file

(K)Ubuntu allows printing of any document to the PDF format by default. From any application:

File -> Print -> Print to File -> Output: PDF

View a PDF document


Okular is the default PDF document viewer in Kubuntu. (Also see the Okular handbook.) PDF files are associated by default with Okular, so clicking on a PDF file (from a file manager such as Dolphin) will open it with Okular. Okular can also be started:

Menu -> Office -> Okular
  • Documents can be viewed in a fullscreen mode by turning off the Navigation panel:
Okular -> Settings -> Show Navigation Panel (unticked)
  • See these tips for info on creating strikethrough annotations of PDF documents using Okular.
Viewing PDF files in Presentation mode
  • PDF documents can be viewed in fullscreen "Presentation" mode within Okular:
Okular -> View -> Presentation

Alternatively, a document can be opened from the command-line (or as a menu item) in presentation mode:

okular -presentation /home/user/Documents/"My presentation.pdf"

(Note the usage of the quotation marks around the filename to accommodate the spaces within the filename.)

  • Presentation mode can be configured for repeating slideshows or other options:
Okular -> Settings -> Configure Okular... -> Presentation

Scan to a PDF file

Gscan2pdf is a utility to do exactly that: scan to a PDF file. Multiple options for scanning can be set. Install:

sudo apt-get install gscan2pdf
Scan receipts to PDF from Android

PDF Toolkit (PDF file management)

PDF Toolkit allows manipulation of PDF files, including splitting, deleting pages, and other functions. See these tips.

  • Install:
sudo apt-get install pdftk
  • To delete pages from a PDF file:
pdftk old.pdf cat 1-9 26-end output new.pdf
  • GUIPDFTK is a GUI for the PDF Toolkit.

PDF-Shuffler (PDF file management)

PDF-Shuffler is a free GTK-based utility to manipulate multiple PDF files, allowing individual pages or entire PDF documents to be re-arranged, rotated, merged, or deleted. This is an essential tool for working with PDF files. Install:

sudo apt-get install pdf-shuffler
Menu -> Office -> PDF-Shuffler

MaxView (PDF file management)

MaxView is a utility to capture, manipulate and rearrange, and print .pdf and .max files. Written in Qt, it is similar in some respects to Paperport.

  • Download and install the .deb package (use i386 instead of amd64 if using a 32-bit OS):
wget -O maxview_current.deb
sudo dpkg -i maxview_current.deb
  • Start MaxView in a GUI by creating a menu item with the Command: maxview /home/user, where /home/user is the directory in which you wish MaxView to start.

PDFMod (PDF file management)

PdfMod is a Gnome-based application to reorder, rotate, and remove pages, export images from a document, edit the title, subject, author, and keywords, and combine documents via drag and drop. Install:

sudo add-apt-repository ppa:pdfmod-team/ppa
sudo apt-get update
sudo apt-get install pdfmod

PDFedit (PDF file editor)

PDFedit is a free (GPL-licensed), Qt-based PDF file editing and manipulation program that uses a GUI for editing. Install:

sudo apt-get install pdfedit

KDE Service Menu PDF (Dolphin service menu)

With this service menu for the Dolphin file manager, PDF files can be manipulated, combined, extracted, converted to Djvu format, and other functions. Install:

Dolphin -> Settings -> Configure Dolphin... -> Services -> Download new services...
-> KDE Service Menu PDF -> Install

Import PDF files into a word processor

Import PDF files into LibreOffice Writer

PDF files can be imported into the LibreOffice Writer word processor as a hybrid document (not a scanned character document) by installing:

sudo apt-get install libreoffice-pdfimport
Import PDF files into KWord

Kword is the Word Processor package in KOffice. It allows the importing of PDF files by default.

PDF-XChange (PDF file editor)

PDF-XChange is a free Windows-based application to view, modify, or perform simple editing of PDF files. It works under Wine.

DjVu files

DjVu is an open source file format that is an alternative to PDF. Files in this format are more compact while retaining image-layer separation of images and text.

  • A PDF to DjVU convertor (pdf2djvu) can be installed:
sudo apt-get install pdf2djvu
  • A utility to scan documents to DjVU format (gscan2pdf) can be installed:
sudo apt-get install gscan2pdf
  • A utility to convert DjVU documents to PDF format (djvu2pdf) can be installed:
sudo apt-get install djvulibre-bin ghostscript
sudo apt-get install djvu2pdf_0.9.2-1_all.deb

View a DjVu document

Okular is the default DjVu document viewer in Kubuntu. (Also see the Okular handbook.) DjVu files are associated by default with Okular, so clicking on a DjVu file (from a file manager such as Dolphin) will open it with Okular. Okular can also be started:

Menu -> Office -> Okular
  • Documents can be viewed in a fullscreen mode in Okular by turning off the Navigation panel:
Okular -> Settings -> Show Navigation Panel (unticked)
  • A standalone DjVU document viewer can alternatively be installed:
sudo apt-get install djview4
Viewing DjVu files in Presentation mode
  • DjVu files can be viewed in fullscreen "Presentation" mode within Okular:
Okular -> View -> Presentation

Alternatively, a document can be opened from the command-line (or as a menu item) in presentation mode:

okular -presentation /home/user/Documents/"My presentation.djvu"

(Note the usage of the quotation marks around the filename to accommodate the spaces within the filename.)

  • Presentation mode can be configured for repeating slideshows or other options:
Okular -> Settings -> Configure Okular... -> Presentation

CHM files

CHM files are proprietary Microsoft Compiled HTML format help files used in Windows 98 (through Windows 7).

CHM file viewers

  • kchmviewer is a Qt-based CHM file viewer (which can be used with KDE / Kubuntu). Install:
sudo apt-get install kchmviewer
  • chmsee is a GTK-based CHM file viewer (which can be used with Ubuntu). Install:
sudo apt-get install chmsee
  • xchm is a CHM file viewer for Linux. Install:
sudo apt-get install xchm
  • The Okular viewer for KDE / Kubuntu supports CHM files through the okular-extra-backends package 4:4.9.0-0ubuntu2 or later (available in (K)Ubuntu Quantal or later). Find the updated .deb package here or add the backport repository and install the current package. (Note: this will result in signficant upgrades from this private repository and should be used with caution.):
sudo add-apt-repository ppa:kubuntu-ppa/backports 
sudo apt-get update
sudo apt-get install okular-extra-backends

CHM file conversion

  • Calibre can be used to convert .CHM files to a wide variety of other formats, including other eBook formats.
  • chm2pdf is a utility to convert .CHM files to .PDF. Install:
sudo apt-get install chm2pdf
Convert a file (also see these tips or use man chm2pdf in a command line terminal):
chm2pdf --book inputfilename.chm outputfilename.pdf
The option --webpage can be used instead of --book to give different formatting.
  • arCHMage is a Python-based utility to extract text, HTML formatting, images, and CSS styles from the .CHM file. (See the ArCHMage website for more instructions.) Install:
sudo apt-get install archmage


FBReader (e-book reader)

FBReader is a free cross-platform e-book reader, based on the GTK platform. Install:

sudo apt-get install fbreader

Calibre (eBook conversion)

Calibre is an eBook reader, library manager, and tool for conversion between many eBook formats (including the .epub format). Install:

sudo apt-get install calibre
  • eBook conversion examples and tips are here.

Sigil (eBook editing and conversion)

Sigil allows creation and editing of an eBook in .epub format and conversion from other formats. Download and install the binary from the website.

eCub (eBook editing and conversion)

eCub allows creation and editing of an eBook in .epub format and conversion from other formats. Download and install the .deb package from the website.


A large variety of packages with different fonts are available through the package manager in the "Fonts" section. Install the desired package, then manage the fonts:

Menu -> Settings -> System Settings -> Font Management

Also see these resources for previews of various fonts and more installation help:

QR Codes


Qrencode is a command line utility to encode any line of text (such as a URL) into a QR encoded .PNG graphic image. Install:

sudo apt-get install qrencode
man qrencode
  • Example usage (from a command-line terminal):
qrencode -o generatedimage.png "Have a Nice Day"
which will create a .png image showing the QR code for the simple text Have a Nice Day (note the usage of parentheses to accommodate the spaces in the text), or use
qrencode -o generatedimage.png
to create a .png image showing the QR code for the URL of Ubuntuguide.
  • Qr-code-creator is a GUI for qrencode. Download and install the .deb package directly from the Launchpad site.

qtqr (QR encoder/decoder GUI)

QR Tools comprises a Python-based backend for manipulating QR codes (python-qrtools) and a GUI (qtqr). In Quantal or later, install:

sudo apt-get install qr-tools
In earlier versions download and install the .deb packages qtqr_1.2_all.deb and python-qrtools_1.2_all.deb from the QR Tools Launchpad site.

qreator (QR encoder GUI)

Qreator is a GUI-based QR code generator. See the installation instructions at the Launchpad site.

QR code viewers

  • Zbar is a free open-source barcode and QR code scanner that recognizes many formats. Install the utilities and the QT-bindings:
sudo apt-get install zbar-tools libzbarqt0
  • For Android phones, a free, simple (ad-free) QR code scanner is Obsqr, whose .apk can be downloaded and installed directly from the F-Droid site listed.

Scripts and Screenplays

  • Trelby is an open source alternative to Final Draft. A .deb package can be downloaded from the website and installed directly.
  • Using a MediaWiki extension, a screenplay can be written in MediaWiki, allowing conversion to other formats.

Personal Information Managers

Kontact Personal Information Manager

Kontact is the default PIM included with Kubuntu. Kontact includes email, an address book, a calendar, reminders, pop-up notes, a link to the Akregator News/RSS reader, time-tracking, and more. Its many functions resemble MS-Outlook. Through connectors it interfaces with many groupware servers (such as Kolab and eGroupware). Install:

sudo apt-get install kontact

BasKet Note Pads

BasKet Note Pads is a personal note-taking application that resides on your computer and can be used for creating "to-do" lists. It is great for centralising your thoughts in one place. Install it:

sudo apt-get install basket

Planner (Project planning & management)

Planner is an MS-Project-like planning and management tool.

sudo apt-get install planner

Time Tracker

You can keep track how long you use an application with a TimeTracker application. Keep records for billing or simply limit your Internet usage. See this list of similar-function apps for Linux.

sudo apt-get install ktimetracker
  • Project Hamster is a time-tracking applet for the Gnome desktop. Install:
sudo apt-get install hamster-applet
  • Gtimelog is a simple version for GtK. Install:
sudo apt-get install gtimelog


Calendar clients include

Mozilla Sunbird (Calendar)

Sunbird is a standalone group calendar client that has largely been replaced by the Lightning extension for Thunderbird and Firefox. Download from the website and install by clicking on the downloaded file to extract, or:

sudo mkdir /etc/sunbird
cd /etc/sunbird
sudo wget -O sunbird-current.tar.bz2
tar -xvjf sunbird-current.tar.bz2
Replace os=linux64 with os=linux if using a 32-bit OS.
  • Then create a menu item named Sunbird to point to the Command: /etc/sunbird/sunbird


Groupware solutions include shared calendars, group email servers, groups address lists, group projects, and internal messaging. They require (one or more) servers with LAMP or similar server stacks.

  • Many web publishing / groupware systems rely heavily on PHP scripting. See this section for information on securing PHP.

Groupware Servers

Groupware servers are most often operated on a server platform. You can install the server version of Ubuntu (in the interest of speed) for a dedicated groupware server. Read servers.


Kolab is the most comprehensive open-source groupware solution available and is distributed as a multi-platform solution. (It integrates easily with both Ubuntu (including Evolution) and KDE/Kubuntu (including Kontact).) It is free and open source with a GPL license (unlike other groupware solutions), yet enterprise support is also available. It is scalable to large organizations and is Outlook (MS-Exchange) and Mozilla compatible. This is a German package, however, and documentation in English can occasionally be limited. The Kolab website provides its own instructions for installation from source (currently v. 2.2). Version 2.2 includes the Horde web interface. The current beta Debian package instructions are here or the OpenPkg installation instructions are here.

  • Note: Kolab uses its own server components, and it is best to run Kolab on a dedicated server. However, it is possible to run other servers on the same machine, as long as you choose alternate ports if the server modules conflict.
  • Install the compiler and other necessary stuff:
sudo apt-get install build-essential

Kolab Ubuntu package

  • There is an Ubuntu/Kubuntu package for the new version of Kolab (v. 2.2), but no documentation support for it yet exists. Install:
sudo apt-get install kolabd

Manual Kolab installation

  • Make a directory for the Kolab installation and make it universally accessible:
sudo cd /
sudo mkdir /kolab
sudo chmod 777 /kolab
  • Optional: If you wish to mount kolab in its own partition, then create a new partition (using Gparted, for example). Figure out the device name of your extra partition:
sudo fdisk -l
It should be something like /dev/sda3.
Mount /dev/sda3 (or whatever your partition is) as /kolab by editing /etc/fstab:
sudo nano /etc/fstab
and adding the line:
/dev/sda3  /kolab  ext3  defaults,rw 0 0
then reboot and make sure there are no errors.
  • Make a directory into which to download kolab:
cd /tmp
mkdir /kolabtmp
  • Download all the current Kolab files:
cd /tmp/kolabtmp
wget -r -l1 -nd --no-parent
  • Install Kolab (as root using sudo -s):
sudo -s
sh 2>&1 | tee kolab-install.log
  • Reboot your system.
  • Stop Kolab services and run the configuration utility:
sudo /kolab/bin/openpkg rc all stop
sudo /kolab/sbin/kolab_bootstrap -b
Obviously, you should know all your details, such as your fully qualified host name (which you can determine from hostname -f), domain details, etc., before doing this step. If you are not familiar with OpenLDAPand LDAP basics, you should learn about it, as Kolab uses the slapd OpenLDAP server daemon.
  • Restart all Kolab services:
sudo /kolab/bin/openpkg rc all start
  • Login to the web administrator interface using "manager" and the password you set at bootstrap configuration:


Citadel is a turn-key fully open source groupware solution (that is both KDE and Kolab-1 compliant). Based on a bulletin-board framework spanning over 20 years, it is user friendly and interfaces with both KDE and Gnome apps and also has a web-based client. It is also WebDAV compliant and can be used with Thunderbird.

  • Install the Citadel server:
sudo apt-get install citadel-server
  • Install the Citadel client:
sudo apt-get install citadel-client
  • Install both:
sudo apt-get install citadel-suite


eGroupware is a robust and stable free open source groupware solution (with GPL license) based on the LAMP stack (the default server stack included with Ubuntu Server) and the Postfix mail server (both of which should be installed first). There is a new version recently available, with a new corporate sponsor in Germany and a commercial enterprise version. Compatibility with many clients has been improved. Egroupware provides the easiest installation and quickest setup time of all groupware solutions. Much of the documentation for the current version, unfortunately, is not in English.

sudo apt-get install egroupware


Open-Xchange is a proprietary groupware solution (meant as an MS-Exchange replacement) that has released a "community edition" based on commercial versions. The latest .deb package is for Hardy Heron 8.04. It is compliant with many different types of clients, including Kontact, Outlook, and Palm PDAs. Installation instructions are at the website and are not trivial.


OpenGroupware is a groupware solution based on the postgreSQL database. There is an enterprise version and a limited open source version, and development appears to have been stagnant in 2008. Installation must be from source, as packages are very outdated. See the website for details.


Zarafa is the leading European MS-Exchange replacement/groupware solution. It is proprietary, but a GPL-licensed (except for trademarks) free open-source community edition was released in 2008. Download instructions are available from the website.


Zimbra is a proprietary groupware solution (now owned by VMWare) that offers an open source "community edition". Although currently free, the community edition is limited in features and does not have a GPL license. All submitted modifications and contributions become the property of VMWare. See the Zimbra wiki.

A Beta version for Lucid Lynx 10.04 LTS is available for 64-bit users, or the older Hardy 8.04 version can be used.


SchoolTool is a free open source groupware solution for use in primary and secondary schools which includes calendaring, gradebooks, attendance records, and student information databases. It was created with the help of the Shuttleworth Foundation (which also sponsors Ubuntu). See these installation instructions.

SugarCRM Community Edition

SugarCRM is a customer-relationship management system that is used to co-ordinate a sales force (sales, marketing, support, project management, calendaring). SugarCRM has a community edition that is one of the most widely used. A LAMP server stack should be installed first ( sudo tasksel install lamp-server ). Extract SugarCRM to /var/www and then logon to http://localhost/SUGAR-FOLDER. Alternatively, for a new server SugarCRM provides a (binary) integrated installation of the LAMP stack with the SugarCRM Community Edition.

Groupware Clients

Many groupware solutions have connectors to interface with clients such as Kontact/KMail and Mozilla Thunderbird (or SeaMonkey).

Evolution Exchange

The Evolution Exchange connector adds connectivity (using Outlook Web Access) to the Evolution suite for MS Exchange 2000 and 2003. Install:

sudo apt-get install evolution-exchange

Kontact Personal Information Manager

The Kontact Personal Information Manager, included in Kubuntu by default, interfaces with many groupware servers.

KDE Groupware Wizard

Kubuntu provides a wizard (script) to help clients (such as Kontact/Kmail) connect to a groupware server. Currently supported groupware servers are Kolab, eGroupware, SUSE Linux Openexchange, and Novell Groupwise.

Zimbra Desktop

Zimbra Desktop is a desktop that collaborates with Zimbra servers. See the Zimbra Desktop FAQ. For more info also see this Ubuntu Forums Zimbra Desktop Installation thread.

Oracle Calendar Desktop Client

The Oracle Calendar Desktop Client is proprietary calendaring software for use with Oracle groupware/database systems.

Download Oracle Calendar Desktop Client:



tar -xvf cal_linux_1011.tar.gz

Change into the extracted files directory:

cd OracleCalendar_inst/

Prepare the files:

mv cal_linux cal_linux.bak; cat cal_linux.bak | sed "s/export LD_ASSUME_KERNEL/#xport LD_ASSUME_KERNEL/" > cal_linux; rm cal_linux.bak

Change permissions:

chmod +x cal_linux

Start the GUI installer:

sudo sh

Group Calendars

DAViCal Calendar Server

DAViCal is a CalDAV, postgreSQL, Apache and php-based shared Calendar server that works with Mozilla Thunderbird/Lightning/Sunbird, Evolution, Kontact, aCal (for Google Android), and other calendar clients. Install:

sudo apt-get install davical

Then see these detailed installation instructions.

Radicale Calendar Server

Radicale is a simple-to-use CalDAV contact and calendar server. Install:

sudo apt-get install radicale
  • To use Radicale with KOrganizer, see this info. It can also be used with the Mozilla Thunderbird Lightning calendar plugin and with the Google Android aCal CalDAV calendar app.

Darwin Calendar Server

Darwin Calendar Server is an open-source port of Apple's CalDAV-based calendar server that works with Mozilla Thunderbird/Lightning/Sunbird, Evolution, and other calendar clients. Install version 1.2 from the repositories (then see the website for usage instructions):

sudo apt-get install calendarserver


WebCalendar is an ICS-based server for group calendars that can use many different databases as the backend, is written in PHP, and is compatible with clients such as Sunbird/Thunderbird (Lightning), Apple iCal, and Evolution. The newest version can also be viewed using RSS clients. See the website and the wiki for installing the newest (1.2) version. Install the older (1.05) version from the repositories:

sudo apt-get install webcalendar

Mail servers

Postfix / Dovecot (Mail Server)

Postfix is a free open source mail server. It interfaces directly to Dovecot, the free open source IMAP and POP3 server. For more information see the official Ubuntu documentation. The dovecot-postfix metapackage installs the components and customizes the configuration files to use the Maildir (mail spooling) folder system by default. Imap and Pop3 modules, SMTP, and SASL/TLS (with self-signed certificates) are installed by default.

sudo apt-get install dovecot-postfix

For tips on setting up a personal mail server, see here.

Squirrelmail (webmail)

SquirrelMail is an open source (GPL-licensed) webmail package (written in PHP) for use with an IMAP (or other type of) mail server. It is efficient and effective. See the Ubuntu Community documentation.

sudo apt-get install squirrelmail

Roundcube (webmail)

Roundcube is an open source (GPL-licensed) webmail package (written in AJAX) for use with an IMAP (or other type of) mail server. It requires a LAMP (or similar) server stack. See the Ubuntu Community documentation.

sudo apt-get install roundcube


iRedMail is an integrated package that includes Dovecot, Postfix, a choice of OpenLDAP (with phpLDAPAdmin) or MySQL for the database, Roundcubemail or Squirrelmail for web-based mail access, phpAdmin, PostfixAdmin, and AWStats. It is optimized for Precise 12.04 LTS and is best installed on a fresh server (since it resets many email configuration files). There is a community edition with many of the features of the commercial edition.

Financial Software

For a brief introduction, see this list of 10 Linux financial tools.

KMyMoney (Personal Finance Management)

KMyMoney is a personal finance manager that uses double entry accounting, the method professional accountants use. It is similar to MS-MyMoney and Intuit Quicken, with automatic setup of categories for businesses. It is designed for the KDE/Kubuntu desktop (but will work in Gnome/Ubuntu). Install:

sudo apt-get install kmymoney2

GnuCash (Personal Finance Management)

GnuCash is a free, open source GPL-licensed personal finance manager that uses double entry accounting like professional accountants. It is GTK-based (Gnome 2). The current version can be installed from source files (see the website for installation instructions), or the package version can be installed:

sudo apt-get install gnucash

Skrooge (Personal Finance Management)

Skrooge is a free, GPL-licensed personal finances manager written for the KDE desktop that is able to import/export data to/from many other finance managers.

sudo apt-get install skrooge

Moneydance (Personal Finance Management)

Moneydance is a commercial cross-platform Java-based personal finance manager similar to KMyMoney that sells for $50 per license.

SQL-Ledger (Enterprise Finance Management)

SQL-Ledger ERP is a free, open-source, platform independent double-accounting-method system and enterprise resource planner (inventory, work and purchase orders, taxes, etc.) that uses the SQL database server (PostgreSQL/Oracle/Mysql databases). It uses a web browser for an interface and be accessed remotely. It is extremely comprehensive and is available in many languages. Install:

sudo apt-get install sql-ledger

LedgerSMB (Enterprise Finance Management)

LedgerSMB is a fork of the SQL-Ledger project that offers fairly solid AR, AP, and GL tracking as well as inventory control. It is in rapid development and encourages community support. A Debian (.deb) package is available here.

WebERP (Enterprise Finance Management)

WebERP is a free, open-source enterprise resource planner and accounting suite similar to SQL-Ledger that uses a web browser as an interface. It runs on the LAMP server. It is somewhat difficult to implement and use, but conforms to strict accounting guidelines. Set up your LAMP server first, then install using the web site instructions.

Phreebooks (Enterprise Finance Management)

Phreebooks is a free open-source enterprise resource planner and accounting suite similar to WebERP. It also runs on a LAMP server. It is in active development in 2008. A demo is available at the website.

Quasar (Enterprise Finance Management)

Quasar is a proprietary Linux-based accounting suite similar to Quickbooks. For a single user without point-of-sale or networking needs, it is free. For other users it costs CA$500 per seat. An installer for KDE-based systems is here.

Document Management

Scanning receipts to PDF from Android

  • To scan receipts from an Android phone and then have them sent by email, use Smart Receipts, an open-source free utility from F-Droid.

Other Financial software

Stock Market monitoring software

  • BeanCounter - A stock portfolio performance monitoring tool. Install:
sudo apt-get install beancounter
  • Smtm - Show Me The Money is a configurable Perl/Tk stock ticker program. Written by the creator of BeanCounter.
sudo apt-get install smtm
  • Qtstalker - commodity and stock market charting and technical analysis
sudo apt-get install qtstalker


Bitcoin is an unregulated pseudo-currency that relies on anonymous peer-to-peer networking protocols for exchange.

  • Bitcoind is the backend daemon that handles the Bitcoin peer-to-peer networking. Install:
sudo apt-get install bitcoind
  • Bitcoin-Qt is the current GUI frontend for Bitcoin, which can be installed using the instructions on the Launchpad site.

Wiki software

Wiki software allows an organization to have a manual that can be edited by a number of collaborators. Wikipedia is the best known example.


MediaWiki is the free, open source server software that Wikipedia uses. It is scalable to very large uses. It runs on the LAMP server stack (which uses the MySQL database and is available as an installation option with the (K)ubuntu server), or it can be used with a PostgreSQL database. See these detailed instructions. (Other instructions are also available here.) Install from the repositories:

sudo apt-get install mediawiki
  • Edit the config file so it recognizes MediaWiki:
sudo nano /etc/mediawiki/apache.conf

Uncomment (remove the #) the line:

Alias /mediawiki /var/lib/mediawiki
  • Restart apache2:
sudo /etc/init.d/apache2 restart
  • Run/install MediaWiki by logging into:
You will be prompted for configuration variables to be set. The trickiest is the MySQL user/password. Hopefully you remember your MySQL superuser that you set at the time of LAMP (or MySQL) installation.
  • Copy your local settings configuration file to /etc/mediawiki (and make a backup of the original):
sudo cp /var/lib/mediawiki/config/LocalSettings.php /etc/mediawiki
sudo mv /var/lib/mediawiki/config/LocalSettings.php /var/lib/mediawiki/config/LocalSettings_at_install.php

Edit your configuration variables there:

sudo kate /etc/mediawiki/LocalSettings.php
  • If you are using a virtual host server, make a symbolic link (named in this example mywiki) from your /usr/share/mediawiki installation folder to your /var/www folder:
sudo ln -s /usr/share/mediawiki /var/www/mywiki

then make sure you have an apache2 virtual hosts configuration file (in /etc/apache2/sites-available) that points to /var/www/mywiki as the DocumentRoot. Make a symbolic link from your virtual host configuration file in /etc/apache2/sites-available to /etc/apache2/sites-enabled to enable it. Restart apache2 after enabling the sites. (Warning: MediaWiki is not secure at installation and can be easily hacked by new users. Do not publish your wiki to the Internet before reading all the instructions and changing the configuration file (LocalSettings.php) so that it is more secure.) You would then access the database at:

Moin Moin

Moin Moin is free, open source (GPL-licensed) wiki software written using Python, with a large community of users, including the Apache, Debian, and Ubuntu wikis. See these Ubuntu installation instructions. Install:

sudo apt-get install python-moinmoin


Twiki is an open source wiki engine used by many small to medium size companies internally. It has an active development team with multiple plugins. See the website for installation instructions. Install:

sudo apt-get install twiki


TiddlyWiki is an open source personal wiki. It is ideal for creating a list of things to do, note taking, or as a collaboration tool for a small team. It is a single HTML file that can reside on your computer or can even be uploaded to a web server and be used as a simple website. It is developed using a Firefox browser as an interface. Installation instructions are on the website.

Web Publishing

Drupal (Web content publishing)

Drupal is the most powerful open-source website creation and content collaboration tools. A modular approach to website building, from simple out-of-the-box websites to complex sites is possible with a short learning curve. Get more info on how to get started. Drupal requires an installation of a LAMP server stack; if you have not already installed LAMP, it will be installed along with Drupal. I have found it easier to use the MySQL database (the "M" in LAMP), but Drupal can also integrate with PostgreSQL if you have it installed.


Drupal 7 is available as a package from a package manager or from the command-line terminal:

sudo apt-get install drupal7

You can then also see these installation tips for installing through the browser, then see these Drupal site building tips. A Drupal/Ubuntu users group is found at Drubuntu.


Drupal6 is available as a package from a package manager or from the command-line terminal:

sudo apt-get install drupal6
  • After everything is installed (and the problems below sorted out), restart the apache2 server:
sudo /etc/init.d/apache2 restart
  • Finish installation through your browser:

You can then also see these installation tips for installing through the browser, then see these Drupal site building tips. A Drupal/Ubuntu users group is found at Drubuntu.

Installation quirks
Exim vs. Postfix

Exim and Postfix are mail handlers. I had installed Postfix at the time I installed my Ubuntu server (but was not using it). Drupal6 uses Exim, however, and therefore removes Postfix at installation and installs Exim instead. Therefore, it is better not to use Drupal6 on a mail server that uses Postfix.


WordPress is the most popular free open source web content manager that started as a blog tool and now incorporates many publishing elements. For bloggers and small to medium-sized websites, WordPress provides the fastest installation and customization process with many modules. WordPress requires an installation of a LAMP server stack first. Then install:

sudo apt-get install wordpress
  • Make a symbolic link from your Apache2 www folder to your installation folder and install a new MySQL database named localhost to use with WordPress:
sudo ln -s /usr/share/wordpress /var/www/wordpress
sudo bash /usr/share/doc/wordpress/examples/setup-mysql -n wordpress localhost

Note: If you already know the name of your (virtual) host URL for WordPress, then use it as the name of your database instead of localhost. For example, my URL is so my command is:

sudo bash /usr/share/doc/wordpress/examples/setup-mysql -n wordpress
  • If you will access your WordPress server through a virtual host, then create your virtual host configuration file in the /etc/apache2/sites-available folder. Once you have edited the file, make a symbolic link from it to the /etc/apache2/sites-enabled folder. Restart apache2:
sudo /etc/init.d/apache2 restart
  • Install WordPress through a browser:
or, if you are using a virtual host:

Note: The Jaunty repositories contain version 2.7.1, which is subject to a security worm. If you install this version, please update immediately to the current version from the Tools -> Upgrade menu. (Alternatively, install the current source version from the website.)

For the automatic updater to work, all the WordPress files, folders, and subfolders must be owned by www-data (which is also the owner of the apache2 process) prior to updating.

sudo chown -R www-data /usr/share/wordpress

Joomla (Web content publishing)

Joomla is a powerful open source website creation and content management tool that allows website creation for use in every arena from the simple to complex corporate environments. Info for beginners is a good place to start.

Scribus (Desktop publishing)

Scribus is an open-source package that provides professional-appearing desktop publishing.

sudo apt-get install scribus

Plone (Content Management System)

Plone is a free, open source (GPL-licensed) multi-platform content management system used by many large organizations around the world. It is available with an integrated installer here. Some users have had some difficulties in Jaunty, due to changes in Python.

Gallery (Photo album website)

Gallery is a PHP-based method of presenting a photo album on a website. A Drupal interface is also available for Gallery2. Install:

sudo apt-get install gallery2

phpBB (Forums)

phpBB is the leading open source platform for Forums. A LAMP server stack (or PostgreSQL database instead of MySQL) will be required and should be installed first. Then make sure the universe repositories are enabled and install:

sudo apt-get install phpbb3

Distance teaching


Moodle is a free open source platform for hosting online learning courses. It can be integrated with webinar software. A LAMP server installation is required (sudo tasksel install lamp-server). Also find free Moodle themes here. Install:

sudo apt-get install moodle
  • Database server software for Moodle: mysql-server -> follow remainder of instructions. Assuming the database is hosted on the same computer as the one Moodle is being installed upon, accept localhost for the options when prompted.
  • Edit Moodle configuration options (if needed). (Use the gedit text editor instead of kate if using Ubuntu instead of Kubuntu.):
sudo kate /etc/moodle/config.php
  • Edit Moodle apache2 configuration file (if needed). (Use the gedit text editor instead of kate if using Ubuntu instead of Kubuntu.):
sudo kate /etc/moodle/apache.conf
  • Finish installation through the browser. (I recommend the "unattended" installation.)

For more information, see these detailed tips. Moodle can also be integrated with other CMS systems, as well.


Claroline is a free open source platform for hosting e-learning courses and online student collaboration. A LAMP server installation is required. Installation is from source files available at the website, with instructions found here.


Dokeos has a free learning platform, but also a medically-oriented proprietary platform that includes modules for case presentations and imaging. It is widely used in Europe.

Maps and GPS

In addition to several online mapping services (such as Google Maps, MapQuest, and the open source OpenStreetMap), self-contained map packages can be installed on your computer (to be used with or without Internet access).


Marble is a virtual globe and world atlas for the KDE desktop similar to Google Earth. Also see the OpenStreetMap intro to Marble. Install:

sudo apt-get install marble
  • OpenStreetMap can be imported and viewed:
Marble -> File -> Download Maps... -> Osmarender OpenStreetMap -> Install
-> Map View -> Projection: Flat Map -> OpenStreetMap
  • Routing (i.e. point-to-point directions) is available using one (or more) of several services. See the Marble manual. Map files for offline routing can also be installed using the MoNav routing tool:
Marble -> Routing -> Configure -> Monav

Google Earth

Google Earth gives you an annotated eagle's eye view of our planet. This is a free proprietary package (you must accept the license to use this package).

sudo apt-get install googleearth-package
make-googleearth-package --force
Doubleclick on the resulting .deb file.
-- or --

To install the latest Linux binary, download and save the GoogleEarthLinux.bin (currently version 5 ) package from Google Earth downloads. (You may alternatively download the previous version (4.3), named googleearth-linux-plus-4.3.7284.3916.bin or something similar.)


Then install:

chmod +x GoogleEarthLinux.bin


K menu -> Internet -> Google Earth 3D planet viewer

You should turn off the Google Earth -> View -> Atmosphere setting, or you might see clouds everywhere and the ground won't show up.


  • If Google Earth opens, shows the splash screen, and then crashes, you’re probably experiencing a common issue. Running ~/google-earth/googleearth in a terminal will show this error:

./googleearth-bin: relocation error: /usr/lib/i686/cmov/ symbol BIO_test_flags, version OPENSSL_0.9.8 not defined in file with link time reference

To fix this, browse to the folder you installed Google Earth into. (If you installed manually, this will be google-earth in your home folder.) Find the file and rename it to something else, like Google Earth should now start correctly.

cd ~/google-earth
sudo mv
sudo ln -s /usr/lib/ ~/google-earth/
(Note: You can also specify /home/user/google-earth instead of ~/google-earth ).
  • On my display, I had to disable desktop effects (K menu -> System -> System Settings -> Desktop -> Desktop Effects) to get the display to work.

For other issues, see the Ubuntu help pages on Google Earth. Be careful of some of the suggestions there.

For example, if you turned on OpenGL desktop effects (using K Menu -> System Settings -> Desktop -> Desktop Effects -> General -> Advanced Options) and your display goes blank and you can't restore it, you will have to edit the settings file manually from the command-line to reset your mistake.

nano ~/.kde/share/config/kwinrc

In the section title [Compositing], under the line Backend=OpenGL (or whichever backend you had selected) change the line below it to read:


The will reset your display and you can then reboot successfully into your default display (to try different settings from the menu again, if you wish).

Uninstall Google Earth

To uninstall run the uninstall shell script located in the /home/user/google-earth folder (or whichever folder you installed google-earth into).


Merkaartor is a Qt-based cross-platform map viewer and editor that uses the Open Street Maps project. It is complex and difficult to configure and is more suitable for advanced needs than for the average user. Install:

sudo apt-get install merkaartor

Open Street Maps

A list of other packages available for (K)Ubuntu that use Open Street Maps is here (and a full list for Debian is here).


Tux Mobil has a list of Linux applications for use with GPS devices, and compatible hardware. Two GPS packages are available from the Ubuntu/Kubuntu respositories:

  • Viking is a free open source package to view GPS data in maps, and to plot co-ordinates. This has been reviewed as the best Linux GPS mapping program.
sudo apt-get install viking
  • GPS Drive is a free navigation software package that displays your position on a zoomable map using your GPS device. It is GTK-based but can be used in Kubuntu. It uses the gpsd daemon that interfaces with a variety of GPS hardware. A .deb package of the current version is also available from the website. Install:
 sudo apt-get install gpsdrive
  • tangoGPS is a beautiful, lightweight GPS mapping program that uses map data from the Openstreetmap project. Is is a GPL-licensed open source project. A .deb package can be found here.

Celestial (Star) Maps


Celestia is a free planetarium and space simulator for the desktop. Install:

sudo apt-get install celestia


Stellarium is an astounding planetarium for the desktop. Install:

sudo apt-get install stellarium

Software Development


Spyder is a powerful interactive Open Source development environment for the Python language with advanced editing, interactive testing, debugging, and introspection features.

sudo apt-get install spyder


Eric is a full featured IDE and Python and Ruby editor, written in Python. It is based on the cross-platform Qt Gui toolkit, integrating the highly flexible Scintilla editor control. It is a quick and dirty editor as well as a professional project management tool (integrating many advanced Python features). Eric4 includes the integration of a downloadable plug-in system.

sudo apt-get install eric

Kompozer Web Development Editor

Kompozer is a Gecko-based web authoring system that combines web page editing with web file management in a WYSIWYG manner. It supports XML, CSS, and JavaScript in an XUL architecture.

sudo apt-get install kompozer

Quanta Plus (Web IDE)

Quanta Plus is an integrated development environment integrated with the KDE desktop. It allows webpage development, database design, and XML design and scripting, for example, using multiple development tools. The latest stable version is 3.5, however, and integrates with the KDE 3.5 environment (Ubuntu Hardy Heron). You should therefore use Ubuntu Hardy Heron with this product. (There is also a commercial version (Quanta Gold), also oriented towards KDE 3).

sudo apt-get install quanta kompare kxsldbg cervisia

Netbeans IDE

Netbeans is a free open-source integrated development environment used to create applications using Ajax, Ruby, pHp, Groovy, Java, Javascript, C++, and other scripting tools.

sudo apt-get install netbeans

BlueFish Web Development Editor

BlueFish is a GTK-based (Gnome-oriented) editor to write websites, scripts and programming code. It supports perl, Python, pHp, CSS, XML, Java, Javascript, C, SQL, and other formats.

sudo apt-get install bluefish

Gobby (Multi-user development)

Gobby is a free, multi-platform open source collaborative editor supporting multiple documents in one session and a multi-user chat. Install:

sudo apt-get install gobby

Eclipse IDE

Eclipse is a free open-source cross-platform integrated development environment with plugin support for a large set of programming languages, e.g. Java, C/C++, Python, PHP.

sudo apt-get install eclipse

Qt Creator

Qt Creator is a lightweight, cross-platform integrated development environment (IDE) for the Qt application framework.

sudo apt-get install qtcreator

Game Engines

  • See this section for a list of open-source game engine development environments.

Search Engines


Sphinx Search is an open source full text search server. See their documentation for usage details. Install:

sudo apt-get install sphinxsearch

Online Storage

  • The recent ease of cloning filesystems and the promiscuity of datacenters has placed a great deal of sensitive data at risk when files are remotely hosted at a site not under your complete control. The reliability and security of online storage is low, and, in fact, can often be a means for intercepting or otherwise changing those files that have been placed on the remote servers. Further, any data left on public storage devices in the US for more than 180 days are subject to search and seizure by government agencies there. (Also see this.) Always encrypt sensitive private files stored on public servers.
It is almost always more secure to host your own server(s) in house and to limit the traffic and access to your files and servers to members of your own organization. Learning how to run your own servers is worth the effort, and powerful hardware on which to run them is inexpensive these days.

FTP (online file transfer)

Also see these FTP tips.

WebDAV (online folders)

See this section on WebDAV for more information about WebDAV servers and clients.

Dropbox (online cloud storage)

Dropbox is a free but proprietary online remote hosting service for private files (similar to the free open-source alternative SparkleShare). Be careful of any storage solution not under your complete control (especially proprietary solutions); they are insecure and should be used for temporary storage of non-critical files only (as an alternative to sending files by email).

  • Install prerequisities (several may already be installed on your system):
sudo apt-get install sqlite3 python python-gpgme kdialog klipper
  • Download and install the Dropbox client daemon:
wget -O dropbox-current_amd64.deb
sudo dpkg -i dropbox-current_amd64.deb
sudo rm dropbox-current_amd64.deb
or for the 32-bit version:
wget -O dropbox-current_i386.deb
sudo dpkg -i dropbox-current_i386.deb
sudo rm dropbox-current_i386.deb
  • If the Dropbox client daemon has been properly configured and installed, the Dolphin File Manager has a plugin service to manage the online folders. Install:
Dolphin -> Settings -> Configure Dolphin... -> Services -> Download New Services... -> Dropbox ServiceMenu -> Install
  • Kfilebox (formerly known as Kdropbox) is a front-end to the Dropbox client daemon. Installation of Kfilebox will also install the Dropbox daemon (or the Dropbox daemon can be installed separately first). See the website for download and installation instructions.
  • See this article if interested in using Dropbox as a webseed for BitTorrent. Because Dropbox is insecure, you may wish to consider installing Dropbox within a quarantined virtual machine and run the virtual machine containing Dropbox only when connected to a secure Internet connection (such as through Tor).

Google Drive (online cloud storage)

Google Drive is a free but proprietary online remote hosting service for private files (similar to the free open-source alternative SparkleShare). Be careful of any storage solution not under your complete control (especially proprietary solutions); they are insecure and should be used for temporary storage of non-critical files only (as an alternative to sending files by email).

  • Grive is a free, open-source command-line API for Linux systems to interface with Google Drive.
  • Download and install a 32-bit or 64-bit .deb package here.

Other online webhosts

  • There are many services offering online webhosting with a wide range of included services. No online webhost should be considered secure; however, the usage of a public webhost may be suitable for certain public, non-sensitive needs. Many webhosts go offline or disappear altogether without notice, so backup and security precautions are essential at all times.
  • Here is a list of free webhosts, all of which should be assumed to be insecure.
  • Many users use public webhosts through Tor for temporary storage of files only, and never for unencrypted sensitive, private files. A popular method is to sign up for a webhost account (through Tor or from an anonymous IP address) using an anonymous email account. Filezilla with Tor is subsequently used to securely transfer files to the webhost. (See this article if interested in using the webhost as a webseed for BitTorrent.) Some users access the free webhost only from within a quarantined virtual machine.

Personal repositories

(K)Ubuntu uses Debian (.deb) packages. Individuals or organizations can create repositories for personal or specialized use. See the Debian wiki introduction. Also see this Ubuntu community advice and this.


Using mini-dinstall with dput, a simple repository can be created. This can then be copied to an online server for public or private access. See this tutorial and this.


DebArchiver is a command-line utility that allows the creation of a folder-based repository. Instructions are from man debarchiver (in a command-line terminal). Install:

sudo apt-get install debarchiver

Version control software

Copies of software being developed at many different locations require a method to ensure that the multiple distributed copies remain synchronized. This can be done using a central repository or using a distributed synchronization technique. For further information, see the official Ubuntu documentation. Several version control platforms exist:

  • Bazaar is sponsored by Canonical and also allows distributed synchronization. Also see the official Ubuntu documentation. Install Bazaar with a Qt-based GUI and Dolphin browser plugins:
sudo apt-get install bzr qbzr dolphin-plugins-bazaar
sudo apt-get install subversion
  • KdeSvn is a KDE-based client for Subversion. (sudo apt-get install kdesvn)
  • Mercurial (hg) is a newer, low-resource version control system. Install:
sudo apt-get install mercurial
sudo apt-get install cvs cervisia
  • TkCVS is a GUI frontend for both CVS and Subversion (not needed when using Cervisia). Install:
sudo apt-get install tkcvs
  • KDE Sdk Dolphin plugins provide Dolphin integration with several types of version control software (CVS, Git, Bazaar, and Mercurial (hg)). Install:
sudo apt-get install kdesdk-dolphin-plugins


  • Git allows distributed synchronization and is currently one of the most widely used systems. Also see the Ubuntu community documentation. The git client can be installed:
sudo apt-get install git
and the gitosis server software:
sudo apt-get install gitosis
  • GitK is a Tk-based Git tree visualizer. Install:
sudo apt-get install gitk

SparkleShare (Git frontend)

SparkleShare is a Git repository server/client frontend. Installation is by adding a PPA repository and then installing:

sudo add-apt-repository ppa:warp10/sparkleshare 
sudo apt-get update
sudo apt-get install sparkleshare

Science, Technology, and Engineering Applications

What .. you thought (K)Ubuntu was just for play? Also see Ubuntu Science.

Health applications

OpenEMR (Electronic Health Record)

OpenEMR is a mature, robust, outpatient-setting electronic medical record system that is certified in the US.

  • Make sure the LAMP (Linux, Apache, MySQL, PHP5) stack is installed first:
sudo apt-get install tasksel
sudo tasksel install lamp-server

VistA (Enterprise Electronic Health Record)

OpenVistA and WorldVistA are two varieties of the largest and most robust CCHIT-approved electronic health record platform in the public domain. They are GPL licensed, are based on the US Veterans Administration health record system, and can be installed as an integrated database, server, and client system. See the detailed download and installation instructions for OpenVistA and WorldVistA, or visit Vistapedia for other instructions. Also see the Ultimate Server with OpenVistA EHR.

Other systems

  • NOSH Charting System / EMR is a free, open-source EMR project in development that can be installed in (K)Ubuntu from a private repository found here.


  • QCAD is a free (GPLv3-licensed for versions >3.1), open source 2D-CAD system similar to AutoCAD. Install:
sudo apt-get install qcad
  • LibreCAD is a Qt-based free (GPLv2-licensed), open source 2D-CAD system which is a fork of QCAD 2.0. Install:
sudo apt-get librecad
  • KiCad is an open source software suite for electronic design automation (EDA), facilitating the design of schematics for electronic circuits and their conversion to PCBs (printed circuit board) design. Install:
sudo apt-get install kicad
  • DraftSight is a proprietary 2D-CAD system (like AutoCAD) with a free, limited version available for multiple platforms (including Linux).
  • VariCAD is a commercial 3D-CAD package for multiple platforms (including Linux). There is no open source or community version.

Mathematical solutions

Scilab, Octave, and Freemat are three open source solutions for solving complex numerical mathematical problems. Symbolic mathematical problems can be solved with Maxima and Mathomatic. All of these programs are included in the Ubuntu Universe repositories.


Gnu Octave is a free, open source (GPL licensed) platform for solving linear and non-linear equations, similar to (and mostly compatible with) Matlab. It interfaces well with Gnuplot. For troubleshooting tips, see this thread. Install:

sudo apt-get install octave3.0

Also recommended:

sudo apt-get install libatlas3gf-base gnuplot qtoctave

Note: QTOctave is a GUI for Gnuplot or Easyplot 1.1, and and the ATLAS library is an algebra-software-optimization set of utilities.

EasyPlot 1.1 is an alternative to GnuPlot, with a version that can be used with QTOctave. It must be installed from source.

An older GUI for Octave/Gnuplot is qgfe (available as the package qgfe).


Freemat is a free, open source (GPL licensed) platform for solving linear and non-linear equations, similar to (and mostly compatible with) Matlab. Install from Add/Remove Programs (Edutainment) or

sudo apt-get install freemat


Maxima is a free, open source (GPL licensed) computer algebra system (CAS) for doing symbolic mathematics. It can solve equations with many variables, simplify expressions, do calculus, and many other advanced operations. To install:

sudo apt-get install wxmaxima

To run, enter:


or select wxMaxima from the Applications/Science menu. wxMaxima is the standard Maxima GUI.


Mathomatic is a free, open source (LGPL licensed) command-line computer algebra system for doing calculations and symbolic mathematics. It can automatically solve and simplify algebraic equations, do some calculus, and other simple but useful operations. To install:

sudo apt-get install mathomatic mathomatic-primes

To run, enter:


or select it from the Applications/Science menu.

Amateur Radio applications

Fldigi is a free, open-source (GPL) application for digital-mode amateur radio communications using a sound card. Enable "Community Maintained Software (universe)" in Software Sources; then install either from Add/Remove Programs under (Amateur Radio) or by typing

sudo apt-get install fldigi

Amateur Electronics


Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, and hobbyists interested in creating interactive objects or environments. See this tutorial.


Improv is a development-oriented open-hardware computer board useful for prototyping and creating small, powerful devices (that run open source software, ideally).

Raspberry Pi

The Raspberry Pi is a credit-card sized computer that can be plugged into a TV and a keyboard, useful for electronics projects, programming, and many computing tasks.


The CuBox is a full-featured miniature computer useful for programming projects and many computer tasks.


See this Techsource overview of robotics-oriented applications for Linux.


LaTeX is a LaTeX is a free high-quality typesetting system for the production of technical and scientific documentation.


LyX is a WYSIWYG frontend and GUI interface useful in creating documents formatted for LaTeX. Install:

sudo apt-get install lyx


Texmaker is a highly-configurable, Qt-based free application for the creation and editing of LaTeX-formatted technical and scientific documents. Install:

sudo apt-get install texmaker

LaTeX Reference Managers

  • The standard LaTeX bibliography (BibTeX) tool can be manipulated with one of several tools:
  • nbibtex. Install:
sudo apt-get install nbibtex
  • jabref. Install:
sudo apt-get install jabref
  • biblatex. Install:
sudo apt-get install biblatex
  • kbibtex (for KDE). Install:
sudo apt-get install kbibtex
  • Zotero is a Firefox plugin that allows culling references (and reference content) from online references.

Engineering-oriented applications

CAELinux is an engineering-oriented Linux OS (with an the (X)Ubuntu desktop) that comes with a pre-installed set of engineering-oriented applications that can also be installed individually in Ubuntu/Kubuntu:

  • CAD/CAM & 3D printing:
  • FEA, CFD, & multiphysic simulation:
  • Meshing, pre-post, & visualization:
  • Electronic design and prototyping:
  • Scientific & development tools:
  • Scientific writing and office tools:

Miscellaneous software (not endorsed by this guide)


JBidwatcher is a Java-based application allowing you to monitor auctions, submit bids, snipe (bid at the last moment), and otherwise track your auction-site experience. See the website for more details.


Utilities facilitate tasks such as keeping the clock up to date, archiving utilities, and more.

Rename multiple files at once

Krename is a tool to rename multiple files in a batch. It allows multiple plugins to save or add information to files.

sudo apt-get install krename

Archiving Utilities


The command-line terminal utility ZIP creates files that are compatible with the time-honored PKZIP and WinZip. It is included in (K)Ubuntu by default. Extracting zip files can be done with the unzip utility. Using the -P option allows the creation of a password for the zip file:

zip -r -P mypassword *

Note: The -r option indicates to include all subdirectories recursively. The wildcard * adds all files in the directory, but you can specify individual filenames as well. If special characters are to be used in the password, designate them with a preceding \. For example, if the password is to be notsosecure123# then the command should be

zip -r -P notsosecure123\# *

For more info, enter in the command-line terminal:

man zip

File Roller (Archiving GUI)

File Roller is a GTK-based archival GUI for the Gnome desktop (which can also be used in KDE). It allows both passwords to be added to archived files as well as the "modify file" function. Install:

sudo apt-get install file-roller
  • A service menu for the Dolphin file manager can be found here. Additional instructions for installing and using this service menu are at Kubuntu Forums. Install:
Dolphin -> Settings -> Configure Dolphin... -> Services -> Download New Services... -> Search: file-roller
-> "Extract Here and Compress -- File-roller" -> Install

X-archiver (Archiving GUI)

Xarchiver is a GTK-based GUI front-end for many archiving utilities. It allows the addition of passwords but lacks the "modify file" feature. Install:

sudo apt-get install xarchiver

Ark (Archiving GUI)

Ark is a front-end for zip (and other archival utilities) but does not allow passwords. It is the default for KDE/Kubuntu.


BChunk is a command-line utility that allows you to convert .cue and .bin files into an .iso file (so that they can be opened and manipulated in Kubuntu). Warning: If the bin/cue image has audio tracks, they will be lost.

Get BChunk

sudo apt-get install bchunk

To convert .cue and .bin files, navigate to the folder and run this command (replacing filenames with your own):

bchunk inputfilename.bin inputfilename.cue outputfilename.iso

After the file is converted into ISO you can mount it using:

sudo mount -o loop outputfilename.iso /media/output

Navigate to /media/output and you should see all the content there. You can then copy it anywhere.

To unmount:

sudo umount /media/output

HJSplit Files Joiner/Splitter

HJSplit for Linux (Java version).

  • Make sure you have Java Runtime Environment installed:
sudo apt-get install sun-java6-jre
  • Download the HJSplit JAR file:
  • Create the directory for HJSplit:
sudo mkdir /opt/hjsplit
  • Move the file to an appropriate directory:
sudo mv hjsplit_g.jar /opt/hjsplit/ 
  • Run:
cd /opt/hjsplit/ && java -jar hjsplit_g.jar 
Note: You could also make a terminal shortcut (menu item) in K Menu Editor.


Rar archives files into the proprietary .rar format.

sudo apt-get install rar

This application is a 40-day trial.


Unrar extracts files archived with the proprietary .rar format. A free version can be installed:

sudo apt-get install unrar-free

or the proprietary version (also free for noncommercial use) can be installed with the kubuntu-restricted-extras package or with:

sudo apt-get install unrar

Once one of these two utilities is installed, you can use Ark to extract the .rar files.


The open-source 7-Zip archive format was originally designed for Windows (and DOS) but is also available for Ubuntu. The GNU/Linux version of 7-Zip does not come with a GUI, but Ark can hook into 7-Zip to handle 7z archives. Install:

sudo apt-get install p7zip-full

To allow the 7-Zip extension for Ark to extract .rar files, also install:

sudo apt-get install p7zip-rar

Hard Drive Utilities

KDiskFree (Hard drive properties monitor)

KDiskFree is a KDE utility for monitoring free disk space, etc.

sudo apt-get install kdf

Clock Utilties


A screensaver is useful as a security precaution as well as a power and screen element saver. Using even a simple "Blank Screen" screensaver with a password can slow a potentially malicious passerby from gaining access to your keyboard and computer while you are away from your desk.

K menu -> Settings -> System Settings -> Display and Monitor -> Screen Saver
  • Set a security password:
Screen Saver -> Require password to stop (ticked)
  • A login session can be automatically locked with a screensaver (after a timeout), requiring a user password in order to re-enter the session. See this section.

Run widgets in the Screensaver

A variety of widgets can be run from the screensaver.

K menu -> Settings -> System Settings -> Display and Monitor -> Screen Saver -> Allow widgets on screensaver (ticked) -> Configure Widgets...
  • Note: The kdeplasma-addons package may need to be added to your system for this to work.
  • Due to an ongoing bug, although the position of the widget can be manipulated by dragging it, the size of the widgets added to the screensaver screen can only be edited manually in the file ~/.kde4/share/config/plasma-overlay-appletsrc:
kate ~/.kde4/share/config/plasma-overlay-appletsrc

For example, to edit the screen placement and size of the Clock widget, look for the section with plugin=clock and edit the line similar to


until it has the desired settings. In this example, the x-offset from the top left corner is 17, the y-offset is 10, the width is 256, and the height is 256. Edit them (and other settings) as desired and save the configuration file.

Partition Managers

Also see these tips for partitioning scheme suggestions, other partitioning tools and methods, and usage of multiple partitions for multiple OSs.

GParted Partition Manager

Gparted is a GTK (Gnome)-based partition manager that can also be used with KDE.

  • This utility works best when run from a LiveCD. The newest versions of the GParted LiveCD are UEFI-compatible.
  • Recent versions of the Ubuntu LiveCD (but not the Kubuntu LiveCD, which uses Partition Manager instead) have a copy of GParted on them. Start the Ubuntu LiveCD in demo mode (not in install mode) and then start GParted:
Menu -> System -> Administration -> GParted
  • You can also install the package into your OS (once it is installed on your hard drive):
sudo apt-get install gparted

KDE Partition Manager

KDE Partition Manager is a KDE-based partition manager used during the installation of Kubuntu. It functions similarly to GParted (and can be used instead of GParted).

  • This utility works best when run from a LiveCD. Recent versions (Natty 11.04 or later) of the Kubuntu LiveCD (but not the Ubuntu LiveCD) have a copy of KDE Partition Manager on them. Start the Kubuntu LiveCD in demo mode (not in install mode) and then start KDE Partition Manager:
K Menu -> System -> KDE Partition Manager
  • If not already installed on your system:
sudo apt-get install partitionmanager

System Backup and Recovery


Rsync is the directory backup and transfer tool for Linux. It is installed by default in Ubuntu. It can provide any type of backup, and options are extensive. Several GUI frontends for Rsync are listed here.


GRsync is a GTK-based GUI front-end for Rsync. Install:

sudo apt-get install grsync


Bacula is the most widely-used GTK-based open source (GPL-licensed) network backup utility that is used in both server and desktop installations. A catalogue of backups can be maintained using MySQL, PostgreSQL, or SQLite. For more info see the Ubuntu documentation. Both text-based and GUI frontends are available. Install the MySQL version:

sudo apt-get install bacula


SBackup is a simple backup and restore utility for the GTK-desktop. Install:

sudo apt-get install sbackup

Keep (Backup and Recovery)

Keep is a QT/KDE based backup utility used in previous versions of Ubuntu. It is no longer maintained and is not included in Ubuntu by default. Install:

sudo apt-get install keep


  • Menu -> Applications -> System Tools -> Keep (Backup System)
  • Backup:
Click "Add a Directory to Backup"
Select directories you wish to backup
Select a location to place the backup
Set how often you wish the backups to take place, and how long to keep them
Click "Backup Now"
Select the directory groups you wish to backup.
  • Recover:
Click "Restore a Backup"
Select the directory groups you wish to restore.

Partimage (Partition backup)

Partimage is a free open-source utility to back up an entire partition into an .iso image. It can be used across a network, as well. Install and run:

sudo apt-get install partimage
sudo partimage

Partimage cannot be used from within the partition you wish to backup. You will either have to run it from a different partition or from a LiveCD that contains it. (A serious limitation of Partimage is its inability to backup/restore split image files to/from multiple media (e.g. spanned DVDs/CDs), limiting its usefulness as an inexpensive cloning and distribution solution. Partition image backup/restoration must be to/from a single hard drive, large capacity USB stick, or networked storage space.)


An entire partition's filesystem can easily be copied to another partition using the cp -a command. (However, this cannot be done for the partition of a filesystem that is running. Use the (K)Ubuntu LiveCD to copy partitions when necessary.) Obviously the destination partition should be as large or larger than the source partition, and while not necessary, probably is best if both partitions are of the same filesystem type (e.g. ext4). Use the KDE Partition Manager or GParted to create or manipulate the destination partition, if necessary. To copy the entire filesystem, for example, from the ext4 partition /dev/sda6 into the ext4 partition at /dev/sda7, mount both partitions:

sudo mkdir /media/partsda6
sudo mkdir /media/partsda7
sudo mount /dev/sda6 -t ext4 /media/partsda6
sudo mount /dev/sda7 -t ext4 /media/partsda7

Then merely copy the contents from one partition to the other:

sudo cp -a /media/partsda6/* /media/partsda7
  • Of course, once the partition's filesystem is copied, a bootmanager (Grub2 or Grub Legacy) will have to be updated/reconfigured to recognize the new partition's OS in order to enable it to boot. Also, the /etc/fstab file of the new partition's filesystem may need to be edited (in regards to the UUIDs of the various partitions), to prevent conflicts. To determine the UUIDs of all current partitions on a hard drive:
sudo blkid

Edit fstab so that the UUIDs are correctly reflected there.

  • To confirm that the file copy has completed, the Linux command du (also see these tips) can be used to calculate the disk usage for both the source and destination folders in order to compare the values (to ensure that they are the same). For example, the values should be the same for both partitions after copying has completed:
sudo du /media/partsda6
sudo du /media/partsda7


dd is a *nix command that enables the copying of files or an entire disk using a single command. Parameters must be precisely specified to avoid risk of accidentally erasing data. See these brief instructions or these instructions for detailed options. You cannot copy a hard drive that contains the operating system you are currently running. Instead, boot into a LiveCD and run the dd command that way. An example command to copy Hard drive X to Hard drive Y is:

dd if=/dev/hdx of=/dev/hdy
  • ddrescue is a variation of the dd command that allows working with potentially corrupted datasets, partitions, or hard drives.

FSArchiver (Filesystem Archiver)

FSArchiver is a utility to backup the filesystem by files (instead of by partition blocks). A filesystem backed up in this way can be moved to a different sized partition or another disk filesystem altogether (e.g. from ext3 to ext4). Backups can be split and stored on (and restored from) spanned media (e.g. multiple DVDs/CDs). It is included in the System Rescue CD. Install:

sudo apt-get install fsarchiver

System Rescue and Cloning Utilities

System Rescue CD

SystemRescueCD is a LiveCD that includes important utilities such as GParted, Partimage, ddrescue, Rsync, and FSArchiver. Several of these utilities cannot be used from within a running partition, so using them from a LiveCD is often necessary. Download and burn the LiveCD from the website.


Clonezilla allows the backup or duplication of a partition for a single machine or for multiple machines over a network. (It is similar to Norton Ghost.) It includes Partimage, partclone, and other utilities. It is available as a LiveCD which can then be burned. (A serious limitation of Clonezilla is its inability to backup/restore split image files to/from multiple media (e.g. spanned DVDs/CDs), limiting its usefulness as an inexpensive cloning and distribution solution. Partition image backup/restoration must be to/from a single hard drive, large capacity USB stick, or networked storage space.)

Disk Imaging software

  • G4U is a utility to image a disk bit by bit.
  • G4L is a utility to image a disk bit by bit. It includes a GUI interface.

Ubuntu Customization Kit

sudo apt-get install uck

Remastering software

Debian and (K)Ubuntu Linux operating systems can be "remastered" and customized (using one of a number of utilities) for re-distribution. (See this Wikipedia list.) This enables an organization to pre-load desired applications and customizations for distribution among its members, while preserving the intrinsic architecture and function of (K)Ubuntu. The customized (K)Ubuntu OS can then be distributed on a CD or on a USB flashdrive. Users are then free to further customize the OS, or even to revert back to the original default (K)Ubuntu settings. Also see the Ubuntu wiki.

  • oem-config-gtk
sudo apt-get install oem-config-gtk

Run (K)Ubuntu LiveCD from a USB pendrive

The (K)Ubuntu LiveCD can be installed on and run from a USB pendrive. Settings can be "persistently" saved (but the LiveCD kernel modules can not be upgraded). Programs can be installed and run, however, and files saved to the USB drive. (The installed programs will remain installed). A (K)Ubuntu Live CD is needed to do the installation. For additional info, see the Ubuntu Official documentation, the Ubuntu Community documentation or the Pendrivelinux instructions.

The USB "LiveCD" can be used to install (K)Ubuntu on computers (including netbooks) that do not have CD-ROM/DVD drives. See these instructions to boot from a USB flashdrive.

USB pendrives to be used to run (K)Ubuntu should have a minimum of 2 Gb (preferably 4 Gb). If you wish to install a fast, fully functional Linux system on a pendrive that has less memory than that, use PuppyLinux or Lubuntu.

USB Creator

You can make a "LiveCD" on a USB pendrive using USB Creator and either a LiveCD or an .iso version of the LiveCD stored on your hard drive. USB Creator is installed by default in (K)Ubuntu. If not, install:

sudo apt-get install usb-creator-gtk
  • Run:
Menu -> System -> Startup Disk Creator

Create a boot CD to allow booting from the USB drive

Many computers do not allow booting from a USB drive (but they do allow booting from the CD-ROM). You can create a CD-ROM using these Pendrivelinux instructions and set your BIOS to boot from this CD-ROM. When you boot from this CD-ROM, it will use the bootup files on the (K)Ubuntu USB drive you previously created (in the step above).

User Administration

Users and Groups

K Menu -> System -> System Settings -> Advanced -> User Management
  • Add New Users
K Menu -> System -> System Settings -> Advanced -> User Management -> User Accounts -> Add
  • Remove Users
K Menu -> System -> System Settings -> Advanced -> User Management -> User Accounts -> user -> Delete
  • Modify Users
K Menu -> System -> System Settings -> Advanced -> User Management -> User Accounts -> user -> Modify

It is quite often necessary to have extra privileges to do certain tasks. These privileges are assigned to your user by belonging to certain groups. The tasks are allowed to be performed by any user belonging to the group associated with that task.

Example: a "sudoer" is a user who can perform certain administrative tasks, such as updating the system. To become a "sudoer" a user must belong to the "sudo" group.
K Menu -> System -> System Settings -> Advanced -> User Management -> User Accounts -> user -> Modify -> Privileges and Groups --> sudo (ticked)

To become an administrator, you must belong to the adm, admin, and sudo groups. To be a virtualbox user, you must belong to the virtualbox group. To change printer settings you must belong to lpadmin. To use the cdrom, you must belong to cdrom. To use hot-pluggable devices, you must belong to plugdev. To share Samba folders (on a Windows-based network), you must belong to sambashare. To access NTFS files using the virtual filesystem fuse, you must belong to the fuse group. To use many games, you must belong to the games group. The list is long, and not always obvious.

Unfortunately, while this is the feature that gives Linux such a high-level of security, it can also take diligence to remember to add your user to certain groups. It is not uncommon for programs and functions on your system not to work merely because you don't have privileges to do so because you forgot to add your user to the appropriate group(s).

Of most importance, you must already be an administrator in order to change membership in groups. Therefore, if you create a new user and intend to give that user administrative privileges (by assigning the user to the administrative groups), you must do so from your original administrator account (the one you set up at installation) or from another administrative user account.


PolicyKit-KDE is the KDE frontend for PolicyKit, a toolkit for controlling system-wide user privileges.

Timekpr (Parental controls)

Timekpr is a program to track and control the computer usage of user accounts. (This is different from KTimeTracker, which merely records your usage but does not restrict it.) It is available from a Launchpad PPA.

  • If updating, remove any prior versions:
sudo dpkg --purge timekpr
deb deb oneiric main
deb-src deb oneiric main
  • Install:
sudo apt-get install timekpr
When prompted which default display manager to use, select "kdm"
  • Start:
K menu -> System -> Timekpr Control Panel

Web content filtering

DansGuardian provides web filtering capability, similar to NetNanny. It is useful for limitng objectionable content in publicly accessible workstations, or for filtering objectionable content for younger users. It integrates with ClamAV, and uses several criteria for filtering websites (which is difficult to modify). It is used with Tinyproxy (best for individual users) or the Squid proxy (best for a network server). Install:

sudo apt-get install dansguardian tinyproxy
sudo apt-get install dansguardian squid

See these installation instructions for setup details. In brief,

  • Edit the dansguardian configuration file:
sudo nano /etc/dansguardian/dansguardian.conf
comment out the UNCONFIGURED line:
If using tinyproxy instead of Squid, change the proxyport to 8888:
proxyport 8888
  • Reinstall dansguardian:
sudo apt-get install --reinstall dansguardian
  • Set your browser to use the localhost:8080 proxy. For example, in Firefox:
  • Firefox -> Edit -> Preferences -> Advanced -> Network -> Settings
  • Manual proxy configuration -> HTTP proxy: localhost -> Port: 8080
  • A Webmin module is available to administer settings. Also, a GUI to change Dansguardian settings called Webstrict is in development.

System Administration

Automating Tasks (cron)

  • Cron is a system daemon that runs tasks in the background according to instructions found in a crontab file. To edit the crontab file for the current user:
crontab -e

Tasks that normally require administrative (sudo) privileges should be added to the root user's crontab:

sudo crontab -e

Add commands using the format specified here (or see the Ubuntu Community Help). The crontab command format can also be found using:

man crontab
  • Scheduled/automated tasks (cron events) can also be edited using a KDE GUI interface for cron. Install the configuration module:
sudo apt-get install kde-config-cron
K menu -> System -> System Settings -> Task Scheduler

KWallet (Password Manager)

KWallet is a password manager for the KDE desktop. Refer to the handbook for detailed usage instructions. If a password is not desired to be used for an application, merely leave the password blank when prompted.

Change themed background wallpapers

The background wallpapers for the KDE themed greeter (at login) and the KDE screen locker can be changed by one of several methods (which are not intuitive). See this KDE Forums thread for options and details.

  • The screen locker (lockable screensaver) can be activated in the System Settings (System Settings -> Display and Monitor -> Screen Locker). To change the screen locker background image, here is a suggested method.
  • Edit the screen locker UI settings:
sudo kate /usr/share/kde4/apps/ksmserver/screenlocker/org.kde.passworddialog/contents/ui/main.qml
  • Change
source: theme.wallpaperPathForSize(parent.width, parent.height)
/* source: theme.wallpaperPathForSize(parent.width, parent.height) */
source: "1920x1080.png"
Note: Make sure to include the quotation marks around the image filename. Use a size for the filename that matches your screensize. If your screen is only 1024x768, for example, you can use "1024x768.png" for the designated filename.
  • Choose (or create) a .png image of the appropriate size to be used as the background image for the screen locker. For example, I happen to like the wallpapers of the Ariya theme and use the /usr/share/wallpapers/Ariya/contents/images/1920x1080.png image for my screen locker. Create a symbolic link for that image to the screen locker folder:
sudo ln -s /usr/share/wallpapers/Ariya/contents/images/1920x1080.png /usr/share/kde4/apps/ksmserver/screenlocker/org.kde.passworddialog/contents/ui/1920x1080.png
Note: Make sure the link filename matches the one specified in the edited settings file.

Boot Menu

Login Menu settings

You can change the Login menu settings from the GUI interface:

K menu -> System Settings -> Advanced -> Login Manager

You can choose an integrated theme or select individual components of the login screen/process.

GRUB boot manager settings


Precise comes with Grub2, a difficult boot manager to customize. (Grub2 is also known as grub-pc.) See the evolving instructions at the Ubuntu wiki or Ubuntu forums. In brief, some settings can be edited:

sudo kate /etc/default/grub
sudo update-grub

Alternatively, use the command:

 sudo grub-mkconfig --output=/boot/grub/grub.cfg
Grub2 background image, colors, fonts
  • See this Ubuntu Forums thread.
  • Any background image can be used for Grub2 by placing the image in the /boot/grub folder and then reconfiguring Grub2:
sudo update-grub

The image ought to be the same size as the Grub2 startup resolution specified in /etc/default/grub (e.g. 1024x768).

  • A selection of splashimages can be installed into the /usr/share/images/grub folder:
sudo apt-get install grub2-splashimages
  • One of the images can be linked to the /boot/grub folder and used as the splash image. For example:
sudo ln -s /usr/share/images/grub/Plasma-lamp.tga /boot/grub
sudo update-grub
Change the default menu item
  • There are several ways to change the default Grub2 menu item, but only one is reliable. The menu items in Grub2 change name and position in the list with every kernel upgrade. However, if you choose the default menu item by name, you can reliably set it as the default. For example, if you wish to boot a Windows OS as the default and the Grub 2 menu lists it as Microsoft Windows 98SE Ancient Edition (on /dev/sda1) then edit /etc/default/grub:
sudo kate /etc/default/grub

and change the entry to resemble:

GRUB_DEFAULT="Microsoft Windows 98SE Ancient Edition (on /dev/sda1)"

then regenerate the Grub2 config file:

sudo update-grub

To find out the names of the menu items, use:

sudo grep menuentry /boot/grub/grub.cfg
  • Note: There is a bug in Grub2 v.1.99 such that if the GRUB_DEFAULT option is used, the Grub2 menu can not be entered (for manually selecting a menu item). If the default option is a non-Linux OS, there will then be no way start a Linux OS (and therefore no way to subsequently change the /etc/default/grub configuration file). Use this option with great care.
Grub2 configuration
  • A KDE-based frontend to Grub2 configuration can be installed:
sudo apt-get install kde-config-grub2
K Menu -> System -> System Settings -> Startup and Shutdown -> Grub2 Bootloader
Protecting Grub2 from cracking
  • To add password protection, in the /etc/grub.d/40_custom configuration file
sudo kate /etc/grub.d/40_custom
add the lines:
set superusers="user1"
#password_pbkdf2 user1 grub.pbkdf2.sha512.10000.biglongstring
password user1 insecurecleartextpassword

and change your password to something other than insecurecleartextpassword, or use the pbkdf2-encrypted method described here. You can then password-lock menu items as well. For detailed info see this blog.

Grub Legacy

The older version of GRUB ("Grub Legacy") is available, for use with a boot partition, for example. Install:

sudo apt-get install grub
  • If you have multiple operating systems (OS) on your computer, you may be using the GRUB Legacy boot manager (in a boot partition, for example). You can edit the options for GRUB Legacy in the menu.lst configuration file. (See this detailed info.)
sudo nano /boot/grub/menu.lst
(kate can also be used instead of nano as the text editor.)
Removing Grub2 entirely

Personally, I have had nothing but trouble with Grub2 since the beginning. Every version brings a new headache and one OS or another stops loading. I have reverted to Grub Legacy entirely by uninstalling Grub2 (grub-pc) prior to installing Grub Legacy (grub):

sudo apt-get remove grub-pc grub-common kde-config-grub2 --purge
sudo apt-get install grub
Chainloading Grub2 from Grub Legacy
  • To chainload Grub2 (installed in this example with the OS in the /dev/sda7 partition) from Grub Legacy (stored in a boot partition, for example), use an entry of this format in the Grub Legacy /boot/grub/menu.lst configuration file:
title		(K)Ubuntu Precise OS (chainloader)
rootnoverify	(hd0,6)
chainloader	+1
  • Grub2 is erratic, however. In many situations I don't bother to chainload it at all. Instead, it is possible to bypass Grub2 entirely and load the OS directly using Grub Legacy (stored in a boot partition, for example) using an entry in /boot/grub/menu.lst of the format:
title		 (K)Ubuntu Oneiric OS (chainloader)
rootnoverify	 (hd0,6)
kernel	 	 /vmlinuz root=/dev/sda7 ro
initrd	 	 /initrd.img
  • My old method for chainloading Grub2 (installed in this example in the /dev/sda7 partition) from Grub Legacy used an entry in the Grub Legacy configuration file (/boot/grub/menu.lst) with this format:
title		 (K)Ubuntu Maverick OS (chainloader)
rootnoverify	 (hd0,6)
kernel	 	 /boot/grub/core.img
This method, however, requires a current core.img to have been created with grub-mkimg (part of the grub-install process). When there are substantial changes to the partition or the kernel, the core.img must be re-created by re-installing Grub2 into the OS partition (in this example /dev/sda7 corresponds to (hd0,6) ):
sudo grub-install /dev/sda7
Protecting Grub Legacy from cracking
  • To add password protection, in the /boot/grub/menu.lst configuration file, uncomment (remove the hashmark) from the line:
#password topsecret

and change your password to something other than topsecret, or use the md5-encrypted method described here. You can then password-lock menu items by adding the descriptor lock below the title of any item menu.

Default Applications

You can choose which program to use as your default program for a specific task.

K menu -> System -> System Settings -> Default Applications

Kill a process

Sometimes a program (or "process") just freezes. To "kill" (or end) the program/process:

K menu -> System -> System Monitor -> highlight the errant process -> Kill process

From the command line:

sudo killall process
where process is the name of the frozen program, such as firefox.

Manage Bootup/Startup services

There are two ways to select which services should be started at bootup, and I recommend both. The KDE System Settings only shows KDE services, so the Bootup-Manager is also required to show any GTK-based services installed on your system. Preventing unneeded or unwanted services from loading at startup can improve system performance.

  • Select KDE services to run at startup:
K menu -> Settings -> System Settings -> Startup and Shutdown -> Service Manager
  • Install the GTK-based Bootup-Manager:
sudo apt-get install bum
  • Run Bootup-Manager:
K menu -> Settings -> Bootup-Manager

Enabling NUM LOCK On Startup

K Menu-> System -> System Settings -> Keyboard & Mouse -> Keyboard ->"turn on Numlock on KDE Startup"

Working with Menus

  • There are two menu formats -- Kickoff Menu Style and Classic Menu Style. To swtich between the two, you must have the Widgets unlocked:
Right-click K menu -> Unlock Widgets

the choose your menu style:

Right-click K menu -> Switch to ... Menu Style
  • To edit menus, unlock widgets as above, then:
Right-click K menu -> Menu Editor

Create an encrypted folder

With Kubuntu, you can create a folder whose contents are encrypted. See these instructions.

Create a symlink from a file to another location

A symbolic link (also known as a symlink) is a method in Linux of referring to a file (or directory) in one location from another location. Usage:

ln -s /path/to/source /path/to/destination

If /path/to/destination requires superuser rights, then use:

sudo ln -s /path/to/source /path/to/destination

This is similar to, but more powerful than, creating Shortcuts, with which former Windows users may be familiar.

Assign a root password

To be able to log in as root directly, you must assign a root password. This can be done with:

sudo passwd root

Afterwards, you can use


to get a root prompt. You would then use the root password.

Get a root prompt without using a root password

If you have not set a root password (or don't know it), you can obtain root user privileges anyway. From the command-line terminal (Konsole):

sudo -s
sudo su
sudo bash

You will use your own user password instead of a root password.

You could also get a prompt to become any other user on the computer by typing:

sudo su <username>

Use the File Manager as root

  • A file manager (such as Dolphin) can be opened with root user (superuser) privileges, allowing access to folders and files with root permissions.
kdesudo dolphin
kdesudo konqueror
Of course, you can make a Menu Item / Shortcut using either the kdesudo dolphin or kdesudo konqueror command, as well.
  • When opening a file manager in this way, the default folder will be /root/. User files will be found by clicking on the "Root" icon and then navigating to the /home/user/ folder(s).
  • It is also possible to open a file manager in the ~/ folder (i.e. /home/user/ folder) using
sudo dolphin
There is a risk to doing this, however. Some files with user-level permissions may unpredictably be changed to root user (superuser) permissions (especially when copying or moving files) when the file manager is opened using sudo. It is worthwhile to double-check file permissions for unintended consequences. While I have never seen any problems using sudo dolphin, in general it is recommended to use kdesudo dolphin instead.
  • A Root Actions Servicemenu is available for Dolphin in order to perform certain functions with root user (superuser) permissions. However, this service menu does not allow a user to enter folders that have root permissions unless Dolphin has been started using kdesudo dolphin.

Synchronize clock to network time server

The Network Time Protocol (NTP) allows time synchronization of your computer to time servers on the Internet.To enable it:

K menu -> System Settings -> Date & Time
Check the "Set date and time automatically" option
Choose an ntp time server near you.

Manually Mount and Unmount a device

  • To manually mount a device:
sudo mount /dev/hda

replace /dev/hda with the location of the device.

  • To manually unmount a device:
sudo umount /dev/hda

replace /dev/hda with the location of the device.

Windows Compatibility

Mounting NTFS Partitions (with read/write privileges)

Install NTFS-3G, the NTFS manager:

sudo apt-get install ntfs-3g

Note: You should also be a member of the fuse group to use ntfs-3g.

Find out the name of your ntfs partition:

sudo fdisk -l

Method 1: In this example, the NTFS drive is listed by fdisk as /dev/sda2, but yours may differ.

Make a mount point for the drive:

sudo mkdir /media/WindowsNTFS

Edit fstab:

sudo nano /etc/fstab

Comment out the automatically added lines by Kubuntu installation:

#/dev/sda2  auto nouser,atime,noauto,rw,nodev,noexec,nosuid 0 0
#/dev/sda2 /mnt auto user,atime,noauto,rw,nodev,noexec,nosuid 0 0

and instead add the line:

/dev/sda2 /mnt/WindowsNTFS ntfs-3g quiet,defaults,rw 0 0

Note: There are many ways to mount the drive, depending on your needs. The fstab file controls this process. See How to edit and understand fstab and Intro to using fstab.

In this example, I indicated that the file system was an ntfs-3g filesystem, so did not use the auto option (which detects the filesystem automatically). I used rw to specify read/write privileges for all users, but umask=0 and umask=000 are accepted by some kernels.

Method 2: Edit fstab:

sudo nano /etc/fstab

When Kubuntu installation finishes, it mounts all ntfs partitions automatically with ntfsprogs, adding a line similar to the following to fstab:

UUID=8466268666267956 /media/sda1     ntfs    defaults,gid=46 0       1

Change this line to:

UUID=8466268666267956 /media/sda1     ntfs-3g    defaults,nls=utf8,locale=zh_CN.UTF-8,rw,gid=46 0       1

In this example, I have a Chinese-language Windows installation on my first partition, so I set the locale parameter (locale=zh_CN.UTF-8) so that my Chinese documents can display correctly. Setting rw (same as umask=0 or umask=000) lets me read/write the partition without sudo. gid=46 specifies that the drive will belong to the group of hot-pluggable devices (plugdev) and is not necessary unless your ntfs drive is a hot-pluggable one (such as an external USB drive). nls=utf8 is the default and is optional for most ntfs users, but there are other options for Chinese (and other specialized character-set users).

Mounting FAT32 Partitions

Follow the above instructions, but use vfat instead of ntfs-3g.

In other words, if you have made a mount point directory /mnt/WindowsFAT32 and your FAT32 drive is /dev/sda3, then edit the /etc/fstab file to include the line:

/dev/sda3 /mnt/WindowsFAT32 vfat quiet,defaults,rw 0 0


CPU and motherboard

The Linux kernel in versions of (K)Ubuntu starting with Karmic Koala implemented mandatory CPU temperature and fan speed sensor monitoring (which was optional in previous kernels). The output from the sensors is used to effect CPU scaling (throttling) in the event of "out of range" temperature values. However, not all motherboards/CPUs have sensor drivers available, and due to a bug in the feedback routine, missing sensors drivers incorrectly report as an "out of range" error in the kernel. Originally this threw multiple errors which were logged (using rsyslogd) to both the /var/log/kern.log and the /var/log/syslog files, filling them to multiple Gb size within a few hours. This had the effect of slowing, then freezing, the machine. (Eventually the machine will simply not boot.)

The workaround involves disabling the ONDEMAND module.

Disable CPU Frequency scaling

This error shows on my system (at boot and in the kernel and system logs) as:

powernow-k8: failing targ, change pending bit set

My motherboard does not have drivers for my CPU fan sensor. Therefore, the Linux kernel cannot monitor the temperature and fan speeds properly and throttles the CPU (aka frequency scaling) inappropriately. This has the effect of slowing or freezing my computer. To turn off this behavior, I used the Debian RCConf utility:

sudo apt-get install rcconf dialog
sudo rcconf

and unchecked the ONDEMAND item. (I also unchecked the fan control item). I then rebooted. For more info, see this.

  • An alternative command is:
sudo update-rc.d ondemand disable

(Note: These instructions may not work with newer Linux kernels.)


libsensors (libsensors3 and/or libsensors4) is a module that allows an interface (such as lm-sensors) to monitor your motherboard/CPU temp and fan speeds. You can adjust settings:

sudo kate /etc/sensors.conf
sensors -s

libsensors and lm-sensors are not used by the Linux kernel (which uses other routines).

Some hardware CPU sensors are not recognized by the Linux kernel, causing system slowdown or freezing. Here is some info about hardware/sensors problems.

Sensors-applet (Motherboard monitoring)

Sensors-applet (or xsensors) is the Gnome (Ubuntu) frontend for lm-sensors. These sensors monitor the temperature and fan-speed sensors of your motherboard.

sudo apt-get install sensors-applet lm-sensors
sudo sensors-detect
  • Make sure your sensors are installed.

For more info, see this thread.

Graphics Cards

Frequency Out of Range / Choose New Resolution

  • If this error appears when booting Natty Narwhal or later versions, see the solution found here at Ubuntu Forums:
  • Edit the grub configuration file:
sudo nano /etc/default/grub
  • Edit the lines:
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
by removing the comment hashmark and choosing an appropriate resolution so that the lines resemble:
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
  • Re-build the grub configuration file:
sudo update-grub

Install Latest Nvidia/ATI drivers

Ubuntu uses a GUI frontend to Jockey for the installation of the proprietary nVidia drivers (and other proprietary drivers).

Menu -> System -> Hardware Drivers
  • Sometimes after a kernel upgrade a proprietary driver may stop working. In such a case, try installing the new linux-headers that match the newly upgraded kernel:
sudo apt-get install linux-headers-$(uname -r)
If dkms and build-essential have never been installed on your system, these can also be worthwhile:
sudo apt-get install dkms build-essential

Intel integrated graphics cards

  • None of my computers with Intel integrated graphics had problems installing Precise. If the screen blanks or freezes at bootup, however, or flashes a "Frequency Out of Range" error several times, these steps may work around this problem. (I found, however, that these changes were NOT necessary and actually provided me with a worse boot up appearance).
  • When booting up, choose recovery mode as root (or "root with networking"). This will give the command line (as root user).
  • Edit the Grub2 configuration file:
sudo nano /etc/default/grub
  • Make sure a graphics mode is specified (i.e. the relevant line is uncommented), according to these steps, such as:
  • Change the line:
or, alternatively,
GRUB_CMDLINE_LINUX_DEFAULT="quiet nouveau.blacklist=1"
In previous versions of (K)Ubuntu I used
GRUB_CMDLINE_LINUX_DEFAULT="quiet i915.modeset=0"
but I don't think this option is required or used any longer.
  • Then regenerate the Grub2 configuration file:
sudo update-grub
sudo grub-mkconfig --output=/boot/grub/grub.cfg
After rebooting, graphics will usually work.
Intel graphics resolution problems
  • On a fresh installation of Karmic Koala I had no problems with my onboard Intel graphics card. However, on an update from Jaunty to Karmic, I could not get higher screen resolutions -- the same problem I had in Jaunty. A solution to achieve higher resolutions is to revert to the old Intel drivers (used in Intrepid), as detailed here.
Screen Keeps Flickering

If you have an Intel Corporation Mobile 915GM/GMS/910GML card, your screen may flicker every 5-10 seconds. To prevent this:

  • Menu -> System -> Administration -> Advanced -> Service Manager -> Uncheck "Detect RANDR (monitor) changes"

Reconfigure xserver-xorg

sudo dpkg-reconfigure xserver-xorg


Before installing any driver for ATI or nvidia, please make backup xorg.conf before following this method.

sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak

If you have edited this file but would like it to be automatically updated again, run the following command:

sudo dpkg-reconfigure -phigh xserver-xorg

If you want to try this xorg.conf after installing the driver, you must back up your xorg.conf as following. And then, edit /etc/X11/xorg.conf in text editor. Add or modify this xorg.conf sample.

xorg.conf for nvidia
 Section "Screen"
 Identifier "Default Screen"
 Device "Configured Video Device"
 Monitor "Configured Monitor"
 SubSection "Display"
 Depth 16
 Modes "1280x1024" "1024x768"
 Option "AddARGBGLXVisuals" "True"

 Option "AddARGBGLXVisuals" "True"
 Defaultdepth 24
 Section "Module"
 Load "glx"
 Load "GLcore"
 Load "v4l"
 Section "Device"
 Identifier "Configured Video Device"
 Boardname "vesa"
 Busid "PCI:1:0:0"
 Driver "nvidia"
 Screen 0
 Section "Device"
 Identifier "Device0"
 BoardName "Generic Geforce 5500"
 Driver "nvidia"
 Vendorname "NVIDIA Corporation"
 Option "DualHead" "1"
 Option "ShadowFB" "1"
 Option "FPScale" "1"
 Option "TwinView" "True"
 Option "TwinViewOrientation" "RightOf"
 Option "UseEdidFreqs" "True"
 Option "Metamodes" "1024x768,1024x768"
 Option "UseDisplayDevice" "DFP"
 Section "Device"
 Identifier "Videocard0"
 Driver "nv"
 VendorName "NVIDIA Corporation"
 BoardName "GeForce 7600 GT"
 Section "InputDevice"
 Identifier "Generic Keyboard"
 Driver "kbd"
 Option "XkbRules" "xorg"
 Option "XkbModel" "pc105"
 Option "XkbLayout" "us"

 Section "InputDevice"
 Identifier "Configured Mouse"
 Driver "mouse"
 Section "ServerLayout"
 Identifier "Default Layout"
 screen 0 "Default Screen" 0 0
 Section "Extensions"
 Option "Composite" "Enable"
xorg.conf for intel
  • Make sure you try the solution here (including sudo update-grub and rebooting) before creating a new xorg.conf. It may solve your problem and you may not need this step.
Section "Device"
       Identifier      "Configured Video Device"
       Driver          "intel"
Section "Monitor"
       Identifier      "Configured Monitor"
Section "Screen"
       Identifier      "Default Screen"
       Monitor         "Configured Monitor"
       Device          "Configured Video Device"

Installation of ATI and nVidia Graphics drivers

nVidia Driver

The current proprietary nVidia drivers are automatically installed using:

Menu -> System -> Administration -> Hardware Drivers

Look for the current drivers to activate there.

  • Here are alternate manual instructions.
  • Please make a backup of xorg.conf before following this method.
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
  • Install the nvidia-settings package:
 sudo apt-get install nvidia-settings
  • Download the nVidia driver:
wget -O
sudo sh

and choose yes to any verbose response. After you install the driver, reboot your computer.

ATI Driver

If you have problems with ATI drivers after upgrading, check this link for solutions to common problems with ATI.

Monitors / Displays

Turn off power saving

Even when on AC power, the power saver feature of Ubuntu sometimes changes the screen brightness to the battery setting on laptops. This was a problem with the ACPI power management module in the past, but should now be fixed. If not, change the settings:

To access the Guidance Power Manager module, click on the power icon on the desktop taskbar.
Change the brightness setting for "Battery powered" to maximum.

You can also turn off power management settings (invoked when the computer is idle):

Menu -> System -> Preferences -> Power Management -> Display -> Put display to sleep when inactive for: Never -> Close

Configure Dual Monitors with nVidia

  • Make sure that the nVidia driver has been installed and is functioning properly on your first screen. Also, make sure both monitors are connected.
  • Menu -> Administration -> NVIDIA X Server Settings
or from the command-line terminal (Terminal or Konsole) type:
sudo nvidia-settings
  • Select "X Server Display Configuration".
  • You should see 3 boxes (2 if your card doesn't have an S-Video out). From here you can configure all of your card's outputs.
  • Check the "(Disabled)" box.
  • Select "Configure...".
  • The most common choice is TwinView. Select it.
  • Setup the desired screen resolutions and positions of your two active displays.
  • The new display will likely have resolution set to "Auto" to match your first. Change this if you wish.
  • Leave the first screen's position as "Absolute" and set your second display's position relative to that.
  • "Clone" means the same output on both.
  • Once you are satisfied with your settings, hit Apply to test them.
  • Note: if your displays are side-by-side, the kicker may extend across both screens as well as any maximized applications. This will be corrected when the X server is restarted.
  • If everything else is ok, hit "Save to X Configuration File". Now hit Ctrl+Alt+Backspace to restart X. You now have 2 screens!
  • Troubleshooting: if the X server fails to reload you can recover your old X configuration. In a terminal:
sudo cp /etc/X11/xorg.conf.backup /etc/X11/xorg.conf

Hard Drives

Scan hard drive and repair bad blocks

NTFS drive

  • A hard drive (including an external USB hard drive) can be formatted with the NTFS file system (used by Windows computers) using either GParted or KDE Partition Manager.
  • To scan for bad blocks on an NTFS drive (designated, for example, as /dev/sdb1, by one of the partition managers listed above):
sudo badblocks -nvs /dev/sdb1
  • The best utility for scanning and fixing an NTFS drive is still the Windows chkdsk utility. If the drive is mounted as drive E:, for example, in the Windows command line (run as an administrator):
chkdsk e: /f /r
where /f indicates to fix the filesystem and /r indicates to relocate bad blocks.


Smartmontools is a utility to monitor ATAPI- and SCSI-based hard drives using a daemon.

  • Install:
sudo apt-get install smartmontools
  • GSmartControl is a GUI for the SmartControl module of smartmontools. Install:
sudo apt-get install gsmartcontrol

USB Drives

  • Also see this section for information about running Kubuntu from a USB drive.

USB security

  • See this section for recommendations about securing USB drive access.

Add MTP capability

Many MP3 players, as well as the latest Android devices, use MTP (Media Transport Protocol) for transferring data to the device storage.

  • In KDE (Kubuntu), enable MTP capabilities by installing the kio-mtp package:
sudo apt-get install kio-mtp
After installation, the device should appear in the Dolphin (or Konqueror or Rekong) file manager when the USB cable is plugged in.
  • A Gnome-based utility, gMTP, for managing MTP-capable devices is also available:
sudo apt-get install gmtp
  • Troubleshooting Android device connectivity: As a security precaution the newest Android devices do not have USB transfer capabilities turned on by default. It is necessary to carefully consult your device's user manual to find the method for enabling USB transfers (also known as "USB debugging mode" on many devices). For example, on my device, it was necessary to tap the "Settings -> About phone -> Build #" button 7 times to merely enable the USB debugging option, and then enable "Settings -> Developer options -> USB debugging" as a separate step!

Optical Drives

Printers & Scanners

The CUPS printer interface recognizes many printers. Specific printers not recognized can often be installed using instructions found at the Linux Foundation OpenPrinting database.

Add a Printer

Menu -> System -> Administration -> Printing -> Server -> New -> Printer

Most of the time, your printer (if connected and turned on) will be detected automatically.

My network printer with its own IP address at was correctly installed at


You can also choose printers on a Windows system via Samba and other types of networked printers, in addition to directly connected printers.

  • An alternative method to access the CUPS interface is through a web browser. Go to the URL:

Change default CUPS printer margins

  • CUPS uses the maximum printable area of the chosen printer by default; there are no margins. The default settings for any printer can be changed in the PPD file for the specific printer found in the /etc/cups/ppd folder. Dimensions used in the PPD file are generally in points (in Postscript, 1 inch = 72 points). For my printer, Letter size is 612 x 792 points. I changed this to 576 x 756 points to make Letter size print 8 x 10.5 inches on the page.
  • Another easy method (to adjust margins) is to create a Custom paper size with the desired margins and use this as the default. (This only works for printers whose PPD files allow custom paper sizes). For example, create a Custom paper size that is 8 inches x 10.5 inches (which would leave a 0.5 inch margin on all sides) and set it as the default. This is easiest to accomplish through the browser-based configuration utility. Start the CUPS interface through the web browser URL:

Then from this interface set the Default Options for your printer:

CUPS -> Printers -> My Default Printer -> Set Default Options -> Media Size: Custom
-> Width: 8 -> Height: 10.5 -> Units: Inches -> Set Default Options

Now the "Custom.8x10.5" Media Size should appear in the Printer Options section for your printer. (You can then choose between this media size and the essentially marginless "Letter" media size at any time.)

Note: 8 x 10.5 inches = 203.2 x 266.7 mm = 576 x 756 points in Postscript (72 points per inch in Postscript).

Brother printers

Most Brother printers are auto-detected or can be installed directly from the CUPS interface. For additional drivers and instructions see the Brother help site. For information on a specific model, see the Linux OpenPrinting site.

HP Printers

For Hewlett Packard printers / scanners, install hplip and hplip-gui.

sudo apt-get install hplip hplip-gui
  • Add the printer:
Menu -> Applications > System Tools > HP Toolbox

This should set up printer / scanners for scanning as well.

  • For scanning, install Xsane:
sudo apt-get install sane xsane


Menu -> Applications -> Graphics > Xsane image scanning

A full library of Linux drivers for HP printers is here.


If you get no sound with a fresh install, check that the sound levels are not set to zero. Click on the sound (speaker) icon on the panel, and then mixer. You may need to expand the dialog window to show labels. Ensure levels aren't set to zero, especially PCM.


Sound in (K)Ubuntu is routed by Phonon either directly to your sound card or through the PulseAudio sound system. To use PulseAudio, you must install it. This can be done by installing the PulseAudio control modules (which will install pulseaudio as a dependency):

  • Install PulseAudio with the control modules:
sudo apt-get install pavucontrol paprefs
  • Although I no longer use it, in older versions of (K)Ubuntu I also (optionally) installed a system tray widget:
sudo apt-get install padevchooser

Some experimentation with the settings in

Menu -> System -> System Settings -> Multimedia

may be necessary to make sound on your system work properly.

Try setting PulseAudio as the first sound system if you are having troubles getting sound (even if you are using ALSA). If that doesn't work, try making it the last choice.

Some programs require ALSA sound and try to send sound directly through ALSA drivers. Check your program's preferences section to see if ALSA is selected. You may have to switch to PulseAudio (or even OSSound) if you can't get sound.

HDMI with PulseAudio

I could only get my HDMI audio on my computer to work this way, and I can't quite figure out why it works.

  • I checked to make sure my Mobile Intel 4 Series HDMI audio driver was installed (it is part of the most recent kernels):
aplay -l
aplay -L

This told me the HDMI card was recognized and configured properly. The problem was that no matter what I did, I couldn't get the sound piped through the HDMI card using ALSA, Kmix or any other settings (I tried every permutation).

  • In PAVUControl I selected the HDMI card as the output device:
Menu -> Multimedia -> PulseAudio Volume Control -> Configuration -> Internal Audio -> Digital Stereo (HDMI) Output

Then everything played through the HDMI audio card (through the cable to my HDTV).

This worked whether I had PulseAudio selected as the default audio or not (in System settings -> Multimedia). Don't ask me why. If PulseAudio Volume Control is not yet installed, install it:

sudo apt-get install pavucontrol
  • My HDMI port/output is only recognized if the HDMI cable is plugged in at bootup (it does not matter whether the HDTV power is on or not). If I plug in the HDMI cable after bootup, it isn't recognized.
  • After doing this, every program I use works: VLC, Audacious, or whatever. It does not seem to matter whether the application is using Default, ALSA, or PulseAudio for the audio output plugin. None of this makes sense to me, but it works. I'm happy to be able to play HDMI movies (through VLC) to my HDTV.
  • To change sound output back to my computer's internal speakers (ALSA), I returned the output setting:
Menu -> Multimedia -> PulseAudio Volume Control -> Configuration -> Internal Audio -> Analog Stereo Output
Recording with PulseAudio

To set the PulseAudio inputs that will be recorded by an application (such as Audacity or FFMPEG), the recording must be already started! Only then can the inputs (to be recorded) be selectable in PulseAudio.

  • For example, to record from a plug in microphone using Audacity, make sure the microphone is plugged in. Make sure in the Sound Mixer (icon) that the microphone is not muted and that the levels are set appropriately.
  • In PulseAudio Volume Control, select the device that will be the input.
Menu -> Multimedia -> PulseAudio Volume Control -> Input Devices -> Show: All Input Devices
-> Internal Analog Audio Stereo: Port: Analog microphone

Of course, you should use the device you wish to use here. You can also select the Monitor of Internal Analog Audio Stereo device, which will use as an input to the recording/capture application whatever happens to be playing through the sound card (except for hardware inputs).

  • Start Audacity (or other recording application). Make sure (in Audacity) that the Devices toolbar is visible:
Menu -> Multimedia -> Audacity -> View -> Toolbars -> Device Toolbar (ticked)

Assuming you are using ALSA, make sure ALSA is selected, and that pulse is selected for both the output and microphone input on the Device Toolbar. Start recording.

  • Start PulseAudio Volume Control. Under the Recording tab, you should see Audacity listed as "ALSA plugin: [audacity]: ALSA Capture from: Internal Audio Analog Stereo. If it isn't, then select it. (This is the tricky part that took me a long time to discover.)

Airport Express

Airport Express with Pulse Audio

Audio output can be streamed over your local network to an Airport Express. These capabilities require pulseaudio-module-zeroconf (for the Zeroconf/Bonjour networking protocol) and pulseaudio-module-raop (for Airport Express).

  • Install PulseAudio:
sudo apt-get install pulseaudio
Reboot to finish the installation.
  • Select PulseAudio as the output device in
Menu -> System -> System Settings -> Multimedia -> Device Preference
and move "Playback/recording through the PulseAudio sound server" to the top of every category (or at least the ones for which you wish to use PulseAudio).
  • Test some audio (e.g. playback through Amarok) to make sure the PulseAudio system is working. Some applications specifically require that the PulseAudio output is specified in their configuration settings, and some applications require a separate PulseAudio plugin to function properly.
  • Install additional modules in order to use Bonjour/Zeroconf and raop (Airport Express output):
sudo apt-get install pulseaudio-module-zeroconf pulseaudio-module-raop
  • Install utilities to control the preferences and volume of various PulseAudio devices:
sudo apt-get install paprefs pavucontrol
  • Enable discovery of the Airport Express by PulseAudio:
Menu -> Settings -> PulseAudio Preferences (Sound Audio preferences) -> Network Access

and check both:

Make discoverable network sound devices available locally
Make discoverable Apple Airtunes devices available locally
  • It is not clear to me which ports need to remain unblocked in order for Bonjour/Zeroconf and mDNS to discover the AEx. mDNS and Bonjour/Zeroconf use ports 5353, 5000, and 6000. (The PulseAudio server uses port 4713.) However, even when I unblock these the AEx doesn't seem to be able to be discovered until I turn off the firewall completely. (Once the AEx is discovered I turn the firewall back on and then have no other problems). I usually just add the IP address of the Airport Express on the LAN to the list of firewall-allowed connections. (Doing this still doesn't allow it to be discovered, though, for unclear reasons. Still, as long as a connection to the IP address of the AEx is allowed, I can turn the firewall back immediately after the AEx is located by the Zeroconf discovery and everything continues to stream fine.)
  • If your LAN's router allows traffic-shaping (QoS prioritization), giving priority to the traffic to/from the Airport Express can improve performance. Finally, be aware that screensavers can interrupt uninterrupted smooth audio output from a PC. If traffic to the AEx becomes choppy, disable your screensaver.
  • Open PulseAudio Volume Control:
Menu -> Multimedia -> PulseAudio Volume Control
  • If the AEx has been successfully discovered (the firewall may have to be turned off temporarily in order for the AEx to be discovered) the name of the AEx should show up as an Output Device:
PulseAudio Volume Control -> Output Device -> My AEx Name
If desired, the AEx can be set as the default "fallback" output device to always be used:
PulseAudio Volume Control -> Output Device -> My AEx Name -> click "Set as fallback" icon
If it is not set as the default fallback output device, it must be manually selected as an output device each time.
  • Start the application (such as Amarok or Audacious). To manually select which output device should be used, open PulseAudio Volume Control and choose the Playback output device for the application:
PulseAudio Volume Control -> Playback -> ALSA plugin [Amarok]: ALSA Playback on: -> My AEx Name
  • The output volume (for any of the output devices) can be set:
PulseAudio Volume Control -> Output Device -> My AEx Name

This was my old method. It works, but is probably unnecessary (and loads a lot of additional modules).

  • Install padvechooser (which also install paman, pavumeter, and paprefs):
sudo apt-get install padevchooser
  • Padevchooser is an applet for the taskbar panel. The PulseAudio Manager is accessible through the applet. Start Manager:
Menu -> Multimedia -> PulseAudio Device Chooser -> Manager -> Devices -> Sinks
  • Select the Airport Express as the output device ("sink"):

My AEx is discovered, but I got no sound through it until I selected it as the default sink (output) by one of two methods:

  • From the PulseAudio Device Chooser:
Menu -> Multimedia -> PulseAudio Device Chooser -> Manager -> Devices -> Sinks
I then noted the name of my Airport Express device to be raop.Base-Station-e60157.local, so I entered that as the sink:
PulseAudio Device Chooser -> Default sink -> Other -> raop.Base-Station-e60157.local

raop-client (Airport Express streaming)

Another method to stream audio to the Airport Express uses raop-client, a tool written in Ruby. See information here.

GSTransmit (Airport Express streaming)

GSTransmit is a tool to allow GStreamer-based utilities to stream output to an Apple AirTunes Device (such as the Airport Express). It is available as a self-installing .deb file from the website.

Airfoil (Airport Express streaming)

You can stream media from a PC running Windows or Mac OS X connected to an Airport Express network to your (K)Ubuntu Linux desktop, using Airfoil. (Unfortunately you cannot send media output from (K)Ubuntu to the Airport Express network with Airfoil, only receive.) This can be useful in a distributed multimedia system, for example, in which your (K)Ubuntu PC is connected to a media center. You must be running Mono. You can download the .deb package at Rogue Amoeba. Installation instructions are at Rogue Amoeba Linux support.


Activate side-mouse-buttons in FireFox

Adding two lines to xorg.conf will activate side-mouse-buttons in FireFox.

  • This should work with most brands of the 5-button mouse. Here is a list of mice that worked with this instruction.
Logitech MX310
Logitech MX510
Logitech MX518
Logitech MX700
Logitech MX Revolution
Intellimouse Explorer (first edition)
Razer Copperhead
  • Backup configuration file
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
  • Modify the configuration file
kdesudo kate /etc/X11/xorg.conf
  • Find the Input Device section for your mouse and add two lines as shown below.
  • You may also increase the number of buttons if your mouse has more than 7 -- just fix the rest of the section based upon the number of buttons.
Note: "back/forward", "wheel click" & "tilt left/right" all count as buttons
  • Change:
Section "InputDevice"
 Identifier "Configured Mouse"
 Driver "mouse"
 Option "CorePointer"
 Option "Device" "/dev/input/mice"
 Option "Protocol" "ExplorerPS/2"
 Option "ZAxisMapping" "4 5" 
 Option "Emulate3Buttons"       "true"
Section "InputDevice"
 Identifier "Configured Mouse"
 Driver "mouse"
 Option "CorePointer"
 Option "Device" "/dev/input/mice"
 Option "Protocol" "ExplorerPS/2"
 Option "ZAxisMapping" "4 5"
 Option "Emulate3Buttons" "true"
 Option "Buttons" "7"
 Option "ButtonMapping" "1 2 3 6 7"


For Synaptics Touchpads:

sudo apt-get install gsynaptics

For more info, see the Ubuntu help wiki.

Wacom Pen Tablets

Support for the Wacom pen tablet is integrated into Jaunty by default, including for hotplugging. For more info, see the Ubuntu documentation.

Fingerprint Readers

Smart Card Readers

  • Read the Debian wiki for full information about implementation of a smart card reader solution and this Debian wiki page for smart card / OpenPGP integration.
  • See this list of smart card applications for Linux.


PC/SC is a set of cross-platform drivers, middleware, and other tools and applications for various smart cards and readers.

  • Install the PC / SC Smart Card Daemon (pcscd):
sudo apt-get install pcscd pcsc-tools
  • Find out if the Smart Card Reader is recognised:
  • Install middleware from the Smart Card Reader manufacturer.
  • Consider registering a personal certificate with an authority such as LuxTrust.
  • These instructions work with the SCR331 Smart Card reader, but may be applicable to other devices as well.


OpenCryptoki is a Debian / Ubuntu-supported implementation that includes drivers and libraries to enable PKCS #11 tokens and IBM cryptographic hardware such as Trusted Computing Platform (TPM) cryptographic devices. Install:

sudo apt-get install opencryptoki

GnuPG Smart Cards

GnuPG-PKCS11 implements a BSD-licensed smart-card daemon to enable the use of PKCS #11 tokens with GnuPG.

  • Install the PKCS Smart Card Daemon:
sudo apt-get install gnupg-pkcs11-scd

Remote Controls

LIRC (Infrared Remote Controls)

LIRC (Linux Infrared Control) allows you to use most infra-red remote controls. This can be installed from Menu -> Applications -> Ubuntu Software Center -> System -> lirc

sudo apt-get install lirc

Remuco (Bluetooth and WiFi Remote Controls)

Remuco is a utility for controlling many multimedia players (such as VLC, Amarok, Rhythmbox, Audacious, and many others) using a Bluetooth or WiFi remote control. Each player has its own package. For example, the VLC package is named remuco-vlc and can be installed:

sudo apt-get install remuco-vlc


BlueZ is the package that allows Bluetooth connectivity in Ubuntu Linux. This package is included within the current kernel of Ubuntu. To add utilities to check whether your Bluetooth adapter's firmware is current, install:

sudo apt-get install bluez-utils bluez-firmware

then run

sudo dfutool


The Wiimote (Wii Remote Control) uses both Bluetooth and Infra-red technology. It communicates with Ubuntu Linux using the incorporated BlueZ Bluetooth drivers and/or LIRC drivers. (It can function with Bluetooth alone, however.) You will need a Bluetooth receiver on your PC (such as a Bluetooth USB stick or built-in Bluetooth receiver, for example). (Note: not all Bluetooth receivers will work with the Bluez drivers. Check this list or test yours first.)

  • Install the cwiid Wiimote controller package and the lswm Wiimote discovery package:
sudo apt-get install wminput lswm
  • Install the drivers (or just reboot):
modprobe uinput
Note: You can also add uinput to the modules files so it loads automatically at bootup:
sudo echo "uinput" >>/etc/modules

Run (while pressing button 1/2 on the Wiimote):

sudo wminput

For more info, and to learn how to enable the infra-red functions, see this guide.

Wireless Cards

USB Wireless Cards

  • See this review of Linux-favorable wireless USB cards.

Atheros Cards

Atheros Wireless cards should work automatically with the new kernel by installing the proprietary driver. At installation, after the first reboot, you will be prompted whether to use the proprietary drivers.

It should no longer be necessary to install the following package:

sudo apt-get install madwifi-tools 

These instructions for the Atheros 802.11 b/g integrated card are here for reference only (or if you wish to install them manually instead):

  • Extract the files
  • Make sure your linux headers and build-essential packages are installed:
sudo apt-get install build-essential
sudo apt-get install linux-headers-$(uname -r)
  • Unload any drivers already running.
sudo ifconfig ath0 down
sudo ifconfig wifi0 down
  • Change to the directory where you extracted the driver.
cd <directory_where_driver_unzipped>
  • From that directory, run the installation scripts:
cd scripts
sudo ./madwifi-unload
sudo ./ $(uname -r)
cd ..
  • Complete the installation by compiling the source and installing it.
sudo make
sudo make install
  • Add the installed drivers to your system.
sudo modprobe ath_pci

Following this, Network Manager was able to see the wireless card and I was able to configure everything else (WEP / WPA key, etc.) from there.

Complete instructions are available at MadWifi UserDocs.

Atheros AR242x

Alternate instructions for installing the Atheros AR242x card are here.


3G protocols allow wide area cellular communications that include not only cellphone voice transmission but also integrated broadband internet connections. This can be integrated into a single device, or communications can be received through an EVDO adapter. Examples of 3G radio interfaces include Mobile WiMax, CDMA-2000, TD-CDMA, EDGE, and DECT. For info using 3G with the Ubuntu Network Manager, see this page. For additional info on using 3G with Ubuntu, see this guide.


he220r1 is a (K)ubuntu driver package for the Huawei e220 USB modem. It has also been found to work with other 3G devices, such as Nokia, Sony Ericsson, and Motorola. See the website for download and installation instructions.

T-Mobile Option 225 (Web'N'Walk) Stick

This website offers a driver optimised for the T-Mobile Web'n'Walk Stick/Option 225.

Virgin Huawei e169

See this Ubuntu forum solution:

sudo gedit /etc/ppp/options

find the line that says:


and uncomment it (delete #)


this (I think) disables CHAP authentication

I also had to change the APN to VirginBroadband instead of VirginInternet which was the default, and now it's happy.

Other settings
Number *99#
Uname <your virgin username>
PW <your virgin password>

EVDO Cards

EVDO cards include USB modems and adapters to receive wide-area cellular broadband Internet connections.


Sprint EVDO cards can be used most easily through KPPP. For instructions, read the Sprint Mobile Broadband Setup Guide. Also see the EVDO Forums.


See this Crystal Networking guide.

Tethering your PC to your Verizon cell phone

This is a per-minute plan in which you can use Verizon broadband services through your cell phone (such as the Motorola RAZR) connected to your PC via a USB cable. See this guide.

Digital Cameras

  • Plug in your digital camera to the USB port using the appropriate cord and make sure the camera is turned on.
  • It may be necessary to adjust the settings of the camera (and to be sure it is properly recognised):
K Menu -> Settings -> System Settings -> Digital Camera
  • To access the camera as a folder using the Dolphin file manager, see this section.


See the Ubuntu webcam guide for more info. Many webcams that worked in Hardy Heron may not work in Intrepid Ibex. This may be due to a migration from v4l (video for Linux) to v4l2. See this discussion.


EasyCam2 is a utility for finding and installing drivers for your webcam. See these installation instructions.


Linux drivers for the digital iSight camera (connected by FireWire), using ALSA for sound, are here. The video component is already supported by current kernels (see here for more information).

Luvcview (USB webcam viewer)

Luvcview can be used to view your USB webcam to test it. Install:

sudo apt-get install luvcview

View your webcam:

luvcview -f yuv


Kubuntu can be installed on netbooks. The KDE Netbook Remix is included by default (as an option) in a standard installation of Kubuntu.

  • Select the KDE Netbook Remix user interface:
K Menu -> System -> System Settings -> Workspace Behavior -> Workspace -> Workspace Type: Netbook

Installing Kubuntu on Netbooks with an existing OS

  • If you already have Ubuntu Netbook Remix (or eeebuntu Netbook Remix) installed, you can choose to add the Kubuntu (KDE) desktop. Then select the Netbook workspace as above.
sudo apt-get install kubuntu-desktop

Several netbooks have OEM versions of Ubuntu Netbook Remix installed.

  • Asus eeePC 1000H
  • Reduce font size one or two sizes, and set the screen DPI to 120.
  • eeebuntu Netbook Remix is available for this device.
  • Acer Aspire One
  • Dell Mini 9
  • Ubuntu Netbook Remix runs on this device well. See this guide.
  • HP Mini 1000 Mi
  • A custom edition of Ubuntu is pre-installed on this version of this device.
  • See this this page for extensive laptop and netbook compatibility reviews.


Mobile Devices

Ubuntu Linux offers an operating system for Mobile Devices (such as the Samsung Q1 Ultra or Elektrobit MIMD) with a unique and simplified interface. For more information see the Ubuntu MID Edition site.

MP3 / Video Players


  • gtkpod is a utility that uses the native iPod DB in a way similar to iTunes. Files on the iPod can be synchronised to a Linux-based PC with this utility. Install:
sudo apt-get install gtkpod

Usage instructions are here.

Copy files from iPod to computer

I do not like using gtkpod and prefer to listen to the files on my iPod with different audio players and in different formats. Furthermore, the iPod naming and database conventions are quite outdated and non-standard (the iPod is, after all, a VERY old device).

  • It is desirable that all the files on the iPod have ID3v2 tags on them already. These tags will be used to rename the files after they are transferred. With the iPod connected to the computer to which the iPod is originally synchronised, use iTunes to make sure all the files are updated with current ID3v2 tags (prior to any copying / transfers).
  • Plug the iPod into a USB port on the (K)Ubuntu computer. Open the Dolphin (or other) file manager and create a folder in which to store the files from the iPod. (Dolphin will usually automount the iPod once it is connected.) Copy the files from the iPod to the newly created folder on the (K)Ubuntu computer. The iPod naming convention assigns a random 4-letter code to each file. If there are a large number of files, they are split between folders, each with about 250 files in them. When copying, there is likely to be some duplicate 4-letter filenames. Simply add an extra character to the duplicate 4-letter filenames when prompted about duplicates (turning them into 5-letter filenames). For example if there are 2 files named AXYJ.m4a, when Dolphin attempts to copy the second file to the folder it will prompt for a new filename. Name the second file, for example, AXYJ2.m4a and carry on. Repeat as many times as necessary untill all the files are successfully copied (with unique filenames) into the folder on the (K)Ubuntu computer.
  • Now use an ID3 tag editor such as EasyTAG to rename the files that have been copied to the (K)Ubuntu computer folder. EasyTAG includes a renaming utility that will scan and then rename the files based on the Artist and Title (for example) found in the ID3v2 tag. Allow EasyTAG to do this and then "Save File(s)" with the new filenames (using the FloppyDisc Icon in the toolbar). The resulting files will now be appropriately named (instead of having the archaic and arbitrary Apple filenames).
  • EasyTAG will notify you of an error (and will stop) if a file with a duplicate Artist - Title exists. When such an event occurs, move the first re-named file out of the folder (into a Duplicates folder, for example) and then allow EasyTAG to continue converting the remaining files. Do this as many times as necessary. (This helps to weed out duplicates, as well.)
  • Of course, you can also update other information in the the ID3v2 tags (to your preference) with EasyTAG at the same time, as well.
  • Convert the format of any .m4a files to .mp3, .aac, .ogg (or any other desired audio format) using a batch format convertor such as SoundKonvertor (for Qt / KDE), SoundConvertor (for GTK / Gnome), Xcfa, Sox, or dir2ogg. (Usually kubuntu-restricted-extras must also be installed, and sometimes libfaac0 as well).


  • libimobiledevice is a utility library that enables the transfer of files to / from the iPhone iOS (versions (1G, 2G, 3G):
sudo add-apt-repository ppa:pmcenery/ppa
sudo apt-get update
sudo apt-get install libimobiledevice1
  • FTP is also a good solution for file transfer (sftp recommended). See these FTP tips.
  • WebDAV is also a good solution for file transfer. See these WebDAV tips.
  • Other online storage solutions may also be useful for file transfers.

Sansa Fuze

The Sansa Fuze is a very high quality MP3 audio as well as video player. It is recognized by default as a USB device in Ubuntu/Kubuntu. To convert videos into a format that can be copied to the player, use Video4Fuze.

  • Download and install:
sudo dpkg -i fuzemux-0.1_amd64.deb
sudo dpkg -i video4fuze-0.6_all.deb
Use fuzemux-0,1_i386 instead of fuzemux-0.1_amd64.deb if using a 32-bit OS.
  • Start video4fuze from the command line:

or create a menu item with the Command: video4fuze.

  • Convert files (mpg or mp4) using Video4Fuze. Do not use the Sansa Fuze player as the output folder, but use an output folder on your computer. Once the files have been converted, then copy them directly to a Video folder on the Sansa Fuze (using Nautilus in Ubuntu or Dolphin in Kubuntu).
  • I like k9copy to extract something (that I have saved) on a DVD to an mp4 (.avi) first. The Sansa Fuze likes video at 224 x 176 and DivX 4/5, so I extract to those specifications:
Menu -> Multimedia -> k9copy -> Input: DVD -> Output: MPEG-4 encoding -> folder icon: /home/user/Videos
k9configure -> MPEG-4 -> Video -> Codec: MPEG-4 (DivX 4/5) -> Width: 224 -> Height: 176
-> Audio: mp3 (lame) -> Bitrate: 128

I then use video4fuze to convert the extracted mp4 (.avi) into the format that the Sansa Fuze likes.

  • Limitations: At this time Flash videos (.flv) cannot be converted directly by Video4Fuze. You must convert flash videos to another format (such as .mpg or mp4/.avi) prior to Video4Fuze conversion, using a converter such as mencoder or ffmpeg (e.g. with WinFF as the GUI).

MachSpeed Trio

The MachSpeed Trio works natively with (K)Ubuntu Linux. Files can be copied directly to the device from a File Manager (Dolphin or Nautilus).

  • Video formats include .mpg, .flv and .avi. However, the screen is 7.5 cm x 4 cm, which is a 1.875 ratio (widescreen). If your video has a 1.33 ratio (fullscreen), you must add left and right padding to make it look normal. If your video is 320 x 240, for example, you must add left and right padding of 64 each (making it 448 x 240, which is approximately a 1.875 ratio).
In addition, I found I had to convert some videos twice (using ffmpeg) to get it into a format the Trio would accept. For example, I have a 160x120 .avi video I recorded on my camera. (This requires 32 padding on each side instead of 64.) There was a 2 step conversion required to get it into a format the Trio liked:
ffmpeg -i cameravideo.avi -target ntsc-dvd -s 160x120 tempvideo.avi
ffmpeg -i tempvideo.avi -padleft 32 -padright 32 triovideo.avi
The first step does whatever it takes to get the video into a NTSC-compatible format. However, it encodes into the ac3 audio codec, which the Trio doesn't like. The second step converts the audio from the ac3 format to the default mp2 audio format (which the Trio likes better) as well as adds the padding (which in reality can be done in either step). I have tried to simplify this into a single command but haven't figured out how to do it yet.
I then copy the converted file directly onto the Trio, where it plays.

Google Chromecast

Chromium/Chrome -> Settings -> Extensions -> Get more extensions -> Search: Google Cast -> + Free
  • Anything that can be played through the Chromium/Chrome browser can be streamed to the Chromecast module by clicking on the rectangular casting icon in the upper right side of the toolbar once the video is playing in the browser.
Dolphin -> MyVideo.avi -> <right-click> -> Open With ... -> Other... -> Chromium/Chrome Web Browser
  • Initial installation of the Google Chromecast device itself can be done "manually" through the browser. See these instructions.
  • Note: Casting only worked for me with newer versions of Chromium (v.37 or later) or Chrome (v. 39 or later). Upgrade/update to a recent version.

Playing Netflix through Chromecast

  • Once Chromecast has been configured ("manually," as above) to run on the network, it is possible to stream Netflix playing through the Google Chrome v. 39 or later (but not Chromium) browser natively (because Google Chrome has the WideVine CDM and Pepper Flash (PPAPI) modules, required to play Netflix, built in). Click on the rectangular casting icon while playing Netflix.

Chromecast and Firewalls

  • Chromecast uses an array of ports for its connections. The easiest method is to turn off any firewalls while using Chromecast.
  • The Chromecast device is discovered by the Chrome browser using the SSDP service on port 1900. Enable port 1900 in your firewall. On Firestarter:
Firestarter -> Policy -> Outgoing traffic policy -> Allow service -> <right-click> Add Rule -> Port: 1900 -> Firewall host (ticked) -> Add
  • If it is desirable to use the Chromecast device without diabling firewalls, it is best to discover the internal IP address of the Chromecast device on the local network and then allow its IP address.
  • With the Firestarter firewall (for example), start both the Firestarter firewall and the Chrome browser. Attempt to cast using the Casting icon. Check the Firestarter Events log to see which IP addresses were blocked, indicating the IP address of the Chromecast device on your network.
Firestarter -> Events
for example, might be listed as being blocked (as the Chromecast device) and might be listed as being blocked (as the Chromecast DHCP service).
  • Enable Outgoing traffic for this internal network IP address for the Chromecast device(s) (including the Chromecast DHCP server) on Firestarter:
Firestarter -> Policy -> Outbound traffic policy -> Allow connections to host -> <right-click> -> Add Rule -> -> Add
Firestarter -> Policy -> Outbound traffic policy -> Allow connections to host -> <right-click> -> Add Rule -> -> Add
  • Enable Incoming traffic for this internal network IP address for the Chromecast device(s) (including the Chromecast DHCP server) on Firestarter:
Firestarter -> Policy -> Inbound traffic policy -> Allow connections to host -> <right-click> -> Add Rule -> -> Add
Firestarter -> Policy -> Inbound traffic policy -> Allow connections to host -> <right-click> -> Add Rule -> -> Add

Playing VLC through Chromecast

Under construction

Speech Recognition and Synthesis

For more info see the Ubuntu Wiki -- Speech recognition and the Ubuntu Community wiki -- Text-to-Speech. Integrated voice recognition is an ongoing project; accumulated information is available at VoxForge.

  • Julius -- open source continuous speech recognition / grammar engine (Japanese only -- does not have an English acoustic module currently). Install:
sudo apt-get install julius julius-voxforge
  • CMU Sphinx -- open source voice recognition software. Install:
sudo apt-get install sphinx2-bin sphinxbase-utils pocketsphinx-utils 

Apps using voice recognition (also see this list):


KMouth is a plug-in based speech synthesis system for KDE / Kubuntu that relies on the Jovie Text-to-Speech API. Install (with Jovie):

sudo apt-get install kmouth
  • When running (K Menu -> Utilities -> Jovie), Jovie can be accessed / configured from its toolbar-widget icon.
  • While Jovie is used by default in KMouth, it can also be set manually in the KMouth settings dialogue (K Menu -> Utilities -> KMouth -> Settings -> Configure KMouth... -> Text-to-Speech -> Command for speaking texts):
  • An alternative to using Jovie as the Text-to-Speech synthesizer is to use Festival. Install:
sudo apt-get install festival
Enter this command for speaking text in the KMouth settings dialogue (K Menu -> Utilities -> KMouth -> Settings -> Configure KMouth... -> Text-to-Speech -> Command for speaking texts):
/usr/bin/festival --tts


sudo apt-get install festival
  • Flite (Festival-lite) is a small, fast run-time synthesis engine designed for small embedded machines and/or large servers. Flite is designed as an alternative synthesis engine to Festival for voices built using the FestVox suite of voice building tools. Install:
sudo apt-get install flite
  • FestVox is a tool to build new synthetic voices, relying on the Festival framework. Search for festvox in your Package Manager to find voices already created and distributed in (K)Ubuntu.


Only one network manager and GUI interface can be enabled. Network-Manager is installed by default and works for both wired and wireless connections, and for both static and dynamic (DHCP-assigned) IP addresses. In the past, some users have preferred the Wicd network manager, however, and it can be installed instead.

Network Manager

Network Manager is the network manager installed by default in (K)Ubuntu. It has a tray applet that allows you to switch between Internet connections (such as wireless APs or a wired connection).

  • After installation on my system with a wired ethernet connection and manual settings for /etc/network/interfaces, Network Manager was disabled by default ("unmanaged") at installation. To activate Network Manager and allow it to manage networking settings, I edited a file (following the advice in this thread):
kdesudo kate /etc/NetworkManager/NetworkManager.conf

and changed the following section so that it read true instead of false:


Also, I double checked the /var/lib/NetworkManager/NetworkManager.state file to make sure that Networking was enabled:


I then restarted Network Manager:

sudo /etc/init.d/network-manager restart
  • When using Network Manager to manage the settings, the default setting is to obtain an IP address from the DHCP server on the network. However, I customised the Wired Connection to accept my static IP address as a "manual" (IPv4) IP address and set my custom DNS servers (I don't use the DNS servers of my ISP for security reasons) and a random MAC address (which I change periodically to limit tracking).
  • Precise is the first version of Kubuntu in which Network Manager reliably worked for me on both wired and wireless connections. When installing on a laptop with a wireless connection, it worked (in DHCP mode) without any additional configuration. Settings could then be set through the Network Manager plasma widget on the panel bar, including the ability to manually configure a static IP address for the wireless connection, as well.

Wicd Network Manager

Wicd Network Manager is a GTK-dependent networking manager written in Python that can be used in all variants of (K)Ubuntu. To avoid networking conflicts, Wicd requires the removal of Network Manager prior to installation.

sudo apt-get remove network-manager network-manager-pptp plasma-widget-networkmanagement network-manager-kde  
sudo reboot
sudo apt-get install wicd

Note: You must have a wired connection in order to install Wicd. Either install it prior to removing Network Manager or be sure the /etc/network/interfaces configuration file is properly configured manually so the default network interface allows you to access the Internet through a wired connection:

kdesudo kate /etc/network/interfaces

and remove the #NetworkManager# comments, if present and makes sure the file contents resemble:

# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp

Then restart networking:

sudo /etc/init.d/networking restart

This restores the default networking, and then Wicd can be installed. Once Wicd is installed, the connection settings can be changed through Wicd.

Set a static IP address

  • Precise Pangolin (12.04 LTS) is the first version of (K)Ubuntu in which I have been able to get Network Manager to accept my static IP address settings (for both wired and wireless connections).
Network Manager -> Manage Connections... -> connection -> Edit... -> IPv4 address -> Method: Manual -> IP Address: -> Subnet Mask: -> Gateway: -> OK
I also add the DNS servers I like to use (I don't use the DNS servers of my ISP for security reasons).
  • If you only use only a wired interface, you do not need a network manager and it can be removed if desired. Doing so requires configuring the networking settings manually.
  • In Precise, Network Manager does not need to be removed if manual settings are used in /etc/network/interfaces. To allow the settings to take effect (and the network connection to be "unmanaged" by Network Manager), edit /etc/NetworkManager/NetworkManager.conf:
sudo kate /etc/NetworkManager/NetworkManager.conf

and change the following section so that it reads false:


Then restart Network Manager:

sudo /etc/init.d/network-manager restart
  • Edit the /etc/network/interfaces file (use the gedit text editor instead of kate if using Ubuntu instead of Kubuntu):
sudo kate /etc/network/interfaces
  • and replace the line (ok if line is missing)
iface eth0 inet dhcp
  • with the following lines (using your own LAN settings and desired DNS-nameservers, of course):
auto eth0
iface eth0 inet static
  • Then restart networking:
sudo /etc/init.d/networking restart
  • Check to see if your settings are now correct:
  • The Wicd network manager also allows a wireless connection to have a static IP.
  • In versions prior to Precise Pangolin (12.04 LTS) I was not able to get Network Manager to accept my static IP address settings. If you only use only a wired interface, you do not need a network manager and it can be removed.
  • Remove Network Manager (replace network-manager-kde with network-manager if using Ubuntu instead of Kubuntu):
sudo apt-get remove network-manager-kde
sudo reboot
  • Edit the /etc/network/interfaces file (use the gedit text editor instead of kate if using Ubuntu instead of Kubuntu):
sudo kate /etc/network/interfaces
  • and replace the line (ok if line is missing)
iface eth0 inet dhcp
  • with the following lines (using your own LAN settings, of course):
auto eth0
iface eth0 inet static
  • Then restart networking:
sudo /etc/init.d/networking restart
  • Check to see if your settings are now correct:

Manual configuration from the command-line

3 steps for WEP:

sudo iwconfig eth[N] essid [SSID]
sudo iwconfig eth[N] key restricted s:[PASSWORD]
sudo dhclient

WPA is more complicated:

sudo mkdir /etc/wpa_supplicant
cd /etc/wpa_supplicant
sudo echo network = { > wpa_supplicant.conf
sudo echo ssid="SSID" >> wpa_supplicant.conf
sudo echo key_mgmt=WPA-PSK >> wpa_supplicant.conf
sudo echo psk="PRESHAREDKEY" >> wpa_supplicant.conf
sudo echo } >> wpa_supplicant.conf
cd /etc/network
sudo gedit interfaces

Now add after "auto eth[N] ..." & "iface eth[N] .." :

wpa-driver wext # or whatever driver your network card needs
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Save the file and restart your system.

Internet connection sharing (DHCP server)

In most LANs, an inexpensive router is used to provide DHCP functions (internet connection sharing).

However, DHCP services can also be provided by a single host computer on your LAN if it is directly connected to the Internet. (This is useful, for instance, if you have a 3G or other wireless EVDO connection to your computer which you want to share with the other computers on your LAN). Other client computers on your LAN would then connect to the Internet through your host computer's Internet connection. The host computer now essentially performs the DHCP functions of a router.

All "client" computers on the LAN ought to be connected to a central LAN switch or router. (If using a router, it should have its own DHCP functions disabled -- you shouldn't have 2 DHCP servers on a LAN unless you know how to nest LANs). They should all be set up to obtain DHCP-assigned dynamic IP addresses and use the same LAN subnet settings (which in the example below is LAN IP range - with netmask and gateway The host computer to be used as the gateway/DHCP server is then connected (through its own ethernet port) either to one to the ports of the switch (if used), or to a LAN port of a router (don't use the WAN port). The host computer then connects directly to the Internet (WAN) through a second port (which in the example below will be a wireless (wifi) port (wlan0)).

(Note: This setup is easiest if you connect all computers on the LAN with Ethernet cables to the central switch or router. But also see using a nested wireless LAN router below.)

(Note: If you want your LAN to use the same subnet as your WAN, see network interface bridging.)

  • Install the DHCP server and firewall programs:
sudo apt-get install dhcp3-server firestarter
  • Rename the startup command (through a symbolic link) for the DHCP server. This is required or Firestarter will not know where to find it:
sudo ln -sf /etc/init.d/dhcp3-server /etc/init.d/dhcpd
  • Edit the DHCP server configuration file:
sudo nano -w /etc/default/dhcp3-server
Change the line
  • Restart the DHCP server:
sudo dhcpd restart
  • Right click on Network-Manager -> Edit Connections... -> Wired -> Add
-> Connection name: Shared internet connection
-> IPv4 Settings -> Method: Manual -> Add
-> Address: -> Netmask: -> Gateway:
-> Available to all users: [x]
  • Attach the ethernet cable to (eth0).
Network-Manager -> Wired Networks -> Shared internet connection
  • Adjust your firewall to allow the internet connection sharing. Start Firestarter:
sudo firestarter
  • Tell the firewall which port is your direct Internet Connection:

Firestarter -> Preferences -> Firewall -> Network Settings -> Internet connected network device: (wlan0)

-> IP address is assigned by DHCP: [x]
  • Tell the firewall which port is for the LAN, and specify the details for the LAN:

Firestarter -> Preferences -> Firewall -> Network Settings -> Local network connected device: (eth0)

-> Enable internet connection sharing: [x]
-> Enable DHCP for the local network: [x]
-> DHCP server details -> Create new DHCP configuration -> Lowest IP address to assign:
-> Highest IP address to assign: -> Name server: <dynamic>
Note: Use your own desired LAN settings (internal DHCP-assigned dynamic IP address range), of course. In this example I don't use the full IP range - for dynamic IP addresses because I want to reserve some LAN addresses ( - to be used as static IP addresses).
  • Notes:
  • If you wish to use this setup all the time, make the "Shared internet connection" profile your default connection profile in Network Manager.

Using a nested wireless LAN router

Many users will already have an established LAN that uses an existing wireless router and has client computers that are setup to connect wirelessly to the router. Here's how to maintain this setup and still use the internet connection sharing method of a single host computer as described above. This method is known as nested LANs. The wireless router will serve as a nested LAN for its wireless clients (only), but in turn will appear as a single device to the main LAN. The two LANs must have different IP ranges. For example, the main LAN may have an IP range - (with netmask, as in the above example. The router's nested wireless LAN must then use a different IP range (for example - with netmask

  • Do not use your wireless router's WAN (Internet) port.
  • Connect the host computer (to be used as your main LAN gateway/router) to a LAN port (not the WAN/Internet port) of the wireless LAN router.
  • Configure your wireless router's LAN so that it appears to be a single device to the main LAN:
  • Setup your wireless router so that the Internet Connection type is "Static IP" (often in the "Internet Setup" section). Configure the settings so that its "Internet IP address" is within the static IP address range of your main LAN (e.g., and make sure the subnet mask matches the one you chose for your main LAN (e.g. The gateway setting should be set to match the IP address of your host computer of the main LAN (e.g. in the example of the preceding section). Now the wireless router will appear to the host computer as just another device on the main LAN.
  • If your wireless LAN is already functioning, you probably don't have to change any settings, but double-check to make sure the schema are compatible. Configure the wireless router's settings for the nested wireless LAN. This is done by enabling the router's DHCP server functions (in "Network Setup" or some similar configuration section of the router). The router ought to have as its own wireless LAN gateway address a "local IP address" (or "LAN IP address") of (for the IP address range used in this example), and a "starting IP address" (for the DHCP-assigned dynamic IP address range to be used for the wireless clients) to be or greater. (Some routers ask you to specify the entire range (such as -
  • Make sure all your wireless client computers are set to obtain their DHCP-assigned dynamic IP addresses from the wireless router (gateway IP instead of from the main LAN gateway.
  • Now all communications from the wireless client computers will be routed to the wireless LAN router first, which will then in turn route them to the host computer (which is acting as the main LAN gateway/router), which will then in turn route them to the Internet (WAN).
  • Note: The host computer for the main LAN must have a static IP address (e.g. as in the example of the preceding section) and it must match the gateway IP address configured in the wireless LAN router settings.

Network Interfaces Bridging

  • Install bridge-utils to be able to create network bridges:
sudo apt-get install bridge-utils
  • Edit /etc/network/interfaces:
sudo nano /etc/network/interfaces

The interfaces file should look like this after editing it:

auto eth0
iface eth0 inet manual
auto br0
iface br0 inet dhcp
bridge_ports eth0 wlan0
# The loopback network interface
auto lo
iface lo inet loopback
  • Restart networking with:
sudo /etc/init.d/networking restart

Using Dynamic IP addresses for a webserver

Normally, domain name servers (DNS) that are used publicly on the Internet match a web server's URL name with the IP address of the server's host computer. If your computer has a static IP address, then you can publish your own web server's URL as belonging to the static, unchanging IP address of your computer.

However, if your IP address is dynamic (always changing) because you use an ISP (Internet Service Provider) that constantly changes your IP address (using DHCP), then you will need a Dynamic DNS service to constantly keep track of your dynamically changing IP address and match it to of your web server's URL. Fortunately, there are a few Dynamic DNS services that will do this for you, either for a small fee or even for free. For more info, see this Ubuntu Community help article.

For specific tips on setting up Dynamic DNS, see this article.



NFS is the default networking protocol for network file sharing in *nix systems (including (K)Ubuntu Linux). Here are some tips for setting up NFS from the Little Girl's Mostly Linux Blog.

Samba File Sharing

Samba client

Samba is a networking protocol that allows compatibility with Windows-based networks. The Samba client is installed by default in Ubuntu and should work seamlessly (unless you have have a firewall blocking the ports).

Samba server

Samba provides file/print services for the SMB/CIFS protocol used in Windows-based networks. See the official Ubuntu documentation for more information about providing services in a Windows network. A Samba server can be installed using the tasksel option during installation of the Ubuntu server from the LiveCD, or at any time using:

sudo tasksel install samba-server
  • An alternative method of installation is:
sudo apt-get install samba samba-tools system-config-samba smbfs
Note: samba-tools, system-config-samba, and smbfs are optional.
  • Modify Samba settings.
  • Method 1:
Menu -> System -> Administration -> Samba
(Note: this is available only if you installed system-config-samba.)

It is recommended that your user be a member of the sambashare group, as well.

  • Method 2:
Enable File Sharing Server With User Login (Very Reliable Method)
Do the following on the machine that has the files to be shared:
  • Add current user to Samba:
sudo smbpasswd -a username
(replacing username with your login username)
  • Open the samba config file:
sudo nano /etc/samba/smb.conf
  • Add the directories to be added (right at the end) in the following format:
path = /home/username/<folder_to_be_shared>
(Replace username with your username and <folder_to_be_shared> with the folder you want to share)
Press CTRL+X and then Y to save.
  • Restart Samba:
sudo service smbd restart
sudo service nmbd restart
Note: Prior versions used:
sudo /etc/init.d/samba restart
  • On Windows access the folder in the following format in Windows Explorer:
(replace 192.168.x.x with the actual IP address of your server which is serving the folder)
  • On Linux type the following in Konqueror or Nautilus:
(replace 192.168.x.x with the actual IP address of your server serving the folder)

Note: If you use Sharing in KDE's System Settings panel, be aware that there is a small bug, reported here. In brief, you need to comment out/delete any instances of these two lines in /etc/smb.conf :

case sensitive
msdfs proxy

Change your Workgroup

To change your Samba (Windows network) workgroup:

sudo nano /etc/samba/smb.conf

Look for the line:

workgroup = WORKGROUUP

and change the setting to whatever your LAN workgroup is.

Recognizing Win98 machines

Microsoft networking is extremely quirky. To enable recognition of PCs with Windows 98, edit your Samba configuration file:

sudo nano /etc/samba/smb.conf

Then add the following lines to the file:

client lanman auth = yes
client ntlmv2 auth = no

Integrating into Mac OS X Network

See this guide for information on integrating Ubuntu into an existing Mac OS X Appletalk network.

FTP Server

An FTP server allows the easy transfer of files between systems over the network. Clients such as Filezilla can be used to interact with an FTP server. Also see these FTP tips.


vsftpd is an FTP server available in (K)Ubuntu. For configuration information, see the official Ubuntu documentation. Install:

sudo apt-get install vsftpd


Proftpd is an FTP server available in (K)Ubuntu that can be used with either the MySQL or PostgreSQL database. Also see the Ubuntu Community documentation. Install:

sudo apt-get install proftpd-basic


WebDAV is a method for allowing remote access to local folders via an HTTP-based web browser or file manager. This can be combined with user authentication (using LDAP or other password mechanism).

Local Area Network

Modems / Dial-up

Network Manager does not accept modem connections. See Ubuntu help for information on identifying and connecting with a modem. These instructions require gnome-network-admin (install while connected to a wired ethernet connection):

sudo apt-get install gnome-network-admin

Gnome PPP and wvdial

Gnome PPP is a discontinued GUI frontend for the wvdial PPP modem dialer. It is still available as a package. Install:

sudo apt-get install gnome-ppp wvdial

See this forum thread for tweaks required to make Gnome PPP and wvdial operational in Lucid.


GPPP was the default modem dialing application in previous versions of Ubuntu.

Menu -> Applications -> Internet -> GPPP Internet Dial-up

Remote Access

There are several methods of remote access. VNC sharing allows you to view and control a remote computer's desktop. (Windows users use a similar proprietary protocol called remote desktop protocol (RDP)). XDMCP allows a complete remote X-windows based login. Remote connections are hazardous unless proper security precautions are taken to prevent unauthorized logins and to ensure encryption of transmitted data.


Secure Shell or SSH is a network protocol that allows data to be exchanged over a secure channel (or "tunnel") between two computers. Encryption provides confidentiality and integrity of data. The OpenSSH client is installed by default in Ubuntu so you can connect to another computer that is running an SSH server.

Connect to a remote SSH server

From the command-line terminal

Install the OpenSSH client (if not already installed):

sudo apt-get install openssh-client

From the command-line Terminal type:

ssh -C <username>@<computer name or IP address>
Note: The -C option indicates compression, which speeds up transmission through the tunnel.

For example:

ssh -C
ssh -C mike@
ssh -C -l mike
Note: -l specifies the login id.

If the SSH server is listening on a port other than port 22 (the default), you can specify that in your connection (with the -p option). For example, if the SSH server is listening on port 11022, connect:

ssh -C
ssh -C -p 11022 -l joe.friday

If you have made a public/private key using ssh-keygen, the private key must be stored in /home/user/.ssh. The key should be accessible only to user

sudo chmod 600 /home/user/.ssh/identity
sudo chmod 600 /home/user/.ssh/id_rsa 

To login with the key:

ssh -C -p 11022 -l joe.friday

Note: You can run the command as a menu item, but the command must be "run in terminal."

Port forwarding through SSH

  • In brief, use
ssh -C <remote ip> -p <SSH tunnel port> -L <local port>:<remote computer>:<remote port> -l <user>

This specifies that any communications from your computer (localhost) going out through <local port> will be transmitted securely through the the SSH tunnel port. To use VNC through the tunnel, you would use an application like Krdc or Vinagre:

krdc vnc://localhost:<local port>

Note: localhost is equivalent to (and interchangeable with) Either can be used.

Note that for VNC, the default <local port> is 5900. In general, a remote VNC server (such as X11VNC) is also listening on the default <remote port> 5900 as well. The default <SSH tunnel port> is 22, as discussed above. All these can be changed, however, if you desire greater security.

For me, I noticed that I had to set <remote computer> to be the internal LAN IP address of the remote computer (such as instead of the remote router's IP address, which is specified in <remote IP>. (If the remote computer has a static IP address (i.e. is directly connected to the Internet without an intervening router), then <remote computer> and <remote ip> would be the same.)

Example: For extra security, my SSH Server uses <SSH tunnel port>=11022. I want to VNC to a remote computer on a remote LAN with a router whose IP address is <remote ip> = The remote computer to which I want to connect has a static IP address within the remote LAN of <remote computer> = I have set up an X11VNC server on this computer that is listening on <remote port> = 6912 (instead of the default 5900). I setup port forwarding on the router of this remote LAN to forward port 6912 to this server computer. I want to VNC to this remote computer from my laptop, through the Internet. My laptop VNC client (Krdc) will use the default <local port> = 5900. My name is <user> = joe.friday. This is my story.

ssh -C -p 11022 -L 5900: -l joe.friday
krdc vnc://localhost:5900

If you have set up a private/ public key pair with a passphrase, or if your SSH server requires a passphrase, of course, you will be prompted for the passphrase after issuing the SSH command.

Note: Port forwarding assumes that the ports are also forwarded through the router(s) and through any firewalls. See the documentation for your router(s) and firewall to learn how to do this. The advantage of SSH tunneling is that only the <SSH tunnel port> needs to be open and forwarded by a router. All encrypted communications will go through your router using this single port. This is what makes the communications secure.


PuTTY is a GTK-based GUI client-interface for SSH connections and eases the setup for port forwarding, SSH public key authentication, and automated login. A user would run Putty to create the SSH tunnel (instead of the ssh command) and then run a program such as Krdc or Vinagre. PuTTY is available for both Linux and Windows (but for routine Linux usage OpenSSH is generally recommended instead).

sudo apt-get install putty putty-tools
  • To create a 2048-bit RSA key pair compatible with OpenSSH, it is possible to use Puttygen (part of Putty-tools). (For me the Linux version of Puttygen is occasionally buggy, however, so I recommend OpenSSH keygen for routine usage instead):
puttygen -t rsa -b 2048 -O private -o putty_rsa.ppk
puttygen putty_rsa.ppk -O public-openssh -o
puttygen putty_rsa.ppk -O private-openssh -o id_rsa
  • Move the OpenSSH-compatible keys to the ~/.ssh (i.e. the /home/user/.ssh) folder
mv id_rsa* ~/.ssh
  • Copy the public key ( /home/user/.ssh/ ) to the server that is hosting the OpenSSH server, into the /home/serveruser/.ssh (for whichever user is the administrative user for the server -- generally the user that installed the server initially). If the SSH tunnel is (still) set at default port 22, you can copy the key using the utility:
  • Connect a VNC client (such as Krdc) through SSH using the command-line:
putty -ssh -i ~/.ssh/id_rsa -l serveruser -L 5900: -P 22
krdc vnc://
or as a single command:
putty -ssh -i ~/.ssh/id_rsa -l serveruser -L 5900: -P 22 sleep 5; krdc vnc://
  • Alternatively, the PuTTY SSH Client GUI can be run (from Menu -> Internet -> PuTTY SSH Client) and options configured from there.

Using keys created by Puttygen in OpenSSH

The public security key generated by Puttygen in Windows is generally not compatible with OpenSSH security keys unless it is edited. For example, the default OpenSSH key is 2048-bit RSA (SSH-2). When a 2048-bit RSA (SSH-2) PuTTY public/private key pair is generated (by Puttygen) in Windows (see this tutorial), the public key looks like:

Comment: "rsa-key-20100302"
  • To be used by OpenSSH, the saved public key must be edited.
  • Delete the first two lines (with the BEGIN and Comment: in them) and the last line.
  • Join the remaining lines into a single line.
  • Place ssh-rsa at the beginning.
  • It should end up looking like:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAjdp567qxsGkhELlMQup2mXHdsveCWq/maU6kunPpbkwEuhkasuOrhkAWgv5v3d8S857zdHcfnXWi2FkEaJuFxqpJ2IkFuvqRdqYDZCcASj2S0LoXdWpC4uon6VH8oBT31r+wkDfmI2a+K74jgXjtm1BWWxwOpKaWQHi9YItbY/06renRex34n3ejO20JRqD/BxnFU7ND41Szo3ZMKoa0yzhevU2ntt74BCvCbYFHdSoRbi3AH8qGInzFfhXPdrG8qA382ZKEh5Bmy8Qxb9Uen/+jjP51YxN/ykeeRwSrdSCZekB6jN6uuTLNDEXJSJizqlPU8tROqf3pYv1kxzD9bw==
  • Once the PuTTY public key is in this format, it can be appended to the ~/.ssh/authorized_keys file on the OpenSSH server. (The private key stays on the client computer, of course). PuTTY can then connect (from Windows or Linux) to an OpenSSH server using the public/private key method.

Connect using SSH Agent

With SSH Agent you can automate the use of public key authentication and open an XDM or VNC session using a script. See this tutorial.

Also see this alternative simple approach: Connect with SSH and start an application with a single command.

Setup an SSH server

Install the OpenSSH server:

sudo apt-get install openssh-server
sudo apt-get install tasksel
sudo tasksel install openssh-server

Note: The OpenSSH server can also be installed when doing a server installation as an option from the LiveCD.

Note: An OpenSSH server can also be set up on a Windows server using Cygwin. See these instructions.

  • Don't forget to forward the port on which your OpenSSH server is listening. The default SSH port is 22; if the default is used, the router should therefore forward port 22 to the computer on the LAN that is hosting the OpenSSH server. The OpenSSH listening port can be changed; in fact, each computer on the LAN can listen on its own unique SSH port, if desired. The router must forward each specified listening port to the correct computer. Therefore, if computer 1 has its OpenSSH server set to listen on port 22221, then the router should forward port 22221 to computer 1's LAN IP address. If computer 2 has its OpenSSH listening port set to 22222, then obviously the router must forward port 22222 to computer 2's LAN IP address. To change the listening port of the OpenSSH server, edit the /etc/ssh/sshd_config file (use the gedit text editor instead of kate if using Ubuntu instead of Kubuntu):
sudo kate /etc/ssh/sshd_config

and change the listening port from 22 to your desired listening port:

Port 22221

then restart the OpenSSH server:

sudo /etc/init.d/ssh restart

Limit authorized SSH users

OpenSSH Public Key Authentication

See this OpenSSH Public Key Authentication Tutorial.

In brief, it is necessary to generate a public / private key pair. On your client machine, generate the pair:


A prompt asks for a passphrase. If you wish to use OpenSSH without a password from a secure client (to which no one but you has access), leave the passphrase blank. If you enter a passphrase, you will be asked for this passphrase each time you use the SSH client. By default, a 2048-bit RSA SSH-2 key pair is generated and stored in the /home/user/.ssh folder. The private key is named id_rsa and is meant to stay in that folder. (The public key is and is meant to be copied to the OpenSSH server.)

  • The private key must only be accessible (and should be read-only) to user, the owner of the file:
chmod 600 /home/user/.ssh/id_rsa
You could also make the entire .ssh folder accessible only to user:
chmod 700 /home/user/.ssh
  • Copy the public key ( /home/user/.ssh/ ) to the server that is hosting the OpenSSH server, into the /home/serveruser/.ssh (for whichever user is the administrative user for the server -- generally the user that installed the server initially). If the SSH tunnel is (still) set at default port 22, you can copy the key using the utility:
  • The ssh-copy-id utility only works over port 22. An alternative if you have changed your SSH port is to copy the /home/user/.ssh/ key to the server manually. On the server make sure the directory /home/serveruser/.ssh exists and that there is a file authorized_keys (with write privileges) in that folder. If not, create such a file while logged into the server as serveruser (the touch command creates an empty file):
mkdir ~/.ssh
cd ~/.ssh
touch authorized_keys

Then concatenate the key you have copied to the ~/.ssh folder. (Make sure the owner of, after copying, is serveruser.):

cd ~/.ssh
chown serveruser
cat authorized_keys >> authorized_keys
  • Make sure the OpenSSH server knows to look for the key file. On the remote server, edit the OpenSSH configuration file:
sudo nano /etc/ssh/sshd_config
  • Uncomment the line (i.e. remove the # at the beginning of the line):
#AuthorizedKeysFile %h/.ssh/authorized_keys
  • Remove the ability to login to the OpenSSH server using password authentication:
 sudo nano /etc/ssh/sshd_config
  • Change the line
#PasswordAuthentication yes
PasswordAuthentication no
  • Restart the OpenSSH server:
sudo /etc/init.d/ssh restart
  • Now you can connect securely with an SSH tunnel without requiring a password, logging in as serveruser.
ssh -l serveruser -L 5900: -p 22

Connect with SSH and start an application with a single command

  • If you have created an OpenSSH key pair (without a password), you can start both the SSH tunnel and a VNC program (such as Krdc or Vinagre) to run through the SSH tunnel with a single command:
ssh -f -l serveruser -L 5900: -p 22 sleep 5; krdc vnc://
  • Alternatively (and probably preferably) you can create a Menu Item / Shortcut with the above command.

Note: This command is a command-line mini-script. The SSH option -f option tells the SSH client to fork into the background after starting. (This option is not available in the PuTTY client.) This allows the command line to continue to proceed to the next command(s) listed on the command line mini-script. The 5 second wait ("sleep") timeout allows time for the SSH tunnel to be created before proceeding to the next command. (This can be lengthened if necessary.) After the wait period, the program (Krdc VNC in this example) is started.

  • Of course, any program could be started (to be run through the SSH tunnel) in this fashion, not just a VNC program.

Automate SSH connections that require a password

This method is strongly advised against. Transmitting an unencrypted password through the Internet (in order to establish an SSH connection) invites password sniffing. Use the OpenSSH key pair methods described above, instead. This method is listed here for reference.

  • Terminal interactions (such as the SSH password challenge) can be automated using the expect utility. Install:
sudo apt-get install expect
  • If, for example, your SSH client ID is clientuserID, yourpassword is not#1sostrong, and the remote SSH server is (using the default SSH port of 22), then use this command to start the SSH tunnel:
expect -c 'spawn ssh -l clientuserID -L 5900: -p 22; expect assword ; send "not#1sostrong\n" ; interact'

There are other parameters in this example. 5900 and 5901 are the ports to be used on either side of the tunnel (port 5900 is used for VNC, for example). See Port forwarding through SSH for more details.

You can use the entire command as a menu item (must be "Run in terminal" in the Advanced menu options).


Virtual Network Computing (VNC) mirrors the desktop of a remote ("server") computer on your local ("client") computer (it is not a separate remote login, as is XDMCP). A user on the remote desktop must be logged in and running a VNC server (such as X11VNC, Vino, or Krfb). Keyboard and mouse events are transmitted between the two computers. VNC is platform-independent —- a VNC viewer on one operating system can usually connect to a VNC server on any other operating system. (Windows users can use one of several clients such as UltraVNC Viewer.)

Vino Remote Desktop VNC server

Vino-server (the Gnome VNC server) is included by default in Ubuntu. Start:

Menu -> System -> Preferences -> Remote Desktop
  • You can accept uninvited connections in the Security section. You can require a password for these connections.
  • This implementation of Vino does not allow changing the default listening ports (which start at 5900). If you wish to customize your VNC connection, use X11VNC instead.

How to securely use VNC with SSH tunneling

It is less secure to leave the VNC listening port open to the Internet, even with a password. (This can expose you to password cracking attempts.)

It is more secure to use SSH to tunnel your VNC connection. Under SSH port forwarding, the VNC listening port is the <remote port>. To increase security, this listening port can be changed from the default 5900. Only the VNC server and the SSH client need to specify the <remote port> in a secure connection.

X11VNC Server

While Vino is easy to use, X11VNC allows far more customization and therefore can be used more in situations where greater security is needed.

  • Install an X11VNC server to share your desktop with other computer:
   sudo apt-get install x11vnc
  • Run X11VNC without a password:
x11vnc -forever -rfbport 5900
Note: -rfbport 5900 specifies the port to listen on. The port number can be changed. This option is not required if the default port 5900 will be used. Don't forget to open/forward this port in your firewall/router. By default X11VNC server exits after the first client disconnects. To keep it running (and allow future connections), use the -forever option. See here for more command line options.
  • Create a password to use with X11VNC:
mkdir ~/.vnc
x11vnc -storepasswd YOUR_PASSWORD ~/.vnc/x11vnc.pass
  • X11VNC can then be started with a password:
x11vnc -forever -rfbport 5900 -rfbauth ~/.vnc/x11vnc.pass -o ~/.vnc/x11vnc.log -loopbg -display :0
  • You can create a startup script so that X11VNC is automatically loaded at startup (with password settings):
echo "/usr/bin/x11vnc -forever -rfbport 5900 -rfbauth ~/.vnc/x11vnc.pass -o ~/.vnc/x11vnc.log -loopbg -display :0" > ~/.config/autostart/
chmod +x ~/.config/autostart/
  • You can test the startup script:

Using VNC with SSH

See Port forwarding through SSH for additional information.

Vinagre VNC client

Vinagre is the default Gnome-based VNC client used in Ubuntu.

  • Menu -> Applications -> Internet -> Remote Desktop Viewer

Terminal Server Client

The Terminal Server Client is an Ubuntu/Gnome frontend for rdesktop (for RDP connections to Windows computers) and one of several vncviewer clients (for VNC connections). In can be used instead of Vinagre.

  • Menu -> Applications -> Internet -> Terminal Server Client
  • To use it with VNC, one of the VNC clients must be installed first. For example, install the TightVNC client:
sudo apt-get install xtightvncviewer
  • Note that the TightVNC client can be used from the command line (or as a menu item) directly:
where is an example host location that is running a VNC server on port 5900. For more command-line options, use
man vncviewer

Krdc VNC client

Krdc is the default VNC client in Kubuntu/KDE but can be used in GNOME. It can be used for both VNC and RDP connections. Installing it will also install the Qt platform and many KDE utilities (a large download).

sudo apt-get install krdc
  • Run:
Menu -> Applications -> Internet -> Krdc
  • The command-line connection (for use as a menu-item, for example) is:
krdc vnc://<remote IP>
  • If the remote (Krfp) VNC server is using a <remote port> other than the default 5900 port, use
krdc vnc://<remote IP>:<remote port>
  • Krdc can also connect to a Windows server using RDP (Remote Desktop Protocol).
krdc rdp://<remote IP>:<remote port>

Using a VNC client with SSH

See this howto for an automated setup using a script (it did not work for me, but it might for you).

In brief, you would initiate an SSH tunnel with port forwarding using Putty or the command line:

ssh -C <remote ip> -p <SSH tunnel port> -L <local port>:<remote computer>:<remote port> -l <user>
then you would start a VNC client such as Krdc:
krdc vnc://localhost:<local port>

<local port> will usually be the default 5900, in which case you could simply use

krdc vnc://localhost

XVNC4Viewer VNC Client

XVNC4Viewer is an alternative to Vinagre or the Terminal Server Client (vncviewer). Install:

sudo apt-get install xvnc4viewer

Automatic user login (for use with VNC)

VNC only works if a user is logged in. When a computer (hosting one or more servers) is intended to start up unattended and VNC (with or without SSH tunneling) is to be used, the computer ought to start with the primary user logged in. To accomplish this:

Menu -> System -> System Settings -> Login Manager -> Convenience -> Enable Auto-Login (ticked) -> Lock session (ticked)
-> Pre-select user: Specified: Choose primary user (i.e. the user hosting the SSH tunnel, if any, and the VNC server)
-> Automatically log in again after X server crash (ticked)
  • Also make sure the VNC server is set to Autostart at bootup.


FreeNX is a remote desktop display server/client solution that natively incorporates SSH tunneling (unlike VNC). It is therefore more secure than VNC (unless VNC is coupled with SSH tunneling).

FreeNX Server

The Free server .deb package can be downloaded from No Machine free server downloads.

sudo add-apt-repository ppa:freenx-team
  • Install the package:
sudo apt-get update
sudo apt-get install freenx

FreeNX Client

Download the self-installing .deb file from No Machine Client downloads.


XDMCP allows a separate remote login by an authorized user. This login is separate from the local user.

  • XDMCP is not secure over the Internet and should only be used within a LAN. It cannot be tunnelled through SSH. It is turned off by default in Ubuntu. To enable it, edit the configuration file:
gedit /etc/gdm/custom.conf
  • Find and change (or add) the line from false to true so that it reads:


SSH is, basically, secure Telnet.

VPN clients

A VPN (Virtual Private Network) allows a secure encrypted connection ("tunnelling") over the Internet between a client (either standalone or on a separate LAN) and a home or corporate LAN server.

VPN through Network Manager

  • The default Network Manager in Ubuntu/Kubuntu has a VPN client available. This includes support for IPSec and Cisco-compliant VPN connections. Install:
sudo apt-get install network-manager-vpnc
  • To connect to a VPN network using OpenVPN (SSL), install the plugin:
 sudo apt-get install network-manager-openvpn
  • To connect to a VPN network using PPTP (MS Windows servers), install the plugin:
sudo apt-get install network-manager-pptp
  • Configure:
Network Manager icon (in system tray) -> VPN Connections -> Configure VPN

vpnautoconnect (vpn daemon)

vpnautoconnect is a daemon to allow automatic vpn connections through Network Manager. Download and install the .deb package for your OS version.

Other VPN clients

Standalone VPN clients based on protocol are available (but not necessary if using Network Manager):

  • vpnc, grml-vpn -- for Cisco-compliant (IPSec) VPN networks
  • openswan -- for IPSec (OpenSwan) VPN networks
  • pptp-linux -- for PPTP (MS Windows-compliant) VPN networks
  • openvpn, gadmin-openvpn-client -- for OpenSSL (OpenVPN) VPN networks

VPN servers


OpenVPN is a free, GPL-licensed open-source cross-platform VPN solution based on OpenSSL (not IPSec). Install the server (then see the website for further installation instructions):

sudo apt-get install openvpn bridge-utils

A GUI configuration utility (GTK-based) is available:

sudo apt-get install gadmin-openvpn-server

Also see these installation tips.

Poptop (PPTP Server)

Poptop is a free open-source PPTP-based VPN server compatible with MS-windows PPTP clients. Install:

sudo apt-get install pptpd


OpenSwan is the open source implementation of IPSec-based VPN connections for Linux (and is a successor to FreeSwan). Install:

sudo apt-get install openswan linux-patch-openswan


(Under construction.)


Ubuntu by default is a fairly safe system. However, if you intend to use Ubuntu as a server, or for critical applications in which loss of data (by accident or by malicious intrusion) would be disastrous, you should learn how to make Ubuntu more secure. A good introduction to Ubuntu Security Best Practices is available. Recommended reading includes the book Cyber War by Richard Clark and this interview with Joe Weiss (IT advisor for the energy-sector smart grid). Also read read this CNN Money article.

  • Unfortunately, there is a false sense of security in Linux operating systems by many users. Linux is not immune to rootkits, viruses, and trojans (no matter how often it is asserted). See this page for a partial list of malware concerns present in Linux.

USB flash drive security

USB drives are a major means of data theft. USB flash drives can also be used to spread malware and exploit operating systems. (See this article for an example.)

  • An administrator password should be set for the computer BIOS and booting from a USB drive or CD/DVD should be disabled. (Otherwise, any passerby can boot their own OS and then use it to steal data from the hard drive.)
  • For any device's user account that does not have complete security (with full access restrictions to it), it is recommended to turn off privileges for the cabability to use a plugged-in USB drive. See this thread and this article for methods of restricting USB usage to authorized users.
Settings -> System Settings -> User Management -> User Accounts -> user -> Modify -> Privileges and Groups -> Privileges: Use floppy drives (unticked) -> Groups: plugdev (unticked) -> OK

Prevent unauthorized boots and system access

Many computers are kept in places where casual passersby may have an opportunity to access the computer, unobserved for short periods. In addition to physical precautions to prevent or slow computer theft (such as locked cases, alarms, and security cables similar to those used to slow bicycle theft), precautions should be taken to prevent an unauthorized operating system from being booted using an external device (such as USB drive). Once such as external OS is booted, it can be used to access most hard drive(s) on the computer and the contents copied to a second external device (to be examined or unencrypted later). This is a common means of data theft that is fast and easy to accomplish, and means to deter it should be taken on any public or semi-public computer.

  • Set BIOS to restrict bootup to the hard drive only.
  • Set a Supervisor/Administrator password for your computer's BIOS. (I recommend writing it down and taping it to the inside cover of the computer case prior to locking the computer case.) Disable booting from all devices except the hard drive. Setting the hard drive as the first priority boot device is not enough, as most current BIOS menus allow manual selection of any enabled boot devices. Only the hard drive should be left enabled.
  • Enable Hard Drive locking, if your computer's BIOS allows it. Most hard drives allow a password to be set by the BIOS and stored in a chip on the hard drive controller which can only be reset by disassembling the hard drive. (Some manufacturers provide a backdoor security key, however.) BIOS versions found on newer computers/laptops allow this password to be set in the BIOS, so that only a BIOS containing the correct password can unlock the hard drive. (If the hard drive is then removed from the computer, it cannot be accessed by any BIOS that does not have the correct password or backdoor security key.) Note, however, that this precaution does not protect against booting from external devices if the BIOS is still set to allow that.
  • There is a risk to this security measure. If you forget the password and the BIOS passwords somehow get reset, the hard drive would become inaccessible. The BIOS and Hard Drive password(s) should always be stored in a safe location.
  • Password protect the Grub bootloader. Without password protection, Grub can be used to circumvent BIOS restrictions. See this section for Grub Legacy and this section for Grub2.
  • Make sure all user accounts are protected by a password, and always require passwords for login. Never create an "administrator" user account (hidden or not) and leave it unprotected by a password. Never enable automatic login without a password to any user account.
  • It is possible to enable automatic login to a preferred password-protected user account while simultaneously enabling a password-protected screensaver (the password for which must still be entered even before initial user access). This is a reasonable solution that offers protection while still allowing automatic login.
  • Make sure a password-protected screensaver is always enabled (that will engage after a reasonably short period of inactivity).


Network communications go through "channels" called ports. You can restrict which ports are available ("open") for network communications, creating a barricade to unwanted network intrusion. Firewalls do this job for you. But I guarantee that if you install one before you know how to use it that one or more networking programs on your system will stop working. Read every bit of documentation about a firewall before installing it -- you won't regret the time invested. All of these packages modify iptables, which is the set of rules that controls network access in and out of your computer. (You can modify iptables manually from the command line, as well, but if you are that much of an expert, you probably don't need this guide.) Also see the official Ubuntu documentation.


Firestarter is an intuitive firewall manager used to set the iptables values which provide firewall capabilities in Linux (including Ubuntu). It has a very easy-to-use GUI.

sudo apt-get install firestarter
  • When running Firestarter, some common outgoing ports that ought to be opened/unblocked/"allowed" include 80 (HTTP), 443 (HTTPS), 53 (DNS), 993 (secure IMAP), 465 (secure SMTP), 123 (NTP).

Firestarter fails to open system log

This is a problem in Precise. See the solution here.


Shorewall (Shoreline Firewall) is an open-source firewall configuration manager for Netfilter / Iptables that does not require a background process to be running. It supports VPNs. Install the IPv6 version:

sudo apt-get install shorewall6
or the "lite" IPv6 version:
sudo apt-get install shorewall6-lite
  • Alternatively, the IPv4 version can be installed:
sudo apt-get install shorewall
or the "lite" version:
sudo apt-get install shorewall-lite


Guarddog is a GUI firewall configuration utility that was used for the KDE 3.1 desktop series. It has a complex array of configurations, and is difficult to use for some beginners. As of (K)Ubuntu 11.04 Lucid Lynx, Ubuntu repositories no longer carry Guarddog. To obtain legacy packages, see here.

Uncomplicated Firewall

Uncomplicated Firewall is installed in (K)Ubuntu by default, but all ports are open initially. It is configurable through the command-line interface. See this forum thread, or this usage tutorial, or Ubuntu community help for tips on how to set up and use it. If not installed, it can be installed:

apt-get install ufw


Gufw is a graphical user interface for Uncomplicated Firewall. Install:

sudo apt-get install gufw


  • If you are running a file server, interface frequently with Windows drives or share files with Windows users, or use virtualization, you will want a virus checker for your Windows files.
  • Despite extensive minsinformation, Linux is not immune from malware (witness the explosion of malware being created for the Linux-based Google Android systems). The malware is not usually spread within the OS itself (as long as the OS is a well-respected distribution obtained through official channels), but in trojan programs downloaded and installed by users outside of the normal software distribution channels (i.e. repositories) of the OS. There is always a danger to using programs downloaded from the Internet from sources other than respected repositories -- it is the primary reason that Debian and (K)Ubuntu retain tight control over their software repositories.
  • Any file can have malware embedded in it (which is trivial to achieve by concatenation, for example: cat originalfile.avi malware.exe > originalfileplusmalware.avi). The question is whether a user will try to open a file with a program (such as a media player) that has been compromised in a way that allows it to execute the code found in the infected media (e.g. .avi) file. This can occur not only for Windows users but for any OS (including Mac OSX and Linux) with a compromised program (e.g. media player). An example is the extensive problems the Mac OS community is currently having with the Flash player.
  • Routine scanning of any file downloaded from the Internet, any file imported from another user's computer (even a trusted source, since their attention to virus prevention may not be as compulsive as yours), or any attachment received in an email (even from a trusted sender) should be done with an anti-virus program.


ClamAV is the open source virus tool for Linux. To install ClamAV:

sudo apt-get install clamav
  • If an error is returned: "The database directory must be writable for UID 1000 or GID 1000" in order for the virus database to be updated, then change the ownership of the installation directory (/var/lib/clamav):
sudo chown 1000 /var/lib/clamav

ClamTk (ClamAV GUI)

ClamTk is a GTK-based GUI frontend for ClamAV. Install:

sudo apt-get install clamtk


AVG offers a free virus scanner for Linux in a .deb package. Download and install from the website.


Avast offers a Linux edition (for home users only) in a .deb package. Download and install from the website.


Spam Assasin

SpamAssasin is written in perl, and is mostly for use with a server (such as a groupware server or Apache). Install:

sudo apt-get spamassassin

Rootkit checkers

Rootkits are malicious trojan-like programs to allow an intruder to become a root user and therefore have complete administrative control over the system. There aren't many rootkits in the wild for Linux. Still, this is a growing security problem (especially in other operating systems) and it is a matter of time before more rootkits appear in Linux. Checking for rootkits isn't always successful from a system that is already infected. Your rootkit checker should therefore be run from another system, or a USB pendrive with an Ubuntu LiveCD installation. See the rootkit checker manuals for instructions how to do this. If you are infected with a rootkit, you must backup all your files and re-install your system. (Thank goodness this is easy with Ubuntu, unlike with other operating systems).


Chkrootkit checks locally for signs of a rootkit. See the chkrootkit manual for usage instructions.

sudo apt-get install chkrootkit
sudo chkrootkit

Rootkit Hunter

Rootkit Hunter is compatible with (K)Ubuntu systems. See the usage instructions.

sudo apt-get install rkhunter
sudo rkhunter

Malicious commands to avoid

There are many malicious commands to be avoided in Linux (as in all operating systems). It is worthwhile to be aware of these dangerous commands so that they are not executed by accident or by malicious advice.

PHP Security

Many open-source web publishing / groupware systems and programs rely heavily on PHP scripting.

  • Spambot Security offers ZB Block and other tools to help protect PHP-utilising sites from spam, malware, and other nuisances.

Network Monitors

There are two types of network monitors: those that monitor your own system's network settings and those that monitor network traffic. The latter includes security tools (that can also be used as hackers tools) for exposing security weaknesses in a network. Be aware and be safe! A list of available tools is at Top Ubuntu Security Tools.


Netstat is the Linux command-line tool to monitor network status and functions. There are many usage parameters. See the manual for help.


Etherape (Network monitoring)

EtherApe is a graphical utility that allows you to see (in real-time) where connections are being made on your network, or between your network (or computer) and the Internet. If you are experiencing unexpected network activity on your computer or LAN and wish to see where the activity is occurring, this is an easy tool to use. Both "local" user and "root user" installations are created; in general you must use the root user installation to see all your network traffic.

sudo apt-get install etherape

List open files

Sometimes you will see your network slowing and want to know which files are sending data over ports. Use this command:

lsof -i -n -P


Nmap is a free open source utility for network exploration (including showing open ports and running services) and security auditing. Also see these usage tips. Install:

sudo apt-get install nmap

Scan your own PC:

nmap localhost

(Once you have found out which ports are open, use a firewall to close the ones you don't want open.)

Nmap GUI


sudo apt-get install nmapfe
or you can try Zenmap:
sudo apt-get install zenmap


Nessus is a proprietary comprehensive vulnerability scanning suite that is free for personal, non-enterprise usage. See the website for details.


Snort is the de facto open source standard for intrusion detection. Install:

sudo apt-get install snort

It can be used with an MySQL database (sudo apt-get install snort-mysql) or with a PostgreSQL database (sudo apt-get install snort-pgsql).


AcidBase is an intrusion detection / basic analysis and security engine that uses Snort. Install:

sudo apt-get install acidbase


AppArmor is a set of security enhancements developed by Novell for SUSE Linux. It is installed in (K)ubuntu by defau