01:00pm | 02/04/2021 update
When did you first use a computer? I remember sitting at the corner desk in my childhood bedroom playing Descent II. It was probably the first video game I had ever played.
The keyboard controlled the yaw, roll, and pitch of a spacecraft as you navigated through a labyrinth of sci-fi tunnels and airlocks. You had to fend off flying robots with lasers and missiles.
This was the early 2000's— before Spotify, when people still owned their own music. My dad swapped digital music collections on hard-drives with his co-workers and friends. I discovered Nirvana, Portishead, and Static-X in the overwhelming (10GB+) depths of folders.
Growing up, I shared a room with one of my younger sisters. We had the old Windows 95 Compaq PC in our room because my mom bought a new computer for work. Her's was running Windows 98 and had dial-up Internet.
Even though it was off-limits at first, I still managed to get online— quite frequently, actually, once I was introduced to Neopets and Runescape by my friends.
In high school, we replaced the old Windows 95 Compaq PC in our bedroom with a Hewlett Packard. It had a whopping 2GB of RAM. Our local library had a collection of PC games that were suddenly made accessible with this newfound computing power.
I bought a 50-ft Ethernet cable that I draped through the kitchen and up the stairs to download mods for The Elder Scrolls IV: Oblivion— and to update MySpace.
When my application to pursue a degree in architecture was accepted, I was gifted an incredible Alienware laptop. It was a Windows 7 machine with maxed-out specs— an i7 processor, 24GB of RAM, and a full TB of storage!
This machine made for quick work while modeling or rendering in Rhino3D and V-Ray— and could run any video game at max settings. It had an HDMI-in to use as a display, as well as all the RGB LEDs you could ask for.
Most Windows 7 devices offered a free upgrade to Windows 10 when Microsoft was advertising its flagship release. I resisted for a while, but eventually made the plunge. After a little debugging, the hardware was cooperating with its new OS.
The sharp lines, flat icons, and keyboard shortcuts for snapping and exposing windows were all very appealing. However, it was around this time that I was also introduced to the Raspberry Pi— and, consequently, the Unix terminal.
A friend of mine, who's daily carry was a MacBook Air, showed me how to navigate the terminal with Tmux and Vim. He also showed me the basics of Web development. We started working on a project together, and I installed the Windows Subsystem on Linux (WSL) to use the same commands and follow a similar environment setup.
After a couple of years, I was getting very comfortable in the Ubuntu terminal. I was using CSS, HTML, JS, and Python at school and at work. At the time, I was commuting to Chicago on the train, and the Alienware was big, heavy, and had poor battery life.
In a stroke of luck, my sister gifted me her Dell XPS13 when the keyboard stopped working. I replaced the keyboard module for $35, upgraded the hard-drive (128GB → 256GB), and— more recently— replaced the battery. This laptop is still my daily carry.
After much encouragement from my friends in tech, I decided to dual-boot Ubuntu. A full Linux distro takes interfaces with the laptop's hardware in a way that WSL cannot (at least, not at the time of writing).
I was loving Ubuntu 18.04; but since the little laptop wasn't quite powerful enough to run all the software that I'd been using on Windows, I really had no reason to keep Windows. So, I quickly went from dual-boot to straight Linux.
WSL had been serving me faithfully, but I was tired of struggling with networking and hardware issues. Even after upgrading to the latest WSL2 build as a Windows Insider, I was still frustrated with the hoops and hurdles of getting a working Docker setup or accessing the GPU for machine learning.
More recently, I had been frequenting the r/unixporn subreddit. I had done some simple customization: downloaded GTK themes, gnome-tweaks, and given the terminal a face-lift with color and vim-plugins.
I started to investigate i3wm and Polybar, in pursuit of a seamless terminal and to banish those distracting titlebars from my screen. Eventually, I settled on a set of config files that I was pretty proud of:
My system was running so wonderfully... I had a polybar to envy, I was beginning to commit my i3 shortcuts to memory— and then something broke. When you're working in the terminal, small mistakes can be catastrophic.
This time, I couldn't pin-point what I'd done wrong; but I decided to take this opportunity to backup my files (while I still could!) and test out Regolith Linux— a preconfigured Ubuntu+i3wm Linux distro that I'd been eyeballing with great interest.
I'm so glad that I did! The Regolith build installs from a USB just like a typical Ubuntu image. However, Regolith. I was disappointed that all of the time and effort I'd spent setting up volume and network UI blocks for my system's statusbar went down the drain; but, Regolith does it for you— and does it well:
I took my sweet time exploring Ubuntu before cutting ties with Windows; but I wish I'd listened to my friend's advice and made the switch years ago! I still have WSL2 on a Windows 10 laptop at work (for 3D modeling and rendering); but I've even installed the Regolith desktop on that machine using VcXsrv!
It was a little tricky, and Regolith doesn't make it obvious, but you can manually start the desktop GUI by starting xlaunch.exe, moving your regolith config files to the appropriate /root folders, exporting the correct $DISPLAY variable, and then running:
If you're an experienced programmer, I encourage you to checkout Regolith; or, if you're like me, take it slow and start by diving into WSL. Good luck and happy coding!
If you don't want to leave the gnome shell— but want all the convenience and efficiency of i3— checkout Pop Shell. I haven't used it yet... However, from what I've gathered, it lets you keep some classic Gnome features (like the application bar and window-exposer) while giving you the beautiful tiled screen that i3 provides.
I ended up writing a full tutorial about getting WSL2 installed with Regolith Linux.