Menu

SlimOS How To – A Minimal Debian Desktop with Minimal Fuss (Part 1)

I have been using an Ubuntu desktop for the last few years doing the version upgrades and having no issues to speak of with it. But I also started to notice that the system was being a bit slow with larger applications like Firefox and others. Recently I have been moving back to my roots in terms of using terminal apps over pretty GUI versions. So I decided to take on the challenge of doing my once every two years complete reinstall of my home desktop with a slant on minimalism and cleanness.

I looked at various “distributions” like Crunch Bang, Dream Linux, Arch Linux, and countless others. Yet it is somewhat of a stretch to call most of them distributions since just bundling and branding or Debian based packages. So I decided to just go to the source and roll my own. This is by far the best option for a clean minimal desktop with only what you need and will use on it.

Let me first describe my idea of “cleanness” in a desktop install. I will be using Debian 6.0.1 as the base for my system. I have chosen this over Ubuntu for the ease of doing a very minimal clean install free of Gnome, KDE, etc. My install will be using awesome window manager, which is a very lightweight tiling window manager that uses lua. If you prefer something more familiar to the average user please look at Openbox, Fluxbox, or similar to maintain the minimalist approach.

First let’s install the base system using the Debian small CD iso image (consult Debian site for other architectures):

For easiest results I use a spare USB drive I can format and use unetbootin to load the ISO image on the drive. Once it is loaded on the drive I boot from it. You may need to hit a key like ESC to choose what device to boot from depending on your hardware and BIOS configuration. You can also use a CD and burn the ISO image onto it.

When I run the install I select a separate /home dir and to encrypt using LVM (optional but good for security). Towards the end of the install you will be prompted to select broad groups of install sets. De-select all but “Standard system utilities” and complete the install. You may also want to select “Secure Shell Server” if you will be using SSH to connect to your desktop (always nice to have).

Now in my case I wanted to install awesome and get the basic desktop going. If your hardware includes a Nvidia graphics card use this howto to install the kernel.

Install SLiM (optional) if you prefer a graphical login manager. Along with awesome and its extras.

sudo apt-get install slim awesome awesome-extra

Now you can reboot (if installed Nvidia driver be sure to) or just run slim to get the graphical login and enter using your username which should launch awesome. Once loaded you may want to read up on the awesome man page for keyboard shortcuts.

If you right-click on the desktop or left-click on “A” in top left corner you will get a basic menu. Choose open terminal and we can install other wanted/needed packages for your new desktop.

You can pick and choose what packages to install but I will give you a basic rundown of ones I installed to make me able to work efficiently while still being minimal.

feh – image viewer

wicd – network configuration tool

moc – music on console command line music player

uzbl – lightweight web browser framework

conky – desktop system information display

vlc – video player

pidgin – IRC and IM client

gedit – text editor (choose your favorite)

sudo apt-get install feh wicd moc uzbl conky vlc pidgin gedit

The Arch Linux wiki has nice page of lightweight applications for many needs. Once you have the above packages you can use uzbl to download and install Firefox or Chrome.

In command prompt:

uzbl --uri=http://www.google.com/chrome/

Download the file, it will be saved in your /home/username directory.

Run:

dpkg -i google-chrome-stable_current_YOURARCH.deb

It will give error that some packages are not installed. This is to be expected.

To remedy the missing dependencies run:

sudo apt-get install -f

Then run the above command to install Chrome browser.

Install any other packages you may want. In Part 2 I will discuss pimping out your awesome desktop.

I realize this is a rather old post but if you are still maintaining this site you should be real close to your “once every two years complete reinstall of my home desktop”.

I have installed awesome off and on many times now and there is always some point that I mess up my config. If you are still using awesome or at least remember your pimping process I would love to see it. I could really use a cleaner method than I have used in the past.

I have been using OpenBox for some time. So do not have the configs for Awesome. For all my configs I usually keep them in git or SVN repo so I can roll them back and use them on multiple machines.
Good luck with it!

I’ve done the same thing, for the same reasons as you. I installed a Debian testing with nothing else (not even system tools) and used apt-get to install some basic apps. I tried Fluxbox, LXDE, Gnome, KDE and several other window managers and desktop environments using the –no-install-recommends option. Fluxbox (fluxbox) took a bit to get used to, but was amazing given it’s size, LXDE (lxde-core) could use some polishing (like being stuck with wicd), and KDE (kde-plasma-desktop) was nice but ate too many hardware resources (I was using a very old computer). Another desktop environment I liked was XFCE (xfce-core). After having played around with desktop environments, I tried the login interfaces (xdm, gdm, slim, kdm) and it’s obvious that the best one is KDM. Slim is also very nice, but it’s a bit too… slim. Stay away from XDM if you want to live. As browser, I just used apt-get to install chromium-browser (chromium was a game so they name the Chromium browser package as chromium-browser, but I think that changed since Wheezy). As terminal emulator, LXTerm (lxterminal) and Konsole (konsole) will do; I prefer LXTerm over all the others and it works fine on all desktop environments. System utilities which you might need: mc, less, openssh-server, openssh-client. And that was it! I’ve used my custom configuration for months and it was cool to learn about what lies beneath the surface of Debian and GNU/Linux software in general by finding packages, learning about what they do, why things don’t work with each other, etc.

I strongly recommend others to follow my footsteps, especially since there is all kinds of virtualization software available these days and a Debian VM with a GUI works with 512 MB of RAM for daily use (movies, browsing, etc.) (but could use 1 GB).

There are many text-based applications that can replace your standard-GUI ones. As a web browser I highly recommend Links2 and as for file browing Midnight Commander stands out (you can customize so many things including the theme used to display all the stuff in its window). For internet I would get my hands away from UZBL or similar not because they are bad but because they are alpha/beta-releases, which means there is still a lot of work to be done to make it usable (here I include the security aspect also!). Fluxbox/Openbox are indeed an eye-candy with insanely good performance and size overall. Awesome is quite geeky so it requires from a user much more time to get used to the way it works. I’ve started using it recently and it is really great.