#1 – For want of money

This is a short piece I wrote to increase my flash fiction writing skills. I’m going to be doing this regularly in order to help build them up and to learn to get inspired from the tiniest of thoughts.

“What do you mean by that?” I asked

“Exactly what I said,” was his reply.

I looked at the scene in front of me. From the beggar and her baby, both covered with filth to the man standing beside me. I was meeting him after a few years. Back then, when we had hung out together, we used to be inseparable. We’d go out for movies together, go out and pick up chicks, act as each other’s wingmen, you name it, we’d done it. Then I’d gone to the US. I’d received an offer I couldn’t refuse while he had decided to stay on in India. I’d been gone seven years.

Things had changed since then. He’d greeted me like the old friend I was at the airport, but everything since then had been different. He’d tried to make sure that things remained jovial and normal, but somewhere, somehow I had noticed a tension. My friend had changed. And I wasn’t sure that it was for the better.

He’d been reluctant to tell me what he did for a living. I hadn’t known why then, but I knew now.

“You’ve injected the baby with heroin?” I asked again, to confirm. My brain was certain that my ears had failed it.

“I haven’t done it myself, but that’s what’s been done,” he explained quietly. “That or the baby’s been fed some alcohol.”

“Why?” I asked. Somehow, curiosity overrode revulsion.

“To keep him quiet, of course. She’s not his mother, and what do you think will happen once he wakes? He’ll be screaming and kicking. She won’t be able to beg properly if that happens.”

There was a pause.

“Do you also maim beggars in your jurisdiction?” I asked, my pitch increasing.

“Of course,” he shrugged, turning around, his leather boots clacking on the pavement. “You need an element of pathos for men to care.”

“They’re humans as well,” I said, the disgust finally welling up.

He stopped and turned me around. His eyes were calm, his gaze steady. “Tell that to the next whore begging me to buy her child.”

Customizing the Arch Desktop – Without a DE

One of the most fun things you can do in Linux is customize the way it functions and looks. And if you’re on Arch Linux, this is encouraged. Outrageous configurations are the norm, and if you tell someone that all you have installed on your laptop is tmux and a prayer, no one bats an eyelash. Chances are the next comment is going to be, “Been there, done that.” (I actually have been there and done that. It’s fun, you should try it out.)

The last time I posted about Arch, I posted about getting a stable and infinitely sexy XFCE config running. Since then, I decided to go DE-hopping, and ended up using Cinnamon for around 2 months and KDE for a few weeks. That brought me to a very important question. What exactly constitutes a DE?

A fully functional DE
A fully functional DE

The building blocks of a DE

A DE such as KDE has so many threads interweaved into its fabric that untangling them would take me a few days. There are daemons to tell programmes what time zone I’m in, for heaven’s sake. The others are all relatively simpler, but usually, you can break down a DE (after removing its bells and whistles) into the following:

  • (Roughly speaking) A DE init system
  • A Window Manager (with a compositor, if your DE is any good. I’m looking at you, XFCE.)
  • A panel (multiple, if you like) with a system tray, a menu-type launcher, optional quick launch, task manager, clock, etc.
  • A file manager
  • A terminal emulator
  • A dbus notification server
  • A quick launch/search program
  • Weird services I wasn’t able to understand, but which presumably serve some purpose
  • Weird services I do understand which serve no purpose (viz. Akonadi, Nepomuk, the time zone daemon in KDE)
  • A control panel for all these items

How much of it do you really need?

Not as much as you usually use, that much I can tell you. Actually, answering this question requires you to ask yourself a very basic and simple question. What do you want your DE to do?

A good DE tries to get out of your way
A good DE tries to get out of your way

For me, the answer was plain and simple. I want it to be there when I need it, to be perfectly suited to my workflow, to provide no distractions and to display the needed amount of information for me to have both peace of mind and the ability to work. In short, I want my DE to get out of my way.

All this time, I’d been trying to do that with XFCE, Cinnamon and KDE. To be fair to both XFCE and Cinnamon, they weren’t exactly in my face all the time. They were both joys to work with. However, I had a few weird problems in Cinnamon regarding my phone (I couldn’t browse it at all) and I didn’t really like gnome-terminal. I could have replaced it, but that’s what the DE wants you to use.

XFCE was almost perfect. I almost rue leaving it to go DE-shopping. However, in my quest to find a DE with the perfect blend of features and performance, I decided to leave it behind. (I haven’t tried LXDE yet. Maybe that should be my next target?)

Going to a WM

That, ladies and gentlemen, was my solution. Let’s throw away all this DE crap and go over to a WM! Sounds fun, right? Well, let me be the first to tell you that it was. UI customization is what I love, and starting with a fresh Arch install got my blood pumping. Mind you, though, that I did not mindlessly install base. Several useful components were deliberately left out (like cronie), so if there’s anyone who’s trying to follow my footsteps, I would recommend that you either simply install base and base-devel and be done with it, or head over to LFS and get down and dirty once, ’cause that will teach you a lot more than Arch or even Gentoo.

