A fruitful distraction
As someone deeply interested in programming, *nix, open source and STEM in general, I have been into countless rabbitholes during my learning process. Allow me to share one of them with you.
After I switched entirely to Linux last year, I decided to learn C++ by following a Stroustrup's book and 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 relied on 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 my Windows days. Curious about which approach 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 proved to be the beginning of the biggest distraction of my life, was the second comment with 7 upvotes. It said, "I use i3wm, so none of those :p"
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 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 specific needs, which included i3-gaps, i3blocks, touchpad configuration, audio controls, fonts, colors, keybindings, and more. During this period, I stumbled upon the Arch Linux wiki, and that was it, I had discovered the holy grail of unix configuration.
Eventually, I came across r/unixporn, Luke Smith, DistroTube, etc. I watched several i3wm and urxvt tutorials from Code Cast on YouTube. As a result, I was able to customize my computer to suit my preferences, resulting in a unique look. Additionally, I created a repository on Github to backup and store my dotfiles in case I ever decide to change my distro. I became another 'btw, I use Arch' guy, constantly configuring my system, and discovering new tools and open source software programs all the time, but I haven't yet revisited the C++ book. I anticipate resuming it in about a week or so but there is no denying that that seemingly stupid question has taught me so much.
If this sounds interesting to you, I recommend trying out a window manager first. Because of the excellent documentation that it has, my personal suggestion is to go for i3 first. If you like minimalism and don't mind having to patch your window manager everytime you want to extend it, 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 WMs, check out this ArchWiki page or this video from DistroTube. Once you get the hang of how dotfiles work, 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.