INCREDIBLY WIP PAGE I'M LITERALLY PUTTING THIS SHIT IN HERE AS I WRITE IT. REMINDER TO SELF TO MAKE A TABLE OF CONTENTS LATER


Very much subjective page of what I think may be useful information for anyone freshly interested in Linux and / or tired of Windows. More desktop-oriented, I've only been using Linux on my main box for a bit over a year and a half and am very much on a hobby-level (highly interested) relationship with it. You don't necessarily need to be intent on switching your whole operating system to Linux to get something out of this, just some curiosity on what it has to offer. That said, this document was mainly written with those who want to experiment and / or swap in mind. If you want professional and well-informed or a specific tutorial, this isn't it. Ask your search engine if that's what you're looking for. With all that out of the way... Uhh, you get to read more disclaimers. Have fun.

Basic Disclaimers

So here's the thing: Linux ain't for everyone. Some folks just don't like it. All sorts of reasons. If you really give it a good effort, try out multiple different distros that fit your use case, and you still don't care for what you find? That's fine. No one's gonna force you. Try it another time if the interest ever arises again, and just keep using what you're used to if it doesn't.
Take your time, and read the instructions, especially if you're gonna try something that seems possibly risky (like DIY package management, or running random commands like "sudo rm -rf" ⇦ this is culturally equivalent to someone telling you to delete System32; if run without changing anything it'll wipe your entire home directory). There are some safeguards in place, but no developer can predict every case where a hasty user might do something stupid. Know what you're doing, or at least try to learn the basic concepts. Try things on a virtual machine or other test subject before applying it to your personal computer, if possible. VirtualBox and old laptops are your friends for this - though note that some details are always going to differ if you're not on an exact duplicate of the main machine.
Lastly: I promise you it's not as hard as it might seem from the beginning. I'm not competent in any type of coding, I never took a math class in high school past geometry, I don't know jack shit in general and in my year and a half of use and fucking around with Linux - with care - I haven't broken anything truly important yet. If my dumb ass can do it, you probably can too. Just be mindful of what you're doing, and take things one step at a time.

A few questions and things to consider.

  • What do you use your computer for? Is it functionally just a desktop and a browser, a workstation, or a place to play games?
  • Do all of your needed programs work or have a native version? If not, are you willing to look into alternatives?
  • Are all of your chosen programs compatible and available with a given distro?
  • How much do you want to have pre-installed and ready on your system?
  • Do you care whether you can use programs with non-free licenses?
  • Do you prefer to do everything through graphical interfaces, or are you ok with touching the command line every so often?
  • How much package management do you want to do yourself?
  • What do you want your desktop to look and feel like?

Important Bits of Terminology [and my absolutely not technically correct but functional enough layman's explanation of why it's important]

Linux Distribution (Distro) - a different flavor of Linux, generally put together by a community of volunteers or sometimes a company. This is what could be considered your operating system - though they're all based off the Linux kernel at the core (the kernel generally isn't going to be relevant to you for now, don't worry about it) -- different distros have varying purposes, functions, and access to packages. There isn't really a "main" Linux distro, so much as several more popular ones and hundreds less so.
Desktop Environment (DE) - the graphical interface that shapes the average interaction experience with a home computer. Manages your different windows, notifications, taskbar, mouse pointer, and provides some other services necessary for basic everyday functionality.
Package - file containing the information for a program or library, and links to the dependencies (other packages) required to build it.
Package Manager - handles updates, installing, removing packages, etc... The thing that handles dependencies so you don't have to hunt them down or fuss with keeping different versions of packages around for the various programs that may need conflicting versions. Makes your life a hell of a lot easier.
Repository (Repo) - database of available packages for a given distro. May be separated into different categories like free and nonfree -- depending on your distro, manual intervention may be required to utilize the packages of non-main repos. There's usually both a searchable website and a dedicated package manager command to find specific packages if you're not using a GUI frontend for your package manager.

Useful Resources

  • Distrochooser - gives some solid suggestions for places to start when you're looking to experiment with various distros.
  • Distrowatch - useful database with more specific data and a wide array of entries. Has reviews if that matters to you.
  • Arch Wiki - not everyone is going to want to use Arch, but the extensive documentation here can be useful to anyone with the eye to replace irrelevant details with those of their own system.
  • Your Search Engine - I can just about guarantee if you're running into a problem or are confused by something with Linux, you're not the only one who's encountered it. Folks have written tutorials and articles for just about everything, but it's up to your discretion on what sources you trust.

Program Compatibility