I installed my base system, got netctl working and happily added Bohoomil’s infinality repos to my pacman.conf. Now what? X server, of course. I took care to install the bare minimum. To tell you what I mean by that, my memory usage after my bare minimum install, connecting to the net and getting a pptp client running (I was going through a VPN) was near around 108 MB. Which is nothing to sneeze at. I use zsh, which is slightly heavier than bash, and I use it extensively. So you’re probably going to get better stats than me if you use bash.

I wanted to keep my work environment clean and slim. Why, you might ask. Why try something like that on a system with so much memory to spare? Well, quite simply this. I want as much memory available for the applications I use. So that when Firefox runs on a laptop with 4 gigs RAM, I don’t open Htop to see that my system has started swapping (it never came to that, but on KDE, it was routine to see 3450/3820MB used).

I decided on Openbox. Why? It’s very light, it’s minimalistic, and it gets out of your way. It allows for endless customization, and plays ball by being toolkit agnostic (not that I care, but it’s a nice point nonetheless).

Because Openbox can look extremely good
Because Openbox can look extremely good

Of course, Openbox by itself doesn’t give you everything you need. Compositing, for one, is simply not there. Many people will tell me they do not need it, but I prefer and use translucent terminals. I also like seeing shadows, windows fading in and out, and a hint of translucency here and there. Maybe Kwin is overkill, but something lighter? I decided to use compton.

I spent a lot of time searching for a good panel. I decided on tint2 in the end. It is quite light, supports all I need from a panel and is insanely customizable. I took the tint2-svn package from the AUR, for it has the ability to add launchers (for which I added custom .desktop files).

For my terminal emulator, I decided on rxvt-unicode-256colors. Not only is it very light, it is flexible and can be configured using your .Xresources file. Perl extensions can extend it to work exactly like the terminal of your choice. Which is good, for you’re definitely going to add just those pieces of cruft you do need.

With urxvt and pcmanfm
With urxvt and pcmanfm

For a file manager, I decided on pcmanfm. However, I did not install gvfs (for automounting) or the like. The whole point of pcmanfm was to make sure that the file manager is light and gets the job done. To replace the functionality of gvfs, I decided to use udisks (not udisks2) with udiskie.

Strictly speaking, udisks isn’t really needed. In fact, if you believe Ignorant Guru (search him up if you don’t know who he is), anything Red Hat is evil. He is the author of a very flexible (albeit visually cluttered) file manager called spacefm. He has written his own tool called udevil in response to both udisks and udisks2. You can use udevil and devmon instead of udisks and udiskie. However, I remember reading the words of an Arch dev who called Ignorant Guru’s views on udisks out of touch, which made me come back to it.

Udiskie is a small tool which makes it easy to mount/unmount devices from your system tray. Is it needed? Not really. I had it just in case I wanted to work with devices outside the file manager. I’m now thinking of adding a few keyboard shortcuts to Openbox to mount/unmount things and remove udiskie completely. I could always open pcmanfm if I wanted to work with multiple pen drives at once.

For knowing my network status at a glance, I have netmon sitting in my tray. It doesn’t really do much, just shows a nice icon which can tell me the status of my network at a glance. Do I need it? No. But is it good for peace of mind? Yes.

For a volume icon, I use volumeicon. It gets the job done, and doesn’t require pulseaudio. I need no more. If I need better control over my audio, I’ll open alsamixer.

My conky is compiled with lua support enabled. This allows me to easily add translucency using a little script I lifted off someone (who lifted it off londonali).

I use feh to set my wallpaper, and gmrun as a quick program launch.

The fruits of this labour?

Well, apart from feeling incredibly self-satisfied, I guess the real fun is in knowing that after I log onto my own, so called, “desktop environment”, I use around half the memory my XFCE used to use (XFCE – 440 Megabytes at startup, I use around 218-220 Megabytes at startup). I don’t have a file manager running in daemon mode all the time to manage my desktop (ala all desktop environments), everything is extremely snappy, all configuration is done using human-readable config files I understand (I wrote them, after all) and there is no extra package on my system.

The applications I use on a laptop configured thusly are Firefox, MPD, VLC, Skype, Calibre, etc. I don’t use Libreoffice (LaTeX FTW), and I am all the happier for it. I’d love to use mpv on this instead of VLC, but mpv skips frames, for some reason, which annoys me. I have a thing about videos. They must be perfect, else I’m going to crib about them. VLC is good, so I don’t complain. Much.

A deeper question is, is it worth it? In the long run? Well, I can’t say. My laptop’s got no battery left (I’ve abused it thoroughly in the 3.5 years I’ve had it), and it runs wholly on AC power. However, judging by the way my fans whir, I’d say yes. ‘Cause I used to have a jet engine on my lap with KDE, and now I have a sleeping baby.

