Perfectminimal Project Page


A Swiss army knife showing many tools

This script aims to unlock the versatility of the Minimal ISO for the average user

Ubuntu’s Minimal ISO gives users an extremely flexible system for building customised Ubuntu systems. It installs a basic CLI environment, to which additional packages can be added. This requires a certain depth of familiarity with the required packages and dependencies.

Perfectminimal is an attempt to automate the process of using the Miminal ISO so that it can be used more easily.

Current Version



Perfectminimal (40KB)


  1. Install a command line-only system using the Minimal ISO
  2. Download the script:


  3. Make it executable:

    sudo chmod +x perfectminimal

  4. Run it:


  5. Profit!

What can I do with this script?

This script supports Precise and Quantal minimal installs.

You can install the following desktop environments:

  1. Ubuntu desktop (2D or 3D)
  2. Gnome Fallback Session
  3. Gnome Shell
  4. Kubuntu desktop
  5. Xubuntu desktop
  6. XFCE4
  7. Lubuntu desktop
  8. LXDE
  9. Myth TV

The following software is also available:

  1. Graphical package managers (eg: Synaptic or kpackagekit)
  2. Printing support
  3. Bluetooth
  4. Libre Office, Zoho Office, or Gnome Office
  5. Kmail, Evolution, Thunderbird or Webmail integration
  6. Smplayer, VLC, Amarok, Banshee, Parole, Rhythmbox
  7. Flash
  8. Multimedia codecs
  9. Fonts
  10. DVD support
  11. Preload
  12. Avant Window Navigator
  13. Miro
  14. Virtualbox
  15. Archive support
  16. Wine
  17. Skype
  18. Email spam filters
  19. Firefox (latest release), Chrome, Opera, Chromium
  20. Compiz Config Settings Manager
  21. Synaptic
  22. XBMC and Moovida
  23. Caffeine

Why Not Just Use Tasksel?

While there’s a lot tasksel can do, there’s also a lot it can’t.

Design Notes

Perfectminimal makes certain opinionated choices about what the user wants. This may not suit everybody, but I have tried to make sure it doesn’t do anything obnoxious.

The script’s aims are:

  1. Install a usable desktop, including login screens and network connectivity
  2. Provide several popular options for customising that desktop

It does not attempt to install the absolute lightest system possible, at the expense of usability.



  • Added Saucy
  • Removed Medibuntu repository, since it has closed. Codecs now come from k/l/x/ubuntu-restricted-extras


  • Added Raring


  • Removed Lucid, Natty, Oneiric
  • Added Quantal


  • Added scan for fastest mirror
  • Virtualbox now uses version in repos for Oneiric and later
  • Support for new Mint versions ended
  • Removed Maverick
  • Switched from mplayer to smplayer
  • Synapse replaces Gnome Do on Natty and later
  • Added Caffeine
  • Added Precise
  • Fixed really, really old typo (thanks killermist!)
  • Removed Firefox PPA for Lucid, updates now pushed out through official repos
  • Switch Precise lightweight gnome to gnome-session-fallback
  • Temporarily disabled backports and updates repos while I chase a bug


  • Added Oneiric
  • Replaced GDM with LightDM for Oneiric
  • Added Gnome Shell and KDE Low Fat Settings for Oneiric
  • Added support for proxies
  • Upgraded Virtualbox to 4.1


  • Removed Moovida PPA, was only needed for Hardy
  • Removed Hardy
  • Removed Karmic
  • Added Natty
  • Added Firefox 4 PPA for Maverick & Lucid
  • PPAs now use add-apt-repository for tidiness
  • Re-ordered some questions
  • Switched lightweight LXDE to lubuntu-core on Mav and later
  • Switched to bluedevil for Bluetooth on KDE Mav and later
  • Switched to Libreoffice on Natty and later


  • No more minimal KDE packages available for Maverick or later (boo!)
  • Tidied up interface niggles
  • Now only cleans out-of-date packages from APT cache
  • Bugfixes
  • Started implementation of changes for use in custom ISO
  • Virtualbox upgraded to 4.0
  • Gnome-core no longer installs Gwibber on Maverick or later.


  • User can now decide not to use 3rd party repos
  • Any 3rd party repos added are now included in logfile
  • Bugfixes


  • Removed Jaunty, added Maverick.
  • All versions now get Firefox 3.6 through Updates repo, not PPA
  • Improvements to code to make maintenance easier
  • Removed Back in Time
  • Added Ubuntu One for gnome-core
  • Installing AWN now installs either KWin or Compiz
  • Added gnome-do-plugin-evolution
  • Now offers system-wide update due to enabling Updates & Backports
  • New decision tree for desktop environment to allow more choices
  • New DE = Netbook
  • Lightweight desktops now get option for IM clients
  • Maverick XFCE4-core now offers Parole instead of Totem
  • No longer reboots after running, now just starts gdm/kdm/lxdm
  • Added gksu/kdesu to minimal DEs


  • Firefox PPA switched to stable instead of daily build
  • Virtualbox (non-OSE) upgraded to 3.2


  • Now writes to a log file at ~/.perfectminimal/logfile
  • Temporarily sets sudo timeout to 360 mins to allow unattended installs on slow connections
  • Switch to stable version of Chrome


  • Added Opera browser
  • Choice of office suites, email clients and media players for minimal installs
  • Integrated web apps available for Lucid (Zoho office and webmail)
  • Removed xnest
  • Gnome-core now picks correct user applet for version
  • apt-get install no longer use both -f and -m


  • Fixed bug in XBMC repo
  • Removed autofsck, since it never made it into the repos
  • Fixed bug in Chromium


  • Cleaned up decision tree
  • Added Chromium for Lucid users
  • Now reboots after successful install


  • Switched to simpler wget install method

0.1 Adapted from Perfectbuntu 3.5 RC6

  • Added support for Lucid
  • Removed support for Intrepid
  • Switched mirrors from Canadian to default
  • Enabled Backports and Updates repos by default, since we’re supporting old versions
  • Added Google repo
  • Added Skype repo, since we can’t get it from Medibuntu any more
  • Firefox version upgraded to 3.6
  • Added DE chooser
  • Added package management tools (and dkms because of Jockey)
  • Multimedia codecs now correct for DE by using Medibuntu non-free-codecs package
  • Correct libdvdread packages for version now installed
  • 3rd party repos no longer added unless actually required
  • Switched AWN, Miro and Gnome-Do to standard Ubuntu package
  • Removed Prism (is there really much demand for this?)
  • Added support for all versions of  Mint


Behold, the scripting wrench!

In the pipeline:

  • Scan for fastest server before downloading
  • Embedding the script in a custom ISO

Want to improve this script? Get in touch, i’d love to hear your ideas.


This script has not been exhaustively tested. Please help me squash any bugs by reporting them.


The downloads on this page are not provided with any warranty, implied or otherwise. Reasonable care has been taken in their compilation, but all use is at your own risk.

This page last updated 28 October 2013