Switching to Linux
Published: 2020-09-16 21:43:45

# Introduction
As you may have guessed from the title of this blog post, I have switched to Linux. And no, not Arch Linux - though I guess Manjaro is close. Specifically, XFCE Manjaro (and I've also been experimenting with i3).

Before this, I had a very strange split where most of my development things (like Python packages, programs, scripts) would be on the Windows side, and then only the programs that I absolutely *needed* from Bash and WSL (like C compilers for [CS50](https://kewbish.github.io/blog/posts/200621/) and vim) on WSL. However, I've been recently having to lean more on the WSL side, and having dependencies on both sides was a little annoying to manage. For example, I wanted to try Vim and configuring autocomplete with Python there, but the problem was, I needed the packages to be on the WSL side.

As well, I find myself surrounded by a lot of people who use Linux, and their constant harping on about this super cool project and interesting configurations made me curious. I wanted to see what it was like, and I'd been spending a lot of time browsing [shiny rices on Reddit](https://reddit.com/r/unixporn). While it's possible to be a productive developer on Windows, I felt that it'd be easier (and more fun besides) to just try installing Linux.

# Day -∞
Leading up to the install, which I kept putting off, I spent a decent amount of time researching how to dual boot, partition, configure Linux, and choosing a distro. Various [distro quizzes](https://distrochooser.de/) (yes, somewhat cringe) and recommendations led me to Manjaro. It has the configurability of Arch, while having a GUI installer and being less of a pain to install (according to several blog posts, which were extremely reliable sources of information) than pure Arch.

I also was thinking about KDE versus just a tiling WM, but I decided to go with XFCE (also with the help of several probably biased articles). It'd provide graphical options, and would probably make it easier to transition from Windows and its infinitely explorable menus to the already unfamiliar Linux. I liked the idea of a tiling WM, but reading that it didn't provide the same menus to click through was a bit off-putting. After a while, I also installed i3, but more on that later.

And of course, I wanted to experience the ever-mentioned Vim in its full glory. I'd tried it in WSL so this wasn't *too* much of a leap.

# Day 1
Day 1 was a fine Thursday - where I really wanted to just spend some time doing mindless work that'd work without headaches. In the morning, I backed up all my old data and while that was happening, I burned the ISO.

After backing things up and doing some last minute research, I finally booted to the USB and followed [this very fine guide](https://forum.manjaro.org/t/howto-dual-boot-manjaro-and-windows/1164) on the Manjaro forum. I only shrunk my Windows partition by maybe half (this is important for Day 2), but besides that I was pretty proud of myself. I was quite pleasantly surprised that I ended up not messing anything major up, and the entire installation was done in 15 minutes.

For the remainder of the day, I mostly messed around with terminal settings, and trying to explore XFCE settings. I managed to import my Chrome history and also set up a theme. I did a bit of terminal theming tweaking, and messing around with LightDM backgrounds. Didn't really do much to mess things up, just a lot of installing. I was also pleasantly surprised how fast things and packages download on Linux, and how relatively easy pacman was to use.

# Day 2
In the morning, I did a bit of work, and in the background, tried to install more packages. In the meantime though, I also realized that I wouldn't really be on Windows much. So - I tried to resize partitions. (This is where the bit about partitions from last section comes into play). This is what my partitions approximately looked like:
```text
||| windows things ||| linux things + + |
```
The Linux side had about half, and I wanted to make it more like:
```text
||| win ||| lots of linux space         |
```

Essentially, more space. The problem was, I didn't know how to rearrange the space after shrinking Windows to move capacity to the home directory. I realize now that I could probably have just formatted the other directories and kept home, but I didn't know that then. In my defense, I hadn't realized that yet. So, I got the trusty Manjaro USB out again - and reinstalled. This unfortunately wiped a lot of my packages, so I had to reinstall things yet again. Unfortunate.

At least this time round, it was a lot easier to get things set up the way I'd like - I knew where each of the relevant settings were, and I even set up OneDrive properly this time. It was very tedious to reinstall everything *yet again*, but in the grand scheme of things, I spent more time configuring each and removing unneeded packages.

# Day 3
Today, I was messing around with power settings and things, and I found that normal Chrome was using a bunch of resources relative to the other programs, at least according to powertop. I did some research, and apparently it was due to YouTube and GPU decoding videos. It wasn't really enough to be noticeable, but I was interested in trying to tweak it anyway. So, I (tried to) download Chromium from pamac. I thought it wouldn't do anything major - just another install. (Spoiler alert: I was wrong.)

It was a pretty big install, so I just did more work and let it run in the background. However, once I finished a problem or two and I was checking on the install progress, I realized it was stuck. What's more, when I tried to close pamac (bad idea #1) just by exiting, it didn't close. Huh. I then tried to force quit it through processes (bad idea #2). It did close, but before that, I noticed that it was stuck particularly on 'Updating grub menu'. In hindsight, that was probably a very bad idea. But I go about my day, and after finishing work, I shut down (kinda bad idea #3).

When I tried to boot my laptop again, I noticed that Manjaro's bootloader kept getting stuck on the HP logo screen, where the spinner would appear for a while, and it'd go dark as if it were properly booting, but then getting stuck in a loop again. I thought it was an issue with the partition things I'd done yesterday, so I re-enter the Manjaro boot live environment. Problem was, it was stuck waiting for a module forever.

I then tried booting into Windows, but for some reason, that was extremely slow and things weren't opening properly. I was pretty stuck on this, but then a friend donated a Manjaro wiki link. It detailed some grub menu fixes, which I attempted to do, but by then, the live USB had managed to fix itself (I guess turning things on and off again does somehow fix things), and I just ended up formatting every partition except my home, which I kept.

Cue a couple minutes of waiting, and then tedious reinstalls. After this though, I managed to not break my system (fingers crossed I don't manage to break it again), and I've been fiddling for the past few days, tweaking configuration files and the like.

# Conclusion
In the future, I'm going to continue configuring i3 (which I also installed, just to see what a tiling manager was like) and try to set this up just as I like it. I'd like to fix the status bar to be not *quite* so colourful and information-full, and make the window tabs a different colour and design. In addition, I'd like to make all my colourschemes nice and greyscale, and maybe properly set up my dotfiles.

In case you wanted a screenshot, here's how my desktop looks at the moment (yes, this is a metascreenshot):

![My desktop at the moment](https://i.imgur.com/ylo8NCl.png)
*My desktop at the moment*

I'm actually pretty pleased with what I've managed to learn and create in the past week or so. It's quite bare - mostly just the default i3 config. I'd like to 'rice' it some more (apparently that's what it's called), and I feel like I've learned a lot from repeatedly breaking my system three times in as many days. I can definitely see why Linux users get so superiorist about it - it's very easy to customize and I think I'll be trying to make this system as bespoke and shiny as I possibly can.