At times it gets up and wails, but it mostly sleeps soundly.

The Wrongness of Right: Part 1

Note: By Right, I don’t mean to talk about the so called right-wing politicians. They have their own place and deserve a discussion, for sure, but this is not it.


Heaven, and hell. Hell and heaven. Two concepts taught to us at an early age in order to sensitize us to morality. Do good, and you get to go to heaven. You get to live with God, listen to choirs of angels serenade you to sleep, live for the rest of eternity with the greatest of the virtuous, and so on. It’s the prize every religion promises you (though the promises of 72 virgins still sound suspect to me) and a way for them to make you follow their tenets.

The stairway to heaven. The traditional goal of all intelligent life.
The stairway to heaven. The traditional goal of all intelligent life.

This is the carrot.

And if you do bad, it’s not heaven, but rather, hell, that you’ll land up in. Instead of God, you have the Devil (or a variation thereof), instead of choirs of angels, you have whip-wielding demons (not there if this turns you on, I hope) and instead of clouds and serenity, you have fire and brimstone. A bleak picture for any mere mortal.

This is the stick.

The logical fallacies surrounding the existence of God and various other reasons have lead to many people proclaiming themselves disgusted with religion and turning into atheists. Religion is for sheep, they say. God is for the weak-minded. Why does He not show himself? Is He afraid? And if He is, what is He afraid of, really? His own creations?

But almost no one declares themselves atheists because of this carrot and stick approach to morality. Even atheists have some semblance of morality within, and most of them live their lives according to this code. They might not believe in the traditional forms of heaven and hell, but they have consciences they listen to, and for the most part, the code of morality followed by theists and atheists is similar, if not the same.

“Thou shalt not kill”

But why is this so? Is morality really that absolute? Some philosophers philosophize that there is something known as an absolute truth. Would it be a stretch to say that there is something called absolute morality as well? The Bible certainly thinks so. There is a commandment given to Moses by God which says, “Thou shalt not kill.” Admirable, really. And by modern standards, it conforms perfectly with the concept of human rights. Taking the lives of fellow citizens is something frowned upon by the law of any country, as it perfectly well should be.

But take the case of a person fighting against a physically stronger person about to rape her. She manages to grab hold of a knife, and in the confusion that follows, instead of simply disabling his ability to ever rape anyone again, she manages to cut open his stomach and allows him to bleed to death.

Any competent lawyer will argue self-defence. But that commandment given to Moses had no exceptions. God did not say, “Thou shalt not kill (see footnote 1 for exceptions)”. God did not provide any appendix filled with legalese about situations in which murder was acceptable. Even if the person was exempted and cleared of all charges by the judge and jury on Earth, the court of the Lord would still find her guilty of breaking a sacred commandment. Since the commandment does not mention circumstances, a plea regarding circumstances would probably not amuse Him.

And just like Adam and Eve who did naught but gain knowledge, you too shalt be kept out of Paradise.
And just like Adam and Eve who did naught but gain knowledge, you too shalt be kept out of Paradise.

Another commandment mentions, “Thou shalt not bear false witness against thy neighbour.” Let’s do a thought experiment. Imagine you were sitting across a man who gives you an ultimatum. He says that your missing wife, who you love from the bottom of your heart and are sick with worry for, is with him. Before you can let all your tension out with your breath, he tells you that she will be returned unharmed on one condition. You must testify against the character of your neighbour in court tomorrow, else she may not be returned. If you decide to trick him, then your wife will be returned, but she might be “damaged goods”. His tone sends a chill up your spine. You have 12 hours in which to decide your next move, oh, and don’t worry about the coffee. It’s on him.

Your hands tremble as you make the decision of getting your wife back. The next day, you bear false witness to your neighbour. The man who accosted you yesterday wins the case. You cannot meet the eyes of your neighbour, who stares at you accusingly, screaming profanities at your retreating back as he is hauled off to Gitmo. And as soon as you reach back home, your wife flies into your open arms. You feel as if a weight has been lifted off your shoulders, it’s such a relief to hold her in your arms again. For that one moment, you can forget that you committed the capital crime of selfishness simply to send someone to hell on Earth and fulfil someone else’s agenda.

Or did you? Rewind a bit. The situation was such that someone was going to be killed/imprisoned no matter what. If you decided to be a good neighbour, then your wife would die, and the man who made you the deal would be imprisoned. Your neighbour’s agenda would be given a leg up. If you decided that you would get your wife back (as we just explored right now), your neighbour is going to be carted off to Guantanamo Bay and he might die there (the probability is pretty good that he will) or even if he doesn’t die, he’ll wish he had. Your neighbour’s opponent is the one whose agenda will be boosted, and in the end, you end up with one fewer person losing their life or freedom.

