Back in April, right off the end of 31 consecutive days of streaming, I decided that there was no better time than the present to do my somewhat biennial activity of reinstalling Windows. I usually like to reinstall Windows every once in awhile to flush out any of the junk that's persisted between updates - and just clean up the system.

In the times when I do this, I also like see what the lay of the land is over on Linux. Now, I'm admittedly not necessarily "new" to Linux as an operating system. Back when I was a kid, I tried ZorinOS on a pretty old Lenovo laptop - like proper 32-bit i386 era old. And as I've become more technically inclined and dabbled into the world of homelabbing, I've had my fair share of Linux installs on hardware. Even on desktop computers. I still wouldn't consider myself an expert, nor do I think I ever will.

I might be stuck here...

Unfortunately, things didn't go to a great start. After around 1 to 2 minutes just playing around in the live USB environments of these distros, my system would just completely freeze and fully lock up. I couldn't switch to a TTY, the clock didn't move, it would be completely frozen. The weirdest part is that it even occurred in the Windows installer too! As it currently stood, I couldn't even install anything. By the time the first freeze occurred, I was already in the process of installing Bazzite, so it had wiped my Windows install but hadn't yet properly installed Bazzite.

I eventually managed to get CachyOS installed, but the issue persisted. After a lot, and I mean A LOT of digging, I eventually found out that it was an issue with C-states. In order to get the problem to stop, I had to enter my computer's BIOS and disable global C-State control. But even then, I still could not get the Windows installer to work.

So that meant that I was literally stuck on and forced into using Linux. Now, I did eventually end up fixing the issue that almost definitely stemmed from Windows. And the dumbest thing is that I had to install Windows on a completely different machine, and transfer the drive back into my desktop. But that resolved the issue and I was able to re-enable the global C-State control setting in my BIOS.

But despite having a Windows install - I haven't touched it a single time in the couple of months since I've been on Linux. Truthfully, it's in a much better state than I really expected. Which is shocking considering that I use an NVIDIA graphics card. So having that giant preamble out of the way, here's my Linux setup and some of the useful things I learned along the way!

So what does mine look like?

While I started out by using KDE, I eventually took the next step and properly setup a tiling window manager. And unsurprisingly, I decided to use Hyprland alongside Noctalia for it's simplicity in configuration and design cohesiveness.

You see, Hyprland itself is purely responsible for displaying windows and orchestrating them to be where they need to be, whereas Noctalia acts as a supporting shell for things like displaying a wallpaper, status bar, launching apps, and other visual tools added on top of Hyprland as a window manager.

One of the things that makes Noctalia specifically cool, is that it has a system of both built-in and community made templates for styling all of your apps so that they all have the exact same color-scheme and design language based on the wallpaper you set. This allows for my web browser, terminal, file manager, and many other supported apps to all fit into the same aesthetic based on my current wallpaper. Alongside the support for many plugins to help customize the shell to fit my needs.

As for Hyprland, my setup is fairly straightforward. My primary monitor has multiple workspaces that have my full attention that I can switch between, while my side monitors on the left and right only have one workspace. It essentially let's me pin windows to a side monitor, while still having workspaces on my main monitor. You can view my proper configs and keybindings on GitHub, but it works something like this:

Cool software you might want to use.

Throughout my journey through Linux, I've discovered a bunch of different projects of varying polish that have made the transition much easier than I ever could've imagined. So, I wanted to compile a list of some of the software you might also be interested in including in your own setup.

Vicinae.

One of the pieces of software that I used the most on Windows before I switched, was Raycast. I was a member of their closed beta test shortly before it moved into an open beta. And let me tell you, it was an absolute game changer. One of my biggest gripes with Windows is how atrocious searching for anything is. Like, no - I do not want to search Bing. I would open the browser to do that. One of the game changers was it's ability to override any global hotkey. Really, anything. You could remap the Windows key itself if you wanted to.

But that brings me to Vicinae, which is an entirely open-sourced Raycast alternative that also tries to be compatible with some of the existing plugins on Raycast. It allows me to have a simple interface to quickly launch apps, manage clipboard history, open an emoji picker, view icons from Iconify, and you can assign each of them to a hotkey.

Seriously, I cannot give this software enough praise. It has stayed with me as I've switched between both KDE and Hyprland, and is an indispensable part of my workflow.

Filelight.

This is a fairly interesting one that I wouldn't normally think about, but I've found to be very useful. Filelight is an app that let's you visually see what folders and files are taking up the most space on your computer.

As a developer, I often find myself having hundreds of megabytes, if not gigabytes worth of left-over dependencies and old caches from past package installs that slowly eat away at my drive space. Now I'm not going to pretend that I'm super cramped on drive space, but it helps to identify what is taking up the space and where it can be found.

Openwave and Opendeck.

It should come as no surprise given my goodbye to streaming that I used to stream fairly often on Twitch. Over time, I accumulated a lot of hardware to help streamline the process and make it easier for me to just focus on being on camera. And truth be told, some of the easiest gear to setup and use is Elgato's line of products - even if I find their software to be unreliable piles of shit.

Now, I own multiple different pieces of Elgato equipment, most notably an original Stream Deck, Stream Deck+, and an Elgato Wave:3 microphone. But Elgato doesn't support Linux in any official capacity. So I had to turn to see if the community had something, and they absolutely did.

Let's start with Openwave, as this is a fairly recent addition to my setup. This is a piece of software designed to help stabilize and provide the same software experience as the official Wave Link software. I cannot understate how important this software is, without it my microphone is near unusable on Linux due to it's behaviors. But this not only makes it a stable experience, but it also adds the exact same simple-to-use audio-routing experience that the official software includes.

And this pairs nicely with Opendeck. Which is a piece of software that enables the use of the Stream Deck line of products on Linux. It even has some compatibility with Stream Deck plugins via Wine. This allows me to mute or deafen on Discord, control my Logitech Litra Glow stream light, control OBS, or even control Openwave itself with this plugin that you can add.

What I would share with my knowledge now.

  1. 1.

    My biggest hot take regarding Linux is that you should only switch to it if you really need to. Seriously. I know that a lot of the territory that comes with switching to Linux is people looking to run away from the walled gardens and slop-factories of Microsoft or Apple.

    But truth be told,
    you should just use what works for you. If your work requires a piece of software that isn't available on Linux; you probably shouldn't switch. While there are ways to get incompatible software working through projects like Wine or Winboat, I can guarantee you will run into issues trying to use these workarounds. However, if all of your work is done within a web browser, you could absolutely switch to practically any Linux distro and have a fantastic time.

  2. 2.

    Which brings me to another point; you should stick to a distro that most people are using. One of the greatest benefits and problems with Linux is how open it is. That means that anybody can spin up a distribution, but that also leads to a choice paralysis of trying to find the best one for you. Don't let the Redditors and neck-beards try to tell you that you made the incorrect choice, use the popular distros.

    Just like any other operating system, you will inevitably run into an issue where you'll need to do some searching to try and resolve. In those cases, it will make your experience a million times easier if you're using a common distro that everybody else is using as it greatly increases your chances of finding someone that's ran into your exact issue before.

  3. 3.

    And finally, you will absolutely need to learn how to use the terminal. It's inevitable. Just like how you will inevitably run into an issue, you will likely run into a scenario where to fix something or to install something, you will need to use the terminal to do it. And truth be told, it's not something to be scared of, it's just operating your computer with commands instead of a GUI.

    I would recommend learning a lot of common terminal commands like navigating your filesystem, managing files, commands such as
    ls, cd, cp, mv, touch, etc.