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
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]
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 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
All that aside, still interested?
Desktop Environment
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
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]
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?
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?
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.