So did you sin?

According to God, you did. You bore false witness against your neighbour. But in doing so, you made sure that a fewer number of people were exposed to the kind of suffering that haunts most men in their nightmares. Is that not a good thing? Not according to the Bible. Just as in the previous “Thou shalt not kill” example, there are no exceptions to this rule. God will prosecute you all the same, even if you managed to save one of his treasured creations from certain death and/or worse.

So where does that leave us? Does this mean that all morality is subjective? Am I moral if my conscience is clear, like most atheists believe? It does seem a convenient way out of this situation. I’m moral if I kill my rapist. I’m moral if I manage to make sure that one less person is killed in this rigged trial. I did save a life here, after all!

And let’s say that this argument is accepted in heaven. All heaven looks at is the clarity of your conscience once you reach up there. If it’s clear as glass, you get to pass St. Peter. If it isn’t, you got an appointment with ol’ Lucy down in Hell. You can catch up on all the bad deeds you’ve done over a glass of frothing sulphuric acid and boiling mercury. That leads to another catch.

Invoking Godwin

Let’s invoke Godwin’s law here, it’s high time. Adolf Hitler is the epitome of evil in the minds of most people. He should be too. Anyone who can order something as heinous as the holocaust has a few screws loose somewhere, and deserves to be vilified by the world.

The Nuremberg Trials were held to give to the Nazis what they denied so many others. Justice.
The Nuremberg Trials were held to give to the Nazis what they denied so many others. Justice.

Let’s do another thought experiment. Hitler has just killed himself, and is standing for judgement. God asks him, “Is your conscience clear? Do you think you did the right thing back on Earth?” Adolf thinks about it. He remembers the screams of the Jews who died in front of him, he remembers the political opponents he had murdered, he remembers the troops he had sent to Stalingrad. He remembers the battle of Britain. He remembers the choice he gave the Desert Fox. He remembers the Volkswagen Beetle which led to thousands of people getting access to cars in Germany. He remembers the other things accomplished by the Nazis which led to some sort of rise in living standards of ordinary Germans. And he answers, “Yes, my conscience is clear. What I did to the Jews was necessary, and the rest of the world is mad for not believing in it. And the other things I did, well, it was for the good of the world. Those idiots Churchill and Roosevelt have no brains. If they did, they would have joined me.”

God sees that Adolf Hitler believes in what he’s saying, and lets him into heaven, where he joins everyone else who feel they did the right thing back on Earth. That list will soon include Gandhi and Mandela, but because of the way we defined morality, it also includes Cardinal Richelieu, Genghiz Khan and Emperor Nero. It’ll also include Saddam Hussein.

Is this fair? Can someone like Hitler potentially share the same moral high ground as Gandhi? Of course not. It sounds wrong to almost everyone who reads this. Then how can we define morality such that obvious cases like this are handled properly? Can morality be defined properly at all?

Review: The desolation of Smaug

One of the first questions my friends asked me as we left the theatre was, “I saw Smaug, but where was the desolation?” I couldn’t see it then, and I don’t see it now. A movie whose title promised acreage of burnt fields and collapsed buildings showed naught but a taste of the wrath of the dragon it promised to unleash on audiences.


Minor Spoiler Alert ahead!

The movie starts with the beginnings of Thorin’s quest. It shows him meeting Gandalf, talking to him and being granted his help. Gandalf suggests taking a burglar on their quest, and hence sets the stage for the events of the first movie to occur. We fast-forward to the end of the second movie. We see our heroes, the thirteen dwarves, our favourite Hobbit and Gandalf running across the screen, trying to shake off their orc pursuers. Of course, they’re not able to using conventional means. However, a house Gandalf knows of happens to be conveniently nearby. It’s occupied by a shape-shifter who hates dwarves, but luckily, he hates orcs more. He decides to help them.

This is no more than the first 15 minutes of the movie, and yet it shows something Peter Jackson seems to have missed while filming this trilogy. The Hobbit is a children’s book. Tolkien himself intended it to be such. Just like in any children’s fable, things magically occur at times. From the random coincidence of finding Beorn and his house to finding Bard, to finding the Arkenstone, a tiny jewel the size of a fist, among piles of gold that dwarf even Smaug himself, the movie is filled with ridiculous happenings which only the mind of a child can ignore.

Giving credit to Jackson, however, he manages to not let those coincidences overwhelm the movie. While they are jarring when they occur, they occur infrequently enough for them to have been ignored had the other parts of the movie been great. However, there are other flaws to this movie.

A common gripe about this movie is that it lacks depth. There are very few meaningful interactions between characters. In other words, in no part of this story is there any character development whatsoever. The potential was there, with a younger Legolas and a female elf named Tauriel. However, the greatest bit of character development occurred when the possibility of a romantic relationship between an elf and a dwarf was touched upon. Jackson, unfortunately, could not capitalise on that and moved on to a part of the movie which, thankfully, was not as bad as the rest. An action sequence.

