~rsapkf

The Rabbithole Series, part 1

May 20, 2019 · 3 min read · Last updated: May 25, 2019

As someone deeply interested in programming, Unix, open-source and STEM in general, during my learning process, I have been in so many rabbitholes that I thought of doing a 3-part series of blog posts on this very topic. In this first part of the series, I am going to explain a rabbithole that I fell into a while back in very subtle way and it changed my workflow and knowledge about operating systems so much that I don't think I'll ever be will be able to go back to where I was before.

After I switched entirely to Linux last year, I decided to learn C++ by following a Stroustrup's book on C++. As a Sublime Text/Atom guy, I decided to do the exercises in Vim to brush up on my Vim skills.

I found myself constantly switching between Vim, terminal, e-book viewer and my browser windows in order to solve the problems. As an Ubuntu Gnome newbie, I was using the alt + tab key combination to do so. Eventually, I realized I could do the same thing using super + tab keys! It was surprising to me because I had always used the former solution since Windows. To see which was more common among other Linux users, I did a quick search on the web.

I found a Reddit thread where someone had asked the same question. The first comment on the thread said, "alt + tab because I didn't know super could do that as well." Okay. But what was the beginning of the biggest distraction of my life ever, was the second comment with 7 upvotes. It said, "Neither, because I use i3wm. :)"

Now, as a voraciuosly curious person, I had to do a quick search- I had never heard of i3wm before. As some of you might already know, it's a powerful and popular tiling window manager. One look into its documentation, I knew I always needed something like this in order to do things effectively.

I found that the default look that i3 comes with isn't very attractive. Not just its look, but I had to do a number of additions and modifications to its config file to make things work properly.

For example, it isn't very straightforward to set a wallpaper. You have to install and configure a separate little program called feh in order to do so (mind you, there are alternatives). It took me 3 weeks to make it usable for my needs (i3-gaps, i3blocks, touchpad configuration, audio controls, fonts, colors, keybindings, etc) and during that period, I came across the Arch Linux wiki, and that was it, I had discovered the holy grail of unix configuration.

screenshot

It was only a matter of days that I came across r/unixporn, Luke Smith, DistroTube, etc. Now my computer looks like this and I have an entire repository on Github to backup and store my dotfiles in case I want to change my distro. I became another 'btw, I use Arch' guy, I'm constantly configuring my system to fit my needs, and my bookmarks have begun to rise in number exponentially. I discover and use new tools and open source software programs all the time AND I haven't yet gone back to the C++ book. I think It'll be another month or so before I resume it but there is no denying that that stupid question has taught me so much.

Further reading

If you're interested in these things as well, I suggest you to look into window managers first. Because of the excellent documentation that it has, my personal suggestion is to go for i3 first. If you don't mind having to patch your window manager everytime you want it to do something, go for dwm. If you are a Haskell fan, try Xmonad. There are several options to choose from. If you need a quick comparison between features of different window managers, check out this ArchWiki page or this video from DistroTube. Once you get the hang of how dotfiles work, look at mine on my GitHub or check out the unofficial guide to doing dotfiles. Also, just bookmark ArchWiki and GentooWiki, no matter which distro you are using.

Updates: I have moved to dwm since December 2019.