2026/04/30
So I'm supposed to be developing out the rest of this website so that I can get everything moved over to neocities. Honestly though, writing html and CSS is one of the least interesting ideas in my mind. I want to be present on the indie web, and fleshing this thing out is an essential component to that so I WILL do it. In the meantime though, I am perfectly happy distracting myself with other meaningless tasks.
I just finished updating the style sheets for my blog to get things centered. I kind of laugh looking back at the start of my journey with computer code - I remember there was a meme about "how to center a div", and holy lord do I ever understand that well now. Suffice to say, after accomplishing that monumental task I fell into reading my old blog posts to see what I was talking about, and lo and behold, my original 'moving to linux' post is woefully out of date regarding my journey with linux. So in order to stave off the impassionate dreg that is writing more HTML/CSS, I figured why not get a quick update on that information installed.
So in the original post, 'moving to linux', I explicitly stated that of all the distributions I was learning about, "Arch wasn't in consideration and frankly still isn't." I go on to talk about how I wound up settling with Kubuntu, "Kubuntu is where I now write this post." Well in retrospect - Kubuntu didn't last very long for me at all. Very quickly into my time with Kubuntu I was burdened by system slowdowns that were affecting simple system tasks - for example, my mouse cursor would often stutter as it moved across the screen. I thought maybe this was a KDE thing, since Ubuntu was performant and never had these sorts of issues. Due to the performance issues, I decided to explore for greener pastures and continued my distro hopping journey.
I've been running linux as my daily driver operating system for, presumably, around 358 days. At least, that's what I have my fastfetch script telling me. I fed it an arbitrary date based on a best-guess about when I made the switch many moons ago so let's just assume that's accurate. It didn't actually take me long distro hopping to find my potential forever-home, so I don't really remember too much about the distro-hopping journey, where all I went, and what my experience was like. What I do remember is what was written in that old post: I tried bazzite, didn't like how atomic it was, moved to Kubuntu, didn't like how unperformant it was, and then at some point between Kubuntu and where I am today I do recall trying vanilla Debian. I certainly expected Debian to be free of the performance issues I was begrudging, but to my dismay - out of the box I was dealing with a sluggish machine. Perhaps that case was driver dependent, I don't know.. What I do know is that I didn't feel like fussing around with a relatively robust system and trying to make it work - I preferred the next alternative since I was distro-hopping anyways. So I installed Arch Linux.
So I grabbed an iso for arch linux and committed to figuring out how to get it installed. If I was going to even consider going through the hassle of trying to correct performance issues in other distro's, it would probably help to understand some of the underlying fundamentals of the system that I would surely get to know through the arch install process - right? Well that expectation was subverted as well! (Anyone keeping count of how often my linux expectations get subverted?) To my delight (or dismay, depending how you look at it,) I was easily able to enter the command `archinstall` into the prompt when the iso booted up and that took me to a relatively nice little shell interface where I was able to navigate around and check options to decide how to configure my system. Foregoing a lot of the details (as many of the details are lost to memory,) I went through this install process a handful of times over the next few days.
The first time I installed I hadn't separated my root from my home directory, which I quickly learned about afterwards so I went for a clean reinstall with separated partitions (this remains one of the best decisions I have made since starting to use linux.) Perhaps then I realized when I installed I chose some package I actually didn't want so I went back and redid the process, and perhaps another time I accidentally bricked the system with an incomplete update or something and wound up reinstalling - again, I'm fuzzy on the details. All told I wound up reinstalling a handful of times and wound up with a system I felt fairly confident with after the first few days of mucking around.
If you're going to learn anything from my suffering here, the key takeaway is 100% absolutely to partition your disk so that the root directory, boot directory, and home directory are on separate partitions. Having home separate from root makes it *incredibly easy* to: reinstall the system, change to different distros, etc. Depending on what operating systems you're trying to dual-boot, in many cases, you can use your one home directory as the de facto home for all of your systems, maintaining configuration and personal directories across installs. Accidentally bricked your system? Ain't' no thang but a chicken wang with a separate /home/! During reinstall, just make sure to flag your /home/ partition as /home/ and DO NOT MARK it for reformatting. Now when the install is finished and you make it to the login screen, your same old user will still be there, and when you log in, all of your configuration will remain exactly how you left it! It's almost like you never bricked your system in the first place!
In the early days of running arch linux, despite having cheated my way through install using the install script, I still had the burning desire to learn as much as I could about the core system. How can I hack it? What is it capable of that I'm not aware of? Things of that nature. So I spent a lot of time poking around in system files, doing research on bash and the linux filesystem, installing and playing around with different packages, that sort of thing. I was very quickly attracted to bash scripting, since I realized I could write scripts to perform common functions on the system. Notably, I wrote a script that backs up critical files to my cloud server every time I shut the system down, and another script which runs on boot that validates some essential services were started and are running correctly, and lets me know in case there are any issues.
During all of this exploration, I stumbled across fastfetch and oh-my-posh. oh-my-posh lets you customize your terminal prompt, among other modifications inside of your terminal to make it prettier and feel a bit more modern. Then I started to fall into the rabbit hole of ricing, and one of the first things I wanted to do for my rice was make my own fastfetch theme. I learned that you can execute bash and pass the output to fastfetch for use in the output directly, as well as using nerd-fonts to put pretty icons on things. The two most important elements I added to my fastfetch (in my opinion) were: 1. A readout of the age of my current system, and 2. A readout of the age of my existence using linux as a daily driver (I mentioned this earlier!) The way I read my system age is with this handy little snippit of bash: "birth_install=$(stat -c %W /); current=$(date +%s); days_difference=$(( (current - birth_install) / 86400 )); echo $days_difference days" . birth_install is basically the date that my root partition was created. This metadata is protected, and is very difficult to change even as a root user, so it seemed like the perfect candidate!
This readout of my systems age became like a badge of honor for me. My system rice could disappear in a blink (dozens of hours of config) and I would be fine as long as my system age remained in tact. When I started my travels to Asia, I sold my PC to my little brother, and he wanted Windows installed on it - not my Arch Linux. I CLONED the hard drive from that machine to the disk on my laptop, retaining all of my config from one system to the other. Luckily with Arch, getting the laptop up and running was an absolute breeze, just requiring a quick swap-out of graphics drivers and everything else was working exactly how I remembered it from my PC. At one point prior to this I had accidentally botched a system upgrade, which could have spelled doom for my system age, but instead of reinstalling like I might have in the past, I took the time to boot into a livedisk, mount the partition, and manually correct the mistakes I had made. While I was in Japan I repeated the same mistake again, partial upgrade, bricking the system up entirely, and again went through the process using a friends laptop to install a live disk onto my camera's SD card, booting in, mounting the partition, and restoring to an ancient rsync file I had lying around during one very long all-nighter in my cozy hostel.
Having learned from my most recent failure, I began keeping more up-to-date rsync files, always creating a new one any time I did any updates. Being the intelligent individual I am, and having not run into any critical issues with this workflow in the past, I kept these rsync files inside of my user /home/ directory - safely isolated away from the system partition. (foreshadowing...) Shortly after that event, I hopped on a plane to Bangkok, and began a new chapter in my travel journey. One day while I was creating a new permanent livedisk, just in case I ever bricked my system again as I had no friends here to borrow laptops from any more, and writing an SD card is less than an ideal solution, I was struggling to get it to write properly. During the process I decided to take a quick detour and make sure I had all of the iso's saved to my long term backup drive, a 2TB external drive containing all of my important file backups from the last 10-15 years. I concluded my storage procedure, and went back to trying to write my new usb-key, and in my haste I issued a command to my terminal that will forever haunt my dreams. I sent a reformat and write operation to the "first loaded USB storage device" (basically) which had since changed from the last time I tried this operation, since previously, I had only the small usb-key plugged in, but since my last reboot, I had added my long term backup drive. I'm sure you see where this is going... 15 years of file backups, GONE. Just like that. All of my art, photos, music, writing, basically everything and anything that I actually gave enough of a fuck about to back up, and then some, was gone.
Devestated by my mistake, I finished setting up my live boot disk as intended, since that was still essential. Then I proceeded to reformat my backup drive and start trying to restore as much of it as I could. Unfortunately, since I had issued a wipe+write command, unfortunately the process had already started to overwrite existing data and corrupted it too heavily for me to be willing to continue the recovery process. With limited exceptions, all of those files can still be recovered by going through old web accounts anyways, I'll get pretty much everything back with the exception of and a handful of really old family photos - a loss I can abide. Fortunately, I still had copies of all of my travel photos and videos stored locally. I decided I'd take a break from the computer, sleep for the night, take a few days to explore the city, and then get back to refilling my backup drive another night.
Three days later, I have explored a large part of Bangkok, been on a date with a local girl, and I'm feeling motivated in the morning to get my backups all fixed up and get myself back essentially to where I was before (minus a few family photos.) So I pull up to the desk, open up the laptop cover, and hit the power button. The fans whirr to life, my UEFI screen flashes and GRUB greets me warmly. I hit enter to start booting into Arch, and instead of seeing a big flow of output as the system starts to boot I just see one line, in clinical white text:
Device [UUID] cannot be read.
Hm, that's strange, I was able to boot just fine a few days ago - the last time I used the system. Maybe in my haste I managed to mess up some device declaration somewhere, or somehow my GRUB configuration was tampered with? Alright, good thing I literally JUST made a livedisk - this is exactly the sort of situation I need that thing for. I pop in my fresh live disk, boot into it, and go to mount my root partition so I can start troubleshooting. But, hang on a minute? Where is it? I can't see it anywhere. I know for a fact there is an NVMe SSD inside of this machine, I have used it to boot from for like 5 years now, so where is it?
My internal SSD controller had died. Now on top of having lost my long term backup, I had now lost all of the files I had generated since the start of my travels in Asia. 100% of the photos, 100% of the videos, GONE. My badge of honor, the long standing system that I had kept alive effectively since the very first time I installed it? GONE... And more than that - the last surviving remnant of my original arch linux system, that fateful and reliable rsync backup I had relied on many times in the past - GONE.
Luckily I am in a metropolis, so I was able to walk to a nearby mall and have them confirm that the drive controller was in fact dead. I was also able to procure a new SSD for my system.
I got back to my apartment, installed the new SSD, and got to work using my conveniently brand new live disk to reinstall Arch. "Of course the thing to finally kill my system would be a hardware failure.." of all things, I thought to myself. Completely out of my control, but destroying something I held extremely dear for nearly a year at that point. I got the new system installed, cloned my dotfiles from github (my dotfiles repo needs some serious work, it only has the most essential of my config,) and got to work reconfiguring my system. I wept on discord with a long standing e-friend of mine about the death of the original system.
Having experienced the untimely death of literally 100% of my data storage, half of that being my own damn fault (or 2/3rds if you want to go by capacity.) I started to internalize some fairly important data integrity rules. Notably, earlier I mentioned that my rsync system backups were being stored locally, on the very same disk that they were meant to protect. This worked totally fine as long as the drive remained intact, but a driver failure? There is no going back from that, so as a rule now I have my rsync backups stored on my external backup disk. The backups are quite a bit slower as a result, but they are definitely significantly more secure. If I had simply been keeping my rsync's on that in the first place (and not wiped it myself days prior) then had my controller died I could have actually just restored the original system exactly as it was and this whole section about a new age wouldn't have a reason to exist. Ah well.
Why do I use Arch?
Arch is a rolling release distribution meaning I always have access to the latest and greatest tools and software. It's very open and configurable. The nature of these two factors means it's notoriously breakable. I want to be able to tweak with things if I can, so this makes the absolute most sense to me since there is nothing in Arch that is going to ever tell me "you can't do that."
What is my environment?
If it wasn't clear before, I use KDE Plasma as my desktop environment, with Wayland compositing. I love KDE because out of the box it has a win-like feel plus a lot of the sleek elegant features you might be familiar with from OSX. It's extremely customizable, and I have it configured now to be extremely minimal - normies might guess it's some kind of OSX, but after playing with it for a few seconds would quickly be confused by what they're working with - but it works perfectly for me!
But hyprland? Why no? huh?
Hyprland is a massive paradigm shift from floating window managers. I can very clearly see the appeal. Back when I had the original system I had hyprland installed and was working on configs for it here and there when I felt like it, and I enjoyed using it for general computing stuff, and writing code. Once I get a new desktop PC I will reinstall hyprland and continue to mess with it here and there. The biggest issue I have with hyprland is gaming. Since it's tiling, arbitrary window resizing isn't possible out of the box. You can achieve the desired dimensions for a floating window by surrounding it with other programs and resizing things to suit, and I'm like 99.9% sure there's a way to get basically exactly what I'm looking for with some configuration, but again, I just need to take the time to learn all that and get things set up the way I like them before I can consider it as my daily driver.
I can haz ur configs?
Short answer: no. Long answer: yes. Eventually there will be a part of this website explicitly dedicated to my life on linux, and anything that I think might be useful or informative for the public will be hosted there.
If you're frustrated with windows invading your privacy, force feeding you advertisements, or sucking up your system performance for no discernable benefit at the user level. You have nothing to fear with linux. I took possibly one of the absolute hardest routes into linux that you can imagine, perhaps second only to gentoo, or broadening our lens a bit, openBSD. I do have a technical background that helped me on this journey, but without any real background with linux I managed to keep one of the most notoriously 'breakable' systems intact for nearly an entire year, and if we agree that a hardware failure doesn't count as my fault - then it's still technically alive and well 358 days later, SO CLOSE to a year!
If you're curious about linux but not sure where to start, just install linux mint, make sure to check "separate /home partition" during setup, and completely forget about your life with windows. You'll thank yourself later.
But wait, Maya, I heard that you can't do X on linux?
Okay okay, here's the things you can't do with linux, if you're really committed to any of these specific things, I would recommend DUAL BOOTING, have one partition or disk on your machine for windows, and the other be linux.
p.s. regarding gaming on linux, I have found that in fact not only are games more performant on linux (99% of the time) but we actually get even better support for old games that you can't even play on windows any more. A key example for me is Sim Tower, and Sim Copter. Good friggin luck getting either of those to run on your windows 11 machine.
p.p.s. I still maintain a windows dualboot explicitly for MapleStory, Battlefield, and Escape from Tarkov. EFT linux support is burgeoning, and maybe really good now that we have the steam release, and now that I am a lot less reliant on Tarkov Companion to guide my gameplay I'll probably move my EFT gaming to linux as well for that very desirable FPS boost.
In closing, if you're planning to dual-boot windows with linux for any of the above reasons, or whatever other reason you might have... I would strongly recommend starting out by buying a completely separate hard drive specifically for linux. Start by installing linux there, using that as your primary boot drive. Once you have your feet under you with linux for a day or two, learn how to set up THAT drives boot sector to be able to boot into windows as well so that you don't have to use your UEFI to toggle between drives depending on where you want to boot to. Once you have successfully built a GRUB on your linux drive that allows you to boot into both windows, and linux, then you're ready to commit to linux as your primary architecture. At this point you can decide how exactly you want your system architecture to look like, whether that's linux+windows on one hard drive, or keeping them separate across multiple disks like you currently have, or whatever your heart desires. Ultimately, you'll want linux to be on your fastest drive in the system. Now don't be too sad that you bought another hard drive for nothing - not only did you get to experiment with a learn linux in a safe way, but now you have a bunch of extra storage that you can use for anything you want. An example architecture might look like:
Disk 1 (fastest disk): Partition 1 (EXT4 ~500MB): /boot/, Parition 2 (EXT 4 ~50GB-100GB): / (linux root), Partition 3 (EXT 4 ~All Remaining space): /home/, Partition 4 (NTFS ~100GB - ~200GB depending how much software you need): Windows, Disk 2: Partition 1 (exFAT, All space) Storage for any and all files shared between Windows and Linux.