The most important part before you start is to really take stock of which programs you need - do you need it for work? Is it something you use frequently? Do you just want to have it? Start a txt doc and write 'em down. Leave it open for a day or so as you go through your workflow as usual, taking note of what's most vital and adding pieces you might've forgotten to the document. Worth looking through the start menu, and through your download folders for those smaller executables that don't get a start menu shortcut.
The reason I consider this to be such an important step is because if one, or multiple vital programs don't have a native version on Linux, you're going to have a much harder time making the switch to a new operating system. Your one saving grace if there's no port for a program you need is Wine: which is a compatibility layer that mimics the filesystem of windows. For smaller programs, this often works just fine, but the more overhead it needs (something like Photoshop), the less likely it's going to perform well, if at all. If you can't make it work, there are almost always solid alternatives for most general-use type of programs. It's highly subjective how well these will work for you, though. This is very much something that can be a dealbreaker, understandably.

Gaming

Playing games on Linux can also be a challenge, depending on the types of games you prefer to play. Steam's Proton compatibility tool can sometimes do a bit of miracle work, and ProtonDB is the most comprehensive resource on whether a game is functional or busted with it. With the advent of the Steam Deck, game support is absolutely growing and improving significantly, but still - far fewer games have a native Linux version than ordinary programs. If gaming is an incredibly vital part of your computer experience and you just can't get the games you need to work, you may want to look into keeping a separate dedicated Windows partition for this purpose (known as dual-booting); though the need to reboot every time you want to play a particular game can become a large cumulative timesink and overall pain in the ass. Once again, up to you on how worthwhile that is.

All that aside, still interested?

Once you've decided to try Linux (again, preferably in a virtual machine), the two major choices you'll need to make are about your desktop environment (hereafter just going to be referred to as DE) and your distro. Note: no choice you make here has to be final - I think you should always check out other options before coming to a decision and you can always do something different if you find the choice you made earlier doesn't quite hit right anymore. That's the thing with Linux -- if you don't like it, you can change it!

Desktop Environment

The DE is your graphical interface - you can think of it like an interpreter, an overlay that puts your programs into interactable windows, lets you manage them, move them around with the mouse, and so on. This is the thing that makes your computer act like you would expect any average Windows or MacOS desktop to act. Given this is the piece you're actually interacting with on average if you're not doing maintenance, this is equally as (if not more) important to your experience than the system underneath. A few of the most popular - and thus best supported: KDE, GNOME, Xfce, and LXQt. Your distro will usually (though not always) give you the option to pick your preference among several officially supported options, either during the installation or when you download the .iso file.
KDE is a bit more Windows-like, and is my personal pick for the moment due to its strong out-of-the-box customizability and modern feel. I figured out I liked it pretty quickly, so I don't have as much experience with other desktop environments, so I can offer only a basic overview on the following. GNOME offers a more MacOS-like (or kind of mobile-like, maybe?) experience, and can have extensions added to give it more customizability. Akin to KDE, Xfce is more Windows-y, but reminds me more of the UIs of XP through 7. It's generally considered more lightweight and less resource-hungry than the prior two, but if system resources are a major priority I've read LXQt is a good way to go. These are by far not your only options, there are plenty of other DEs available - they're just a few of the bigger ones. Try what sounds compelling to you.

Distros and Package Management