The action sequences were epic, to say the least. Legolas and Tauriel seemed to have been dunked in Getafix’s magic potion (from Asterix and Obelix) when they were babies. Either that, or Jackson bestowed God Mode upon them. Arrows were fired from point blank range, orc bodies were being used to slide around and knives seemed to materialise from nowhere as two elves began the systematic slaughter of a company of orcs. With some help from the barrel-riding dwarves, a group the size which took down Boromir in The Fellowship was easily dispatched by the duo. Hence, when the dialogue, “You can’t chase down thirty orcs by yourself!” was uttered, all of us could only roll our eyes. You can, sister. You just did.

The presence of Azog the defiler also seemed unremarkable and unnecessary. Jackson, in his bid to fill up the plot, made flat characters with as much depth as a piece of paper. His rivalry with Oakenshield or with Beorn is only a filler which serves no purpose than to increase the length of the movie by a few minutes. The movie is filled with scenes like that. Many of them make no sense, or rather, they seem extraneous. They contribute little to the plot of the film and yet take up screen time.

Apart from this, the movie also lacks the same sweeping cinematography which made the original world of the Lord of the Rings seem so large. While a lot of action occurs in closed spaces, the lack of such panoramic shots makes the movie seem less grandiose and smaller in scale. The combination of such shots with an amazing score by Howard Shore (read the charge of the Rohirrim during the battle of Minas Tirith or Theoden’s last stand during the battle of Helms’ Deep) led to the most memorable scenes of the LOTR trilogy. To have both taken away by Jackson in making the Hobbit seems cruel, almost a travesty.

Howard Shore himself seems uninspired in this series. The music of the Lord of the Rings is on my hard disk today and it often plays when I tinker around with my system or mess around with some equation. However, I can’t remember the score of the Hobbit seven hours after having watched the film. I do remember it being present, but it never seemed to inspire the same sense of hope as the theme of the Rohirrim did, nor does it instil the same majesty the Gondor theme did. It manages to inspire none of the same fierceness of Theoden’s last stand nor does it manage to give rise to the gooseflesh-inspiring theme of the Rohirrim’s ride upon Minas Tirith.

The acting, however is top-notch. Martin Freeman, however one-dimensional his role is here, manages to bring back that same spark which makes him such a great Watson in the BBC Sherlock series, and Armitage manages to make Thorin majestic despite his height. Gandalf is played to perfection by Sir Ian McKellan and even Smaug gains a personality through some superb voice-acting by Benedict Cumberbatch. Luke Evans plays Bard beautifully and Orlando Bloom is as good as he ever was playing Legolas. However, the real star of the show was Evangeline Lilly as Tauriel. She manages to bring both poise and grace to an original character (she is not there in the book) and remains a significant addition we should praise Jackson for. Her presence manages to give the movie some much-needed depth and takes away from the testosterone surrounding the film.

The animation of Smaug, while brilliant, was wasted, I feel, because most of his scenes simply involved him speaking. There were few scenes in which he breathed fire, or laid waste to a city, or simply flew around. The true might of the dragon is showcased only in the last few minutes of the movie. That is unacceptable for a movie titled “The Desolation of Smaug”.

If I had to rate the movie, I would rate the movie a 6. Barely watchable. If it weren’t for the great action sequences or the fact that this movie is part of “The Hobbit” series, it would have been unwatchable. It manages to have less depth than the first part of the series with an excellent cast and bad direction. Go watch it, for I know you will, but go with no expectations of awesomeness.

Adding bling to Arch: Desktop Environments

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.

Desktop Environments

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

A very typical Gnome Shell screenshot
A very typical Gnome Shell screenshot

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.


My old KDE config
My old KDE config

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.


A very typical Ubuntu 13.04 desktop
A very typical Ubuntu 13.04 desktop

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.


The Cinnamon default desktop
The default Cinnamon desktop

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.


Pantheon on Elementary
Pantheon on Elementary

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.


Sabayon with Razor-Qt
Sabayon with Razor-Qt

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.


My current Arch Linux desktop
My week-old XFCE on Arch Linux desktop

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 very standard XFCE desktop
A very standard XFCE desktop

To this:

My current desktop!!
My current desktop!!


  1. A proper installation of Arch Linux with a working X-Server
  2. All the requisite drivers
  3. The package group xfce4 available in the official repos
  4. The packages compton-git (AUR), cairo-dock, cairo-dock-plugins, terminus-font

Recommended packages

  1. 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.
  2. 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)
  3. 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 netctl You 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.
  4. 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 & 

Once you have xfce up and running, create a basic, empty panel at the top with the following settings:

xfce-panel-properties-3 xfce-panel-properties-2 xfce-panel-properties-1The first separator after the applications menu should have the expand option checked. All of them should be transparent.

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.

