Switching to Linux: My Experience

An overview of what distribution I chose, my experience, and why I’m staying.

Background

The first time I used Linux was at the age of 13 with a 32 bit build of Linux Mint on my Gateway netbook. Suffice to say, Linux in 2014 didn’t bode too well with my young mind, and I quickly switched back to Windows.

That doesn’t mean that I was done with Linux though, as I would grow to become extremely familiar with it over years of tinkering with Raspberry Pi projects, embedded device reverse engineering, and ultimately server deployment and development. However, I never saw it fit to be my primary desktop environment and continued happily using Windows.

That changed this year however. The development of technologies like Valve’s Steam Proton game compatibility layer and the maturity of modern desktop environments have put Linux on the map for many, including me.

I finally decided to pull the trigger when I got deeper into my Infiniti InTouch infotainment system reverse engineering project, and found myself needing more access to Linux filesystems and tools.

My Experience

My switch to Linux had a few basic requirements:

  • Dual Boot Compatibility with Windows 11
  • Ease of use & a comfortable desktop environment experience
  • Good app support

Picking a Linux Distribution

My first step was picking a distro, and picking a distribution family was a no-brainer. Ubuntu-based distributions tick every single box. Ubuntu is dual-boot compatible with Windows 11 secure boot, has an established app ecosystem, is easy to use, and is the most popular and supported distribution. There are other options (like those brave enough to embark on the Arch journey) but Ubuntu was the most obvious family choice.

Working off that I decided upon Kubuntu, a Ubuntu-based distribution with a KDE desktop environment. I did this because I personally prefer the KDE Plasma environment over GNOME as it is much more configurable and more similar to Windows.

Installation & Configuration

Installation was an absolute breeze. I installed Kubuntu to an SSD using the provided live image installer, and used the built in GRUB instance to pick which OS to boot to. My devices all worked out of the box. The only confusing part was enrolling keys after installing the NVIDIA (proprietary) drivers.

Bootloader Configuration

Example image of the GRUB Distro theme that I use

I ended up using the Distro GRUB theme which made GRUB easy to look at and allowed me to have a clean boot screen. I also used GRUB customizer to hide entries under an advanced folder, and configure GRUB to autoboot the previous OS after 5 seconds.

Installing Apps

Installing my applications was extremely straightforward. There were three major types of app install methods I used.

  • .deb Applications: Apps like Chrome, Steam, and Zoom provide .deb files which can be installed with one click. These work great and I was happy with them.
  • Snap Applications: Applications like Spotify, VSCode, Bitwarden, and many other popular applications use a system called snap, which makes installation extremely easy through the Software Center. The only downside is that these applications are “containerized” which means I had to use other methods for apps like the Arduino IDE which I have custom patches for (like Teensyduino)
  • .AppImage Applications: App Images alone are actually the most simple methods of distributing apps, however I made it more complicated out of a matter of personal preference. Many apps like SavvyCAN and BalenaEtcher are distributed this way.

    App Images alone are actually very similar to macOS applications, in that they contain everything needed in one file. However much like macOS, I prefer to keep these in a special folder as opposed to Documents or the Desktop. To do this, I created a folder in /opt for each application with the .AppImage and an icon. I then chmod’d the executable and added a pretty application entry with kmenuedit.

Using Linux

So far, my experience has been very nice. Google Chrome works as expected, Steam Proton runs all of the games I have tried, and I love the customization of everything. I have yet to run into any major problems that weren’t fixed with a simple Google search.

  • The KDE Plasma taskbar is objectively better than Windows in my opinion. Windows 11 removed seconds in the clock, while I can change my start button icon in KDE.
  • Widgets like Now Playing, Clipboard History, Volume Adjustment, and more are all leaps and bounds better than Windows and it’s amalgamation of older looking UI and new unresponsive UI.
  • Having a Linux shell available without the WSL layer is nice, since things like USB devices didn’t work with WSL v2. (even USBIP didn’t work for mass storage)

Why I’m Staying

I should first note a couple of things.

  • First, Linux isn’t for everybody yet. I have had to step in and do small things that the average user can’t be expected to do.
  • Second, I still have Windows 11 dual booted. I still need to use applications like Adobe Creative Cloud, game support isn’t perfect, I still do some development in Visual Studio (not VSCode), and many applications simply don’t exist on Linux.

Despite these, I am perfectly happy with it. For daily tasks and most development, it works extremely well for me, and I will only be using Windows when I absolutely need to moving forward.