As for your distro - this is where you want to think about what kind of use case you have. Do you want something that comes with a number of programs pre-installed, or do you want a more minimal system as a base to just install the things you want? I'm a part of the latter crowd as I'm pretty picky about what goes on my machine, but when you're just starting out experimenting with a few different distros, I'd recommend trying out one of the more 'complete package' type of distros first to get a feel for what you like before moving onto more minimalist types, if those interest you. Note that you can always remove packages from your system, but pay attention to what depends on them! If you're not mindful, you may delete something important.
The biggest thing your distro will affect is the way you access packages (programs, libraries, and other dependencies needed for those programs to run) and the range of packages available to you. You'll want to decide if you're going to go with all-free / open source licensed software, or if you're ok with proprietary programs. You're more likely to already be using a few nonfree programs, so unless this is really important to you right now, pick a distro which allows you access to nonfree packages (some are enabled automatically, sometimes you'll need to enable it yourself by hand). Whether nonfree programs are allowed is usually listed somewhere on the distro's official site, but if you're not sure, go ahead and look it up.
Another point - do you prefer to have a graphical interface to install your programs, or do you mind using the command line? Mainline distros are pretty ubiquitously going to come with a package manager of some sort, which will handle installing, updating, removing, and otherwise maintaining packages. As such, this will generally be a different experience than Windows, where you often download an executable file or installer off the internet and run it as is - on Linux, you'll almost always go through the package manager to install anything. In the more "ready-to-use" distros, this package manager often has a simple graphical front-end so it can be perused in a manner somewhat reminiscent of an app store. I personally mostly use the command line to manage my system, but I also keep a GUI available for the off occasion when I want to quickly search for a particular package without immediately needing to know what it's called, or to look at dependencies. For most, a GUI frontend does more than enough and they don't need to access the command line.

No Package? No Problem [a little bit of problem sometimes but usually it's fine]

Beyond your repo's included packages, you also have access to Flatpaks, AppImages, and Snaps. These are packages which are self-contained and don't require external dependencies - they're usable on just about any Linux distro. As tradeoff for this compatibility, they tend to have larger filesizes and may be slower than a native application, so it's usually considered better to go with your preferred repo's package if available and functional.
You also have the ability to compile packages for those programs that have the source available (usually as a tar.gz, or "tarball" on GitHub, GitLab, or the like) and aren't already packaged in your distro's repositories. This is a significantly more involved process, but works just as well to get something running on your computer if you have the time, energy, and need.
As a last resort, if you want to try running a Windows executable file, Wine can get you there. Whether it works as intended or not is kind of up to god at that point, but when it works, it works well. Just know that whatever theming you have on the rest of your desktop is not going to be matched by the program in Wine, and it's probably not going to be pretty. You can change the theme but I can tell you from experience it's a huge pain in the ass. All said, I do definitely recommend always having Wine available on-hand even if you don't have any programs that you need it for right now - and Winetricks, which helps with some setup when required and works around some usability issues with the base program.

Distro Recommendations?

Going to depend really, really heavily on what your personal needs are, and I'm going to point you to Distrochooser once again. But in general, just to get a feel for Linux? I would generally recommend Linux Mint or Zorin OS to start. Both are based on the popular distro Ubuntu - which, if you'd only ever heard of one Linux distribution at all, it'd probably be Ubuntu. This means they have a very wide support base, and that they use the APT package manager. They're both well-suited for Windows expats, with Zorin having more of a lean towards easing Windows or Mac users into Linux with its custom DE, and Mint focusing on just being a full classical desktop experience of its own.
I personally started experimenting with Linux in Zorin, and it allowed me to easily familiarize myself with the system and differences before I decided to move onto more complex and interesting (to my personal taste) distros. Linux Mint does exactly what it sets out to do, with the result that I honestly wasn't particularly "wowed" by it, but that's not a bad thing - it's a very user-friendly and serviceable distro, the kind that just works. You could very easily just transition from Windows to one of these distros and stop here, and you'd likely get everything you want out of Linux for the most part.

Something Different?

At this point you're familiar enough with the basics, and if you want to check out a few other distros that aren't Ubuntu-based (meaning, among other things, that you're going to be working with a different package manager than APT, like DNF, pacman, or YaST), you might want to take a look at Fedora, Manjaro, or OpenSUSE. All have large package pools, with Fedora having a focus on free and open-source software and a more similar release model to Ubuntu, with stable versions coming at regular intervals with no major motion in between. Manjaro is a rolling release - meaning your programs are able to be updated as quickly as the new packages are released, with greater access to new features and fixes for various programs. As an Arch-based distro, Manjaro has access to the Arch User Repository (AUR), a massive repository with packages maintained and updated by regular users, which rather than being pre-built, are either hand-built via makepkg or put together with an AUR helper tool like Yay or Paru. OpenSUSE has both a rolling release version (Tumbleweed) and a stable version (Leap).
Note that rolling-release distros are frequently stated to be less stable, but at least anecdotally, I've never had an issue with anything actually catastrophically breaking because of this (it's usually caught and updated with a fix pretty quickly if something of note does ever happen), and I've read in a few places of scenarios where the stable model has lead to people getting stuck for months with a broken package that wasn't caught by the maintainers on the last update. It's up to you on which way you want to go, pros and cons to either. Generally comes down to personal preference, like just about everything else in Linux.
I can only really vouch for Manjaro - as I used it for a little while as a transition into using Arch (technically EndeavourOS, which is pretty much base Arch with an easy installer and a few nice extra utilities, but that's neither here nor there and I don't necessarily recommend it for a first distro) -- which for some is like a nerd bragging right thing, but for me, it's just something I thought looked interesting, liked the capabilities and relative simplicity, and that I got used to using quickly. I don't think I ever tried Fedora and I gave OpenSUSE maybe a few hours -- not for either distro being lacking, but more because I'd already found a spot I liked distro-wise. Lots of folks will swear by either, and I say it's worth a try if you find any of these at all interesting. However, if you've found you really like any of the Ubuntu-based distros and would prefer to stick to that ecosystem, there's no real need to move away from those, either.
I say use what works for you, use what you like, use what you find interesting. If that's Windows, Mac, Ubuntu, Fedora, Arch, whatever, it's no one else's problem. Fuck around and find out. Have fun with it. It's your computer, after all.

PLACEHOLDER FOOTER