Fun with Linux: Starting out

This blogpost is going to be much more technically oriented than any I’ve ever published before. It’s aimed at a geekier audience than what I normally cater to, so please do not bash me for it. It discusses filesystems and zsh. The next post in this series will talk about configuring a graphical environment.

Before going further into this blogpost, you should understand that none of what I write here is gospel, you’re free to reinterpret it as and when you please. Also, most of what I’ve written is the work of people better and far more experienced than I. All I’ve done is tweak their methods a bit for my own satisfaction. Their names are far too many for me to recount, and I honestly don’t know them all.

Distro of choice

Arch Linux

Why Arch? Well, there are many, many reasons. But the ones most important are:

  • It’s highly customizable
  • Pacman and the AUR
  • It doesn’t assume anything about the user
  • I’m very comfortable with it

Arch Linux follows the KISS philosophy. This allows one to see the internals of the OS and tinker around as one pleases. You can customize Arch to be anything. It can become a remote-controlled seedbox, a production server, a heavy-duty workstation or any thing else you can dream of.

Arch Linux is also noted for being one of the first distros to support new technologies as and when they come out (viz. python3, systemd etc.). This allows Archers to be ahead of the curve when it comes to adoption of new technologies (At times very far ahead. Elementary OS still ships with Linux 3.2.0 as default while Arch is on 3.11.1).

The Arch community is also a very active group of guys. They’ve created one of the most feature-filled and complete wikis available in Linux-land, they’re very active on the IRC and the devs are very approachable. The reason I mention this is because I’ve run into my fair share of problems on Arch, and I’ve found everything I need within the community itself.


Okay, the beginners’ guide pretty much walks you through the installation. There isn’t anything much you’d want to configure in your installation except your partition layout and the packages you wish to install.

I formatted my whole disk and used all of it for Linux. Why? Just. I don’t particularly have any Windows-specific work. My partition layout is as follows:

$ lsblk

sda      8:0    0 465.8G  0 disk 
├─sda1   8:1    0   256M  0 part /boot
├─sda2   8:2    0     4G  0 part [SWAP]
├─sda3   8:3    0    28G  0 part /
├─sda4   8:4    0     8G  0 part /var
├─sda5   8:5    0 421.5G  0 part /home
├─sda6   8:6    0  1007K  0 part 
└─sda7   8:7    0     4G  0 part /var/cache/pacman/pkg
sr0     11:0    1  1024M  0 rom

I’ve made separate directories for home, boot and var and my package cache in addition to a GPT partition, root and a Swap partition. This is because I formatted all these using different filesystems.

  1. /dev/sda1 – ext2: Ext2 is generally considered a good choice for boot since it’s fast and stable. It however, does not have journalling support. That shouldn’t be much of a problem, of course, seeing that you’re not going to be writing much to /boot anyway.
  2. /dev/sda2 – SWAP: I made this partition a swap partition simply in case I wish to compile anything major. Swap partitions are recommended over swap files for a few reasons.
  3. /dev/sda3 – ext4: The root partition was formatted with ext4 because btrfs does not have an fsck utility. Until btrfs gets a reliable fsck program with the same capabilities as any other mature fsck program, I don’t wish to use it for my root. Till then, ext4 is the best general purpose file system you can get.
  4. /dev/sda4 – reiserfs: ReiserFS is considered very good for small files. /var is supposed to contain many small files, hence I decided to format it with ReiserFS. I’m considering shifting to Reiser4, however, I’ll have to patch my kernel for it. I’m also not sure just how good Reiser4 is compared to ReiserFS.
  5. /dev/sda5 – btrfs: Most people would consider their data to be more important than the system they’re storing it on. I do too. I’ve already cited the lack of a reliable and fully-featured fsck program as the barrier to my usage of btrfs. However, that’s not to say that btrfs does not have any error-tolerance built-in. It does. The “recovery” mount option does allow you to recover your data in case of any problems. The reason I have no problems with formatting my /home as btrfs is that I can always unmount it, re-mount it with the recovery option and then get all my lost data back. That’s not particularly easy with the root partition.
  6. /dev/sda6 – BIOS boot partition: This 1007K partition is required by BIOS systems using GPT. Don’t let the partition number fool you. It’s located at the beginning of the disk.
  7. /dev/sda7 – jfs: The /var/cache/pacman/pkg mount point is not normally seen in most Linux systems, or for that matter even most Arch systems. The reasons I keep it separate is to preserve my package cache in the laziest way possible in case I have to reinstall and to improve pacman performance. Jfs is another general purpose file system developed by IBM. It’s supposedly very fast and extremely light on resources. It also has a few issues with fragmentation Ext4 does not seem to suffer from. I used this because I wanted a lighter filesystem for my pacman cache. I would have used XFS (it’s good for larger files), but apparently it’s not very good for home systems.

