Seems that every post I create is about changes, that can get annoying but I think that discussing the reasons behind those changes is important, interesting, or something like that. I don’t really care.
Why I stopped using Ubuntu
tl;dr: Canonical crap. I am using Arch Linux.
Debian is great. There’s nothing better than apt in the planet to manage packages. Debian Project’s commitment to free software is also great. The thing is that you end having to use Debian testing or unstable to have access to software on a timely manner. With time, you just decide that using Ubuntu is a good time saver: you install stuff that is basically Debian Sid (unstable) and it just works 98% of the time.
The problem is the whole Canonical cruft and crap that they add to Debian. I was watching Artur Bergman talk during 2011 Surge Conference and part of his annoyed sighs was aimed at distros and the Linux kernel trying to do stuff more user friendly that ends being stupid on servers. That’s how I felt with Ubuntu sometimes, in their effort to make an user friendly desktop they end pissing off users like me. Some of the ideas that I find horrible: upstart, the new display manager and don’t even get me started on that ugly Compiz patch they call Unity Desktop. Why they could’t just go with Gnome 3 that is great and works fine? Who knows.
All that quest for user friendleness ends adding a lot of crappy configs and layers and layers that, as all complex systems do, fails in miserable ways. It’s not a common thing to happen I agree, but in the last Ubuntu upgrade my notebook started acting up like a spoiled child. Each update consisted in installing Ubuntu and removing every bad idea that Canonical included so I could get a system that, for me, was the ideal. In the end I was faced with the prospect of a full reinstall, so I went all the way and simply changed distros to Arch Linux.
From their wiki:
Arch Linux is an independently developed, i686/x86-64 general purpose GNU/Linux distribution versatile enough to suit any role. Development focuses on simplicity, minimalism, and code elegance. Arch is installed as a minimal base system, configured by the user upon which their own ideal environment is assembled by installing only what is required or desired for their unique purposes. GUI configuration utilities are not officially provided, and most system configuration is performed from the shell by editing simple text files. Based on a rolling-release model, Arch strives to stay bleeding edge, and typically offers the latest stable versions of most software.
Is it easy and user friendly? No. How many fucks I give? 0
At the end of the first install I had choices. Arch Linux uses that braindead BSD style init, but systemd was just a pacman install away and I took the plunge. I know I complained about systemd before but after using it for two months I want to change all my linux computers/server to use it. It’s a pretty ingenious software, if you ignore the whole journald thing and use syslog.
I give credit that I only changed to Arch because my co-worker Alfredo uses it and kept bugging me to give it a try, so I did. Arch is a great distro for devs/sysadmins to have in their work computers because it’s simple, updated and made for people that know how to use a computer — we don’t need our computers to be friendly, we need them to be well oiled tools that integrate our body as an extra brain/member or anything cyberpunk-compatible you can think.
BTW you should check the crazy things Alfredo does. He is like a greasy monkey/coder that builds robots and monster cars on his free time.
Why I stopped using Gnome
tl;dr: Tiling Window Managers, more keyboard and console use. Dotfiles at the end of the post.
After I changed from Ubuntu to Arch I started feeling that I was missing something. Had I been using mainstream stuff for so long that I forgot that Linux is about using the tools that you like best? Not that I dislike Gnome 3, I love it, but what else existed around?
Well, Tilling Window Managers of course. Those weird, beautiful things. (I hope you read the Wikipedia article, I am not explaining what TWMs are).
I tried xmonad and Awesome WM, and ended deciding for Awesome because of the way xmonad deals with multihead setups (it’s really weird). Awesome also uses Lua as ‘customization/configuration’ language, Xmonad uses Haskell. I felt like I had better chances debugging lua than haskell (I can’t even understand Haskell code, even more fix stuff).
TWM and Awesome, specifically, are aimed at focusing on keyboard usage more than the mouse. To be honest I currently use 80% keyboard when doing my work. TWM are also great for people that like me spend most of the time dealing with terminals. Tiling was what I was doing when using multiple terminals on Terminator, so why don’t use a WM that actually knows how to deal with tiled windows? And why lose screen space showing the useless desktop and what not? Makes no sense at all.
This also caused me to focus more on console applications. At this moment I have command line clients for EC2 (So I can skip using the web interface), a screenshot tool, a script that uploads images to imgur.com, music player, IRC/Jabber/Twitter client using bitlbee, etc. The extra benefit is that my computer uses way less memory than what it used when running all the bloat necessary for Gnome. If you check the screenshots you will notice that I still using Network Manager but it’s an independent tool, I also use Gnome Keyring to manage SSH and GPG keys: those tools are simply the best in their areas and replacing that would be not a smart move (believe me I tried to replace NM with netcfg and that thing is horrible).
Finally, I’ve got a dotfile repo with my configurations, mostly because it’s good to keep track of changes I do to my setup but if someone wants to get some ideas, feel free.
It’s a never ending process, I guess. That’s the beauty of FLOSS in general: choice to make things work the way you want and expand from there. No walled garden here, just a plain full of space and adventure.