This post is divided into two parts. The first part deals with my views on the various desktop environments available to all Linux users. The second part deals with the way I configured my own graphical environment the way I like it on Arch Linux (what else?). This post is a successor to my previous post about Arch.
I’ve tried out many desktop environments over the three years I’ve spent on Linux now. I started out on Gnome 2, moved on to KDE and dabbled in everything from XFCE to OpenBox in between. I’m not hardcore enough for Xmonad or Ratpoison, though I might shift once I get my own multi-monitor setup. Running a tiling WM on a 14-inch laptop screen makes no sense to me.
What follows are my feelings on my experiences with various DEs. Do understand that all I wish to present are my own experiences and views. It is not my intention to start flame wars or hurt anyone’s choice of DEs (which I know are made after careful deliberation).
If you wish to simply read my tutorial on creating a beautiful desktop using XFCE, do skip this (rather long) section.
Gnome 3 is one of the newer entrants to the DE segment. I chanced upon it in some version of Fedora, I remember. I’d seen some screenshots of Gnome 3.0 at that time and was damn excited about actually getting it working on my PC. And so, like a cow being happily led to slaughter, I installed Fedora (and hence Gnome 3) on my system. I was very thrilled with the concept initially. I didn’t particularly have a very defined workflow at the time, so I thought it to be pretty great. However, small things began to irk me after a while.
You had to press Alt and then hit the requisite menu item in order to shutdown. There was nothing like a minimize button. The concept of dynamically changing workspaces was good, but it could have been better. It could have been made more flexible. The only way to cycle between running applications was Alt+Tab, I seem to remember. While the concept of focusing on one task at a time does make sense, one cannot do serious work with it, I feel.
It was Gnome 3 on Fedora which prompted me to move to Arch in the first place. Around a year later, I decided to revisit it briefly, this time on Arch. After installing it, however, I found that Gnome was not very themable. The reason? Updates break themes. I also found out there was no way of replacing Mutter.
Gnome 3 has felt very beta-ish to me. These things (themes breaking, for instance) are expected in betas, but not when you have point changes. And especially not in every point change. There are themes which are separately certified to work with Gnome 3.4, 3.6 and 3.8. I’ve heard of developers complaining about needing to redesign themes for every new point release. If a DE doesn’t respect the community behind it (as seems to be the case with Gnome), then it doesn’t deserve my time.
KDE has been my favourite for a long time now. Infinitely customizable with a large community behind it and an app collection second only to Gnome (I think), KDE stands out as the DE for someone who wants an insane level of customization as well as good integration. I liked Nepomuk (in 4.10, at least), I love Cantata (I use MPD, so no Amarok), Okular, Yakuake etc. KDE was like a wet dream come true for me.
The downsides? The bloat. People have argued that the KDE bloat has reduced from the KDE 3 days. And I’m sure they’re right. But it’s still heavier than it has any right to be. KDE takes longer to start than any other DE I’ve tried and there’s more lag while opening KDE applications than there is on, say, XFCE.
I stuck with KDE for a long time. It was just too easy to configure and had a lot of apps integrated well with the interface. However, I started getting irked by the bugs in the Notification daemon used by KDE. At times unread notifications would linger and it would bother me until I didn’t manually dismiss them. And when Telepathy notifications began piling up there, I just gave up.
The default KDE icons are also weirdly ugly. I would generally try to change them, but in KDE 4.11, changing the default system tray icons required deleting a few files from some random folder in /usr/share which would get repopulated every time the package supplying them would get updated. That bothered me more than I care to admit.
The dearth of good quality QT themes also forced me to consider alternatives. The default Oxygen theme, while very clean, is not precisely to my taste.
I still stayed with KDE for the longest I ever stuck to any one DE. I think the developers are going in the right direction with it and despite the huge number of bugs in their releases, I would recommend it to any customization freak.
Unity has to be experienced on Ubuntu to really work on it properly, or so my friends told me. And hence began my distro-hopping this summer. My KDE had started giving me all sorts of crap and I was really annoyed, so out went Arch, and in came Ubuntu.
Bang out of the box was a pretty awesome interface. Unity seemed to be a step in the right direction for me. It was fast, without lag and seemed to get the job done without being in-my-face. I loved the way things just seemed to work without any problem (but that’s a post for another day). It was also configured a lot like I usually want out of the box. That’s a big plus in my book, though it might not be in someone else’s.
The biggest plus, however, in my opinion, are the indicator applets. Simply amazing. No other words for it. They hook up to everything you can imagine and deliver the best possible integration I have ever seen with things like music, the network, Twitter, etc.
However, problems did start cropping up, and because I do not know if they are Unity problems or Ubuntu problems, I’m going to list the ones I found obstructive to my workflow. The first was Unity’s nature of crashing frequently. I don’t know if the release I had (13.04) was unstable compared to the ones Canonical normally releases, but it had me foaming at the mouth at times. I’ve lost more time than I can think of simply troubleshooting packages.
Second was its tendency of freezing up. I would be working on Chrome or FIrefox and it would simply randomly freeze up int he middle of opening a new tab. It would either take an hour to unfreeze or I would have to reboot.
Third was the complete non-customizability. I mean come on. I like changing my wallpaper and all, but for just how long am I going to continue doing that? I’m a customization freak (that’s putting it mildly) and I hate keeping the same theme for the rest of eternity. Maybe I just looked in the wrong places (most probably the case), but I couldn’t really find many good Unity themes. Unity seemed unchangeable. I grew very very bored of it. When the crashes got frustrating, I decided to switch distros.
I might have tried installing Unity on Arch. However, getting all things Canonical on my laptop didn’t seem the best course of action for me to take.
Cinnamon was experienced on – you guessed it – Linux Mint. I got Linux Mint Nadia, installed it and ran it for a while. My experience? Brilliant. Cinnamon is a really great DE. It’s built for speed, aweomeness and oomph. I loved everything, from the indicator icons to the applications menu. I might have continued living on Mint forever had the lure of Pacman, systemd and everything Arch not brought me back.
The only problem I could see in Cinnamon was that it could not be configured to support mac-style global menus. While I’m over that stage of my life now, at that time anything which did not support them was a deal-breaker for me. Also, I don’t like the one-panel style which Cinnamon was so keen on promoting.
There’s probably nothing else to share. Cinnamon and Mint worked like a charm until I decided I wanted to get back on Arch. But I wasn’t over Cinnamon yet. Cinnamon on Arch seemed like a dream come true.
Alas, it was not to be. When I installed it, it kept crashing on my system. Turns out I needed the proprietary Catalyst drivers to run it properly. I bid a tearful goodbye to Cinnamon, knowing my system’s never going to run the proprietary Catalyst drivers as long as Arch still runs on it.
To be fair to every other DE out there, I haven’t installed Elementary and run Pantheon on it. But I have a friend who has, and I’ve used it quite a bit. My only impression of Pantheon is that it has the potential to blow away absolutely anyone who ever tries every DE in the world.
It is light, it is fully functional, there is no lag, and it is beautiful. Simply beautiful. Elementary has been created by designers for normal people, and it shows. There are thoughtful touches everywhere. From the fonts used on the labels to the spacing between toolbar icons, everything has been configured to mesh together nicely and present a cohesive, unified front to the user. The overall look is mind-blowing.
The worst bit about it? Pantheon is built to work on Elementary, which is based on Ubuntu 12.04. Sheesh. I’d have to downgrade my Arch to the Stone Age in order to use it. I’m not gonna do that!
However, the Elementary devs are Gods among Linux UX professionals, I must say. Their creations, especially the addition of the Granite libraries to everything seems to make their programs integrate flawlessly into the interface. Use Pantheon with the apps made for it (namely Noise, Midori, Maya, etc.) and you will experience computing Nirvana. And unlike Unity, Pantheon makes you want to try it out the way the devs want you to. That’s quite an achievement.
Razor-Qt is a pretty awesome desktop environment, methinks. I used it instead of LXDE because their futures seem to be converging and turning to Qt. Frankly, Razor-qt is a pretty sparse DE. It doesn’t even bundle its own File Manager, but rather provides a set of recommendations.
I didn’t spend much time with it, but I found out that while it does allow one to customize the hell out of it, there’s not many options out there for something like Razor-Qt because the community hasn’t adopted it the way they have the other DEs I’ve mentioned previously. This led me to move to the DE which holds my heart currently. XFCE.
This is my current DE. I’ve been on XFCE for around a month now, and I must say, once you start customizing it, XFCE can be made into pretty much anything you wish it to. It is probably less flexible than KDE in this respect, but being GTK, it has a bit more love from the community.
Okay, that’s discrimination, but that’s the way these things function, I guess.
XFCE has Thunar, which is pretty decent (piss-poor after Dolphin with all its bling and KIO-slaves, though) and xfce4-terminal (Konsole FTW!). While they might seem inferior out of the box, customization is the name of the game. And of course, one can use as many alternatives as one likes.
XFCE does not provide you access to Unity indicator applets the way Cinnamon and Pantheon do, nor does it support global menus the way Unity and KDE do.
What it does provide you is a brilliant lightweight DE with insane customizability options and a tonne of GTK love. It doesn’t break themes like Gnome does after every update, nor does it attract the same level of hate KDE seems to wherever it goes. It’s not as sparse as Razor-Qt, and given the right options, it can be made to look almost as good as Pantheon (or so I believe).
The most serious drawback of XFCE has is that it’s based on GTK2. GTK2, while a pretty amazing toolkit, has reached the limits of its awesomeness. I also understand that shifting to GTK with the current state of its development and its rate of change will force the XFCE devs to simply spend time needlessly on porting XFCE to new minor versions of GTK.
The second, and one more immediately rectifiable is the built-in XFWM compositor. To say that it’s crap is an understatement. It is plain horrible and it makes everything you have running tear violently. I have never been more glad that I found out about Compton. If you wish, you can probably replace XFWM with something like kwin-standalone-git which will provide all the compositing you need without having to mess around with Compton.
However, XFCE is fast, zippy and very lightweight. And hence, it is the ideal choice of DEs for someone like me. People may agree, they might disagree.
The XFCE Desktop Tutorial
This tutorial aims to help you turn your desktop from this:
- A proper installation of Arch Linux with a working X-Server
- All the requisite drivers
- The package group xfce4 available in the official repos
- The packages compton-git (AUR), cairo-dock, cairo-dock-plugins, terminus-font
- ttf-google-fonts-hg or ttf-google-fonts-git from t he AUR will provide the fonts I like using. You can use something like dejavu-sans if you wish.
- fontconfig,freetype2,cairo}-infinality-ultimate. In this case, it would be a better idea for these packages to be downloaded from Bohoomil’s custom repo (Instructions)
- networkmanager is simply very hassle-free. If you wish to use netctl, be my guest.
However, do remember that there is no way to get a status icon int he system tray for netctlYou can use netmon-git to get a systray icon for netctl if you wish. However, I have not tested this out yet, so I would appreciate feedback.
- mpd, ncmpcpp, xfmpc, mpdris2-git, xfce4-soundmenu-plugin are packages which I use to listen to and control my Music. You can use Clementine or Noise if you wish. However, the soundmenu plugin will only work for players with MPRIS2 support, so do keep that in mind while selecting your player.
The actual configuration
My configuration file for Compton (~/.config/compton.conf) may be got from here. Most of it has been sourced from the Arch Wiki with a few changes here and there as I’ve seen fit.
Compton is used for basic compositing as the built in XFWM compositor is pretty bad. Your ~/.xinitrc should contain:
compton --config ~/.config/compton.conf & startxfce4
Once you have xfce up and running, create a basic, empty panel at the top with the following settings:
Now download the compass icon theme from here and put it in your ~/.icons folder. Install the xfwm-axiom-theme, moka-gtk-theme, gtk-theme-numix-holo-git and awoken-icons packages from the AUR. Install xfce4-notifyd if it’s not already installed.
Go to XFCE settings and change your Window Manager theme to axiom, your GTK theme to moka, your icon theme to Compass and your notifications theme to Numix Holo. Change the default font to Arimo and the proportional font to Terminus or Inconsolata. Go to ~/.icons/Compass/index.theme and change the line:
Start Cairo Dock using the command cairo-dock -o. This starts Cairo Dock using the OpenGL backend which is faster than Xrender. Right click cairo dock and add launchers as you see fit. Change the icons to Compass in the appearance tab. Change the dock theme to Tux_n_Tosh. Before applying, do make sure that the checkboxes Use new theme’s launchers and Use new themes behavior are unchecked.
Now open Thunar and press Ctrl+M once to hide the menubar once and forever. If you want it back, Ctrl+M is still there.
And voila! There you have it! A wonderful XFCE desktop which does all you want while looking good.