I got all my filesystem information from here and here. For those who ask why I used GPT, it’s because it’s next-gen. The MBR is old. Even Windows is shifting away from it.

When using pacstrap, I’d recommend pulling in vim, elinks, networkmanager (or connman) and zsh as well. While nano is a perfectly serviceable editor, I’ve always preferred vim. Sure, the learning curve is steeper, but it’s vim. Along with emacs, it’s probably the oldest editor out there people still use (I’m leaving out sed for very obvious reasons). If you have no experience with it, I’d recommend running vimtutor on the command line to learn the basics.

I recommend zsh over bash for those new to the command line. While it is very important to learn bash (do learn it, btw), zsh is simply more convenient and easier to use for day-to-day usage. My .zshrc looks like this now:

# Lines configured by zsh-newuser-install
setopt appendhistory autocd extendedglob nomatch notify
unsetopt beep
bindkey -e
# End of lines configured by zsh-newuser-install
# The following lines were added by compinstall
zstyle :compinstall filename '/home/vader/.zshrc'

autoload -Uz compinit
# End of lines added by compinstall

# Prompt
autoload -U promptinit colors
promptinit && colors

PROMPT="[%{$fg[green]%}%n %{$fg[cyan]%}%~%{$reset_color%}]%# "
RPROMPT="[Last Exit: %?]"

# Command not found hook
source /usr/share/doc/pkgfile/command-not-found.zsh

# Autocompletion options
setopt completealiases
zstyle ':completion:*' menu select
zstyle ':completion:*' use-cache on
zstyle ':completion:*' cache-path ~/.zsh/cache
zstyle ':completion:*:*:kill:*' menu yes select
zstyle ':completion:*:kill:*'   force-list always

# Ignore duplicate history lines

# Keys and stuff

typeset -A key



