[Linux] Adam_Conway:
Switching to Linux after many years of using Windows can be a daunting task, but nowadays, it’s easier than ever. I just finished up four years of a computer science degree, for most of which I would switch between Windows and Linux. Windows was primarily my gaming operating system (as anti-cheat clients for games like Counter-Strike require Windows), but for anything else, Ubuntu was my go-to operating system. Prior to starting my degree, I was almost completely a die-hard Windows user (admittedly with experience in Linux server administration) and I would scoff at the thought of having Linux installed on my main machine.

However, it quickly became apparent that Linux in recent years is a whole lot easier than it once was, and the suite of applications you can install has grown dramatically. Gone are the days of needing to compile your own applications, for example, as there are now countless application repositories that you can access. If you think about it, even ChromeOS is a Linux derivative, which has more than enough software support for many people.

My personal Linux experience has basically always been with Ubuntu, but it has clearly improved across the board with package managers coming bundled with many of the popular distributions. Being a hardcore Windows user, I knew my way around a computer and the little that I did need to use the command line for I felt comfortable in using. Pretty much all your favorite applications are on Linux, and the ones that aren’t often have viable alternatives.

For the purposes of this article, I am going to be documenting my switch from Windows to Ubuntu. Ubuntu is a Debian-based Linux distribution and uses the Synaptic package manager, which is a GUI for the Advanced Package Tool, or APT. It also has built-in Snap support. The beauty of using Linux is the terminal, and in particular, how much control it hands over to the user.

Note: forcing yourself to get used to Linux isn’t something that you need to do, and it will come naturally over time. If you’re like me, you’ve used Windows machines all your life, and it won’t be easy to immediately transition over. Your computer is your computer, and making sure you can still do everything that you need to do is paramount.

Linux package managers​

The biggest learning curve when switching from Windows to Linux will be learning how to use package manager. In most cases, the various Linux package managers all act and feel the same, and switching from one to another is easy once you’ve learned how to use one of them.

With Ubuntu, you can use the Synaptic package manager, or you can do what I do and make use of APT via the terminal. Applications can be downloaded and installed online as you would on a Windows machine in most cases, and the ones that require a bit more work often have instructions on how to use the terminal to install them.

Personally, I switched to just using the terminal and the apt-get command for nearly all cases.

Build your own​

If you’re the kind of person to want to have complete control over their operating system (which likely explains why you’re considering switching from Windows), Arch Linux is an operating system that you basically will need to end up building yourself. It’s a pretty lengthy install process, but a great way to get to grips with Linux and how the terminal works, while also ensuring you setup and install everything that you need and nothing more. Depending on the device you’re using, it’s possible you may need to engage in a lengthy setup anyway in some way or another.

For me, installing Ubuntu on the Huawei MateBook 14 2020 required building the latest version of the Linux kernel in order to ensure complete compatibility, as Ubuntu at the time did not support the Ryzen 4xxx series of chipsets. Your mileage will vary on this front, as it’s entirely possible that your machine will work right out of the box with Ubuntu, once all drivers are set up.

Install Arch Linux

Software that I use​

The biggest sign that Linux has come a long way is that pretty much every common application that you would use is now present on the platform. I play a lot of games, I listen to a lot of music, and I do some development. These are the three core necessities I had when switching, and nearly all of them have been met.

Gaming​

View attachment 5334427

Gaming on Linux is by far the most underdeveloped facet of the ecosystem, and it’s a mixture of developer choices and a history of poor graphics drivers that have left Linux in the current situation that it’s in. NVIDIA refused to contribute open-source drivers, and AMD had an open-source Radeon driver that was not as good as the proprietary alternative dubbed Catalyst. The only open-source NVIDIA alternative was Nouveau, which was developed unofficially by reverse engineering official NVIDIA drivers. These issues were exacerbated by developers not even building games for Linux, though that has changed more in recent years with the advent of the Steam PC (which runs Linux) and a growing number of Linux users on Steam.

There are a lot of AAA titles that don’t work on Linux, and likely won’t ever. All hope is not lost though, as a combination of Proton and Steam Play makes most Windows-only games at least compatible with Linux, even if they may not work perfectly. Proton is a fork of WINE, a compatibility layer for Windows applications to run on Linux, and it has a number of optimizations primarily focused on gaming to ensure compatibility across operating systems.

While an argument can be made that Proton’s existence encourages developers to not bother with implementing proper Linux support, it’s better than the alternative of games not being playable at all. Ultimately, gaming is no longer next to impossible on Linux machines, which puts it far ahead of where it once was. The biggest issue for me switching entirely has been that a lot of anti-cheat software does not run on Linux, and the two anti-cheat clients that I use for Counter-Strike are Windows-only. Aside from that, there’s no gaming incompatibility stopping me from using Linux all of the time.

Many die-hard Linux users will say not to support WIndows-only games, as that will force developers to release games on Linux. While that’s technically true, only roughly 1% of gamers on Steam are using Linux. Is the number growing? Yes. Is it still low? Also yes. The truth is that there isn’t enough interest for developers to want to care about Linux if it’s not easy for them to do so, and rather than alienating people from the Linux community just because they want to play Windows games, we should be welcoming them with open arms and showing them how to get around what may be the one deterrent they face.

If you’re going to ask someone to switch to an operating system that they don’t know and need to learn, and they need to no longer play their favorite games, that’s a pretty tall order for a lot of people.

Download Steam

Development​

If anything, development on Linux is easier than on Windows. I use virtualization software in the form of Docker and VirtualBox, both of which are much easier to set up and use on Linux. Docker itself can be finicky to use, whereas the terminal in Ubuntu makes managing and switching between my containers a breeze. The environment variables are also much quicker to manage (in my opinion), meaning that it is easier to set up file paths for SDKs and commonly used project management tools like Maven.

I personally use IntelliJ as my IDE for Java, and PyCharm as my IDE for Python. Setting up LaTeX for document creation and editing was also much easier than on Windows, particularly when attempting to install all of the LaTeX packages that I use for my document templates. LaTeX is a collection of independent tools, and the LaTeX distribution that I use is TeX Live.

Download Docker

Download VirtualBox

Download IntelliJ

Download PyCharm

Download LaTeX

Photo editing​

Sadly, Adobe hasn’t released any of its tools officially on Linux. There are two ways to get the likes of Photoshop working on Linux - WINE and PlayOnLinux, or VirtualBox. As already mentioned, virtualization technologies work well on Linux, and it shouldn’t be a problem to get working. However, it’s likely that performance will suffer if running it in a full-fledged Windows VM, particularly if your computer isn’t powerful. If you don’t need all of the advanced features of Photoshop, then you can switch to using GIMP for photo editing, as it does a lot of what Photoshop does.

Download GIMP

Video editing software​

Most major video editors aren’t on Linux, and therefore, it’s likely you’re going to need to learn to use a new video editing software. I use MAGIX Vegas 16 for my video editing, and others might not use Adobe Premiere. If you don’t mind learning a new video editor, then the powerful DaVinci Resolve might be exactly what you need to transition over to Linux. What’s more, DaVinci Resolve is free, so you can try it out without needing to break the bank. Like anything, there’s a learning curve, but I found that having had experience with many different editors, I was able to pick it up fairly quickly.

Download DaVinci Resolve