If you want to set up a stripped down Ubuntu desktop, a clean approach is to first install Ubuntu server on your hardware, and then manually add desktop component to it.
Assuming that you already installed Ubuntu server on your computer, you can install minimal Ubuntu desktop as follows.
Install Minimal Unity Desktop
The following command installs Unity desktop and its hard dependencies, but nothing else.
To see what packages are included in such minimal desktop, use the following command.
Depends: alsa-base, alsa-utils, anacron, at-spi2-core, baobab, bc, ca-certificates, checkbox-qt, dmz-cursor-theme, doc-base, eog, evince, file-roller, fonts-freefont-ttf, foomatic-db-compressed-ppds, foomatic-filters, gcalctool, gedit, genisoimage, ghostscript-x, gnome-control-center, gnome-font-viewer, gnome-media, gnome-menus, gnome-power-manager, gnome-screenshot, gnome-session, gnome-session-canberra, gnome-system-log, gnome-system-monitor, gnome-terminal, gstreamer0.10-alsa, gstreamer0.10-plugins-base-apps, gstreamer0.10-pulseaudio, gucharmap, gvfs-bin, inputattach, language-selector-gnome, libatk-adaptor, libgd2-xpm, libnotify-bin, libpam-ck-connector, libpam-xdg-support, libsasl2-modules, libxp6, lightdm, nautilus, nautilus-sendto, notify-osd, openprinting-ppds, printer-driver-pnm2ppa, pulseaudio, rfkill, seahorse, software-center, software-properties-gtk, ssh-askpass-gnome, system-config-printer-gnome, ttf-dejavu-core, ubuntu-artwork, ubuntu-drivers-common, ubuntu-extras-keyring, ubuntu-release-upgrader-gtk, ubuntu-settings, ubuntu-sounds, unity, unity-greeter, unzip, update-manager, update-notifier, wireless-tools, wpasupplicant, xdg-user-dirs, xdg-user-dirs-gtk, xdiagnose, xkb-data, xorg, xterm, yelp, zenity, zip
To check what packages are missing on the minimal desktop, run:
Recommends: acpi-support, activity-log-manager-control-center, aisleriot, app-install-data-partner, apport-gtk, avahi-autoipd, avahi-daemon, bluez, bluez-alsa, bluez-cups, bluez-gstreamer, branding-ubuntu, brasero, brltty, cups, cups-bsd, cups-client, deja-dup, empathy, example-content, firefox, firefox-gnome-support, fonts-kacst-one, fonts-khmeros-core, fonts-lao, fonts-liberation, fonts-lklug-sinhala, fonts-nanum, fonts-sil-abyssinica, fonts-sil-padauk, fonts-takao-pgothic, fonts-thai-tlwg, fonts-tibetan-machine, gcc, gnome-accessibility-themes, gnome-bluetooth, gnome-disk-utility, gnome-mahjongg, gnome-orca, gnome-screensaver, gnome-sudoku, gnomine, gvfs-fuse, gwibber, hplip, ibus, ibus-gtk3, ibus-pinyin, ibus-pinyin-db-android, ibus-table, im-switch, kerneloops-daemon, landscape-client-ui-install, laptop-detect, libgail-common, libnss-mdns, libpam-gnome-keyring, libproxy1-plugin-gsettings, libproxy1-plugin-networkmanager, libqt4-sql-sqlite, libreoffice-calc, libreoffice-gnome, libreoffice-help-en-us, libreoffice-impress, libreoffice-math, libreoffice-ogltrans, libreoffice-pdfimport, libreoffice-presentation-minimizer, libreoffice-presenter-console, libreoffice-style-human, libreoffice-writer, libwmf0.2-7-gtk, linux-headers-generic, make, mousetweaks, nautilus-share, network-manager-gnome, network-manager-pptp, network-manager-pptp-gnome, onboard, overlay-scrollbar, pcmciautils, plymouth-theme-ubuntu-logo, policykit-desktop-privileges, printer-driver-c2esp, printer-driver-foo2zjs, printer-driver-min12xxw, printer-driver-ptouch, printer-driver-pxljr, printer-driver-sag-gdi, printer-driver-splix, pulseaudio-module-bluetooth, pulseaudio-module-gconf, pulseaudio-module-x11, python3-aptdaemon.pkcompat, qt-at-spi, remmina, rhythmbox, rhythmbox-plugin-magnatune, rhythmbox-ubuntuone, shotwell, simple-scan, sni-qt, speech-dispatcher, telepathy-idle, thunderbird, thunderbird-gnome-support, totem, totem-mozilla, transmission-gtk, ttf-indic-fonts-core, ttf-punjabi-fonts, ttf-ubuntu-font-family, ttf-wqy-microhei, ubuntu-docs, ubuntuone-client-gnome, ubuntuone-control-panel-qt, unity-webapps-common, usb-creator-gtk, vino, whoopsie, xcursor-themes, xdg-utils, xul-ext-ubufox, xul-ext-unity
Install Minimal KDE Desktop
If you want to add minimal KDE desktop to Ubuntu server, run the command below. It will not install any recommended extra packages, but only those required to run KDE desktop.
Install Minimal Xfce Desktop
To install minimal Xfce GUI on Ubuntu server:
Install Minimal LXDE Desktop
To set up LXDE desktop on Ubuntu server, use this command.
The lubuntu-desktop package, by design, does not install any extra recommended packages, so you don't need to supply "--no-install-recommends" argument.
Subscribe to Ask Xmodulo
Do you want to receive Linux related questions & answers published at Ask Xmodulo? Enter your email address below, and we will deliver our Linux Q&A straight to your email box, for free. Delivery powered by Google Feedburner.
Support Xmodulo
Did you find this tutorial helpful? Then please be generous and support Xmodulo!

Subscribe to Ask Xmodulo
Support Xmodulo
What about with Pantheon?
Thanks- This was clear cut and helpful for my Ubuntu install. I had a problem with the arguments, but this did the job for me! 🙂
Great instructions, worked like a charm on 16.04. I used the F4 option of minimal vm install, and this got me the minimal dev VM I was looking for... thanks again