# setup key accordingly
[[ -n "${key[Home]}"     ]]  && bindkey  "${key[Home]}"     beginning-of-line
[[ -n "${key[End]}"      ]]  && bindkey  "${key[End]}"      end-of-line
[[ -n "${key[Insert]}"   ]]  && bindkey  "${key[Insert]}"   overwrite-mode
[[ -n "${key[Delete]}"   ]]  && bindkey  "${key[Delete]}"   delete-char
[[ -n "${key[Up]}"       ]]  && bindkey  "${key[Up]}"       up-line-or-history
[[ -n "${key[Down]}"     ]]  && bindkey  "${key[Down]}"     down-line-or-history
[[ -n "${key[Left]}"     ]]  && bindkey  "${key[Left]}"     backward-char
[[ -n "${key[Right]}"    ]]  && bindkey  "${key[Right]}"    forward-char
[[ -n "${key[PageUp]}"   ]]  && bindkey  "${key[PageUp]}"   beginning-of-buffer-or-history
[[ -n "${key[PageDown]}" ]]  && bindkey  "${key[PageDown]}" end-of-buffer-or-history
# # Finally, make sure the terminal is in application mode, when zle is
# # active. Only then are the values from $terminfo valid.
if (( ${+terminfo[smkx]} )) && (( ${+terminfo[rmkx]} )); then
	function zle-line-init () {
		printf '%s' "${terminfo[smkx]}"
	function zle-line-finish () {
		printf '%s' "${terminfo[rmkx]}"
	zle -N zle-line-init
	zle -N zle-line-finish

# Aliases which look good
alias ls='ls --color=auto'
eval $(dircolors -b)		# Not an alias, but helps with less
alias grep='grep --color=auto'
alias blah='echo'
alias sudo='sudo '

# Time-saving random aliases

alias cower='cower --color=auto --target=/home/vader/Builds --verbose'
alias youtube-official='youtube-dl --continue --username [snipped] --password [snipped] --max-quality mp4 --output "/home/vader/Youtube Downloads/%(title)s.%(ext)s"'
alias youtube-playlist='youtube-dl --continue --username [snipped] --password [snipped] --max-quality mp4 --output "/home/vader/Youtube Downloads/%(playlist)s/%(autonumber)s-%(title)s.%(ext)s"'
alias amv='youtube-dl --continue --username [snipped] --password [snipped] --max-quality mp4 --output "/home/vader/Youtube Downloads/AMVs/%(title)s.%(ext)s"'
alias theatre-arts='youtube-dl --continue --username [snipped] --password [snipped] --max-quality mp4 --output "/home/vader/Youtube Downloads/Theatre Arts/%(title)s.%(ext)s"'
alias dcpp='tmux attach-session -t dcpp'

# Colored less
export LESS=-R
export LESS_TERMCAP_me=$(printf '\e[0m')
export LESS_TERMCAP_se=$(printf '\e[0m')
export LESS_TERMCAP_ue=$(printf '\e[0m')
export LESS_TERMCAP_mb=$(printf '\e[1;32m')
export LESS_TERMCAP_md=$(printf '\e[1;34m')
export LESS_TERMCAP_us=$(printf '\e[1;32m')
export LESS_TERMCAP_so=$(printf '\e[1;44;1m')

# Coloured man pages
man() {
    env LESS_TERMCAP_mb=$(printf "\e[1;31m") \
	LESS_TERMCAP_md=$(printf "\e[1;31m") \
	LESS_TERMCAP_me=$(printf "\e[0m") \
	LESS_TERMCAP_se=$(printf "\e[0m") \
	LESS_TERMCAP_so=$(printf "\e[1;44;33m") \
	LESS_TERMCAP_ue=$(printf "\e[0m") \
	LESS_TERMCAP_us=$(printf "\e[1;32m") \
	man "$@"

A large portion of my .zshrc is youtube-dl aliases (I download lots of AMVs). Most of my .zshrc is not original, I’ve copied it from various sources, primarily the Arch Wiki. Do learn to utilize the power of the shell, for that is the true meaning of Linux mastery.

In the next part of this series, I’ll talk about configuring a DE to look something like this:

My current Arch Linux desktop
My current Arch Linux desktop

India’s bane: HDI

The partition clashes, anti-Sikh riots, the ethnic cleansing of the Kashmiri Pandits, the Babri Masjid demolition, the Godhra riots. We can add one more incident to these now. The Muzaffarnagar riots.

Riots in India | Courtesy Aamchi Mumbai
Riots in India | Courtesy Aamchi Mumbai

This report from the Independent tells us that the riots being talked about were the result of a very trivial matter (relatively speaking, of course), namely, eve-teasing. However, when a Muslim youth was stabbed to death for allegedly teasing a Hindu girl, things started getting out of hand. Retaliatory strikes from the youth’s family led to the deaths of two Hindu men.

A group of farmers got together to demand justice from those killed. However, inflammatory speeches made by a few politicians coupled with a video made a couple of years ago in Pakistan showing two men being hanged led to heightened tempers and extreme tension. The result? An open clash between Hindus and Muslims leading to around 28 people dead and scores injured, some critically.

Heads have already begun rolling in the police department with top officials being transferred in the aftermath of such brutal violence. The DIG of Saharanpur, the SSP of Muzaffarnagar and the SP of Shamli were the first officials to be transferred.

Of course, just like any other similar incident in India, political capital has already started to be minted from these riots. With the Indian National Congress claiming that the SP and BJP were behind these clashes, the cat and mouse game of vote-bank politics has started.

This cycle of communal violence is perpetual in India, it seems. The rest of the developing world has moved on beyond petty violence and killings. Why do we stay grounded firmly in the past? Why must we always harken back to the days of old when religion was everything and might was right?

To resort to a very cliched point, there are two Indias. One of them is the face we wish to present to the world. The face of a rising India, one which can stand shoulder to shoulder with the likes of the United States, China, Germany etc. This India seeks to trumpet its GDP, imported goods, high standards of living and extreme math skills. It is haughty and proud of its achievements. It bristles whenever the west lauds movies like “Slumdog Millionaire” and tells everyone that India is more than a land of snake charmers and poverty. It wishes to see India catapulted into the ranks of the “Greatest countries of the World”. Elitism rules this part of the population and they privately deride any comparison with other emerging economies, especially China.

The other India is the one most Indians are familiar with. The land of rickshaw-pullers, paan chewers and farmers. The land where the only thing that shines is ignorance and religion is a way of life, not just an abstract ideal. The effects of globalization have not truly affected these people. They haven’t heard of Hugo Boss, Apple or Microsoft. And they have no wish to hear about them either. All they wish to know is where their ticket to a better life awaits.

The idea of India doesn’t hold much value for the second group. When you worry about your next meal everyday, patriotism isn’t the first thing to strike your head. Hell, even education is the last thing on your mind when your own stomach is empty and you have five crying kids to feed. The only group bigger than the individual and family these people care about is the group they can fall back on in times of crisis, i.e. their community. And so whenever someone does something against their community, they respond fiercely, vehemently and often violently. And seeing that most people in India are of this mould, there’s a high chance that flying sparks will kindle their anger and lead to killings.

HDI map for 2013 | Courtesy Wikipedia
HDI map for 2013 (the deeper the blue, the better the index) | Courtesy Wikipedia

With a Human Development Index close to Bangladesh (which is rapidly catching up) and (in some states) equal to many countries in Sub-Saharan Africa, the India its elite want to hide will never progress beyond where it is. Giving free food, strengthening rape laws, banning politicians from giving hate-speeches and trying for schemes like NREGA only alleviates the symptoms, it does nothing about the real problem, the HDI itself. If it does not increase substantially in the next few years, the Indian story will remain bloody, anarchic and communal for a long time to come.