147 comments

[ 5.9 ms ] story [ 197 ms ] thread
Once you get bored with a regular distribution you can go and try Linux from Scratch.

Me, personally, this was the tool that really introduced me to Linux OS. Understanding how everything is put together and how it bootstraps will make you a better user of whatever distro you choose in the end. (No, don't use LFS on your workstation.)

Indeed. I never wandered that far into the deep end but did spend years running Gentoo as my main (initially, then sole) OS of choice. It took a few tries, emerge --update --newuse --deep --quiet @world was very slow on the Pentium III, but once it was up and running I loved every aspect of using it with openbox WM and others like it, sharing with folks on deviantart, etc.

I don't think I'll go back to that at any point, as it was far too much effort, but in terms of what I learned it was invaluable.

I should caveat that I would like to do the same with a BSD system at some point, only for fun on a separate machine.

I enjoy arch for the same reasons, but I am not familiar with Linux from Scratch.

you say not to use it on your workstation -- is it more of an tutorial than a distro?

LFS wouldn't have a package manager (as far as I know) so it would be an insane amount of effort to keep all the software up to date (by recompiling everything manually).

Arch is actually a nice middle-ground. It's got a lot of learning potential (you still build the system from scratch by installing everything manually and creating the right files and mount points - there is no installer) but it's not as tedious as LFS and can actually be usable day to day (spend years on Arch before moving to proprietary OSes).

I would add that the last time I used LFS was almost 20 years ago. I don't know if the procedure got more complex. From what I skimmed it looks manageable (I guess that's the whole point).

The reason for not using LFS would actually be security. It is possible to just install whatever you want and then use it for a long time (akin to LTS Ubuntu distribution). But you still need to somehow notice there are critical security updates and you definitely don't want to miss them.

Another reason is that distro developers create a huge amount of convenient mechanisms and choices for the users.

As an example, getting software X to work might not be a problem, but getting X to work along Y and Z when they might have conflicting dependencies might already be a headache. Distro developers will ensure various dependencies are tested and make sense together. If you install something on Gentoo (sorry, I don't have experience with Arch) and it doesn't work, there is a good chance it is possible to make it work and you can Google the solution. When you install something on LFS and it doesn't work you are pretty much on your own.

I would say it is somewhere between tutorial and distro.

It is a distro that has no binaries for you to download. Instead you copy/paste pieces of code and follow instructions.

Instructions are regularly updated like a real distro.

Well - all the options are part of the problem. I use Pop!_OS because it was the balance between getting things done and spending hours tinkering with my machine.

It's not that I don't enjoy it. It's just a question of where I need to be spending my time.

Will you have the Ubuntu family of distros that will all work equally well.

All those niece distributions are nice, but I wouldn’t recommend them to newcomers as it’s harder there to get support.

I've tried many different distros (Ubuntu, Arch, Fedora, OpenSUSE, etc) and I actually find it much harder to get things done with Ubuntu or Debian than I do Arch or other lightweight distros like Alpine. The reason is that I often have to (or want to) do things that aren't supported by Debian or Ubuntu because it either requires using very new versions of software or it requires modifying a bunch of system configuration files. When you try to do that on Debian/Ubuntu you'll quickly run into problems because you're doing something outside what they expect you to do. Everything is hidden behind a big layer of abstraction (like a maze of symlinks and custom patches, etc).

So, you may find things like Pop! easier to get things done with because you're ok staying within the realm of what they support, but once you try to do something outside that, I guarantee you will quickly get very frustrated.

That's usually a slow transition though. I started out using linux mint a few years ago and since then I've gotten annoyed more than once at the way things are structured. What I've ended up with a "One box, two systems" aproach, where I do most stuff "the ubuntu way", but compile certain software from source and install it however I want it. The separation of `/usr` and `/usr/local` that's already common on Linux makes this work very well.
(comment deleted)
Kernel has been ready for prime time for ages now. It's the distros - fragmentation and quality - that's still the problem.
Interesting page but maybe overwhelming to newbies. How is a beginner going to select a distribution from that huge list? choosing 'beginner' distros still leaves you with a long list of options, and no other easy means of comparing between them.

Let alone how to figure out which desktop environment to choose from...

IMHO a beginner has very few choicie. He should choose ubuntu. Fedora is about as good as ubuntu for beginners, but it is more difficult to find other users to get help. A beginner may choose fedora if he is using redhat at work and could get some directions from IT staff. The variants of ubuntu introduce some confusion and do not give much benefit in return. The other distributions do not fit beginners (either lack of polish or lack of users or both).
I think Mint is a better choice than ubuntu; out of the box it resembles windows, with a menu button in the lower left corner and a window list in the bottom.
jokingly

Oooh...! I really want to... But Windows is getting so good! It is where I have my fluff and stuff.

I use it serverside, is that ok? I also own a MacBook which I use frequently, does that count a little?

not sure if you're joking, but windows (IMO) did get better up until Win 7, then took a couple of misteps and a big backwards step with win 10 trying to tie all the loose concepts together into a single OS. It's really too bad we couldn't have some of the under-the-hood improvements with a stripped back WIn 7 style UI and just leave it at that...
I completely agree with you. There are issues with Windows. But it is not terrible anymore.

I use windows as my desktop, it is convenient and pleasant. It works with my games and plays well with my devices.

I have been borderline crossing over to Linux Desktop for many years, but the user experience is not convincing me.

It is not that I haven't tried Linux on the Desktop, but only through virtualization - there is always so much configuration I need to set up in order to get up to a comfortable level, and then something changes or breaks.

I have a few headless Linux servers which is a joy to use and manage, but I do that from my Windows or MacOS computer usually.

I love how Windows and MacOS is starting to become more and more similar, makes synchronization of content and experiences much easier.

After being Linux exclusive on my personal laptop(s) for over a decade, I just went back to Windows + WSL 2.

With WSL 2, there's very little reason to use Linux desktop any more. The windows cleartype, touchpad driver and sleep work a lot better while giving you a regular Linux environment and you don't have to dual boot to get Office and creative software

Apart from the fact Linux has total customisability, a working search function, doesn't spy on its users, has programs to run Windows apps, isn't anti-consumer, and of course is free.
Maybe you missed the part where I said I was Linux exclusive for a decade plus. For me the trade-offs aren't worth it anymore - I'm mainly interested in a Linux programming environment. I'm sure the trade-offs are different for others.
Linux programming environment is a desktop distribution. Maybe WSL has some part of it, but a VM is a VM.
> VM is a VM If it runs fast so you can barely notice any difference with WSL2, does it really matters?
Hardware abstraction. AFAIK WSL2 also even uses a non-standard init system.
> After being Linux exclusive on my personal laptop(s) for over a decade

You're an important part of the community that can help report bugs during installation, boot up, drivers, etc.

Consider switching back to help grow the community.

It happens rarely, I must admit, but nothing tops the linux community feeling when a vendor marks your driver issue with "won't-fix"
The windows equivalent would probably be declaring it a feature.
> With WSL 2, there's very little reason to use Linux desktop any more.

My personal reasons to stick to Linux:

- my DE is fully keyboard-driven (Windows is mouse-centric to be point of being unusable to me)

- better support for complex networking (NAT, multiple route tables/VRFs/netnses, etc - just last week I had to run my entire network uplink through USB tethering, which was a breeze on Linux)

- system update when I want it, zero system-mandated reboots

- easy debuggability of software failures (Windows, when fails, is a black box and your only option to fix things is to enter black magic commands from random forum threads - without possibility of actually understanding what failed, looking at source code, etc)

- no feeling of always fighting against malicious, privacy-disrespecting software (it's not that I can't disable ads and tracking, but I really don't want to have to do that)

> Windows is mouse-centric to be point of being unusable to me

I find that very relateable. I have gotten used to doing everything with my keyboard and windows just doesn't allow that to the same extent.

Can you give some examples? I've found it to be pretty good with the basic stuff like switching applications or workspaces, snapping windows to the left or right half of the screen, opening and closing arbitrary things. I can think of some ways I'd like it to be better though, like making the left/right halves arbitrary sizes with the keyboard.
I have yet to figure out how I can quickly move one window to another workspace in windows. Under mint, I just do Ctrl+Alt+Sfit+H/L to move a window to the previous or next workspace. I also have Windows+T mapped to open a terminal, which I do everything in these days.
ALT-TAB doesn't do what you want?
I very often use complex window layouts [1], not just side-by-side. The fact that I can ask my window manager to arrange them for me, in the way I want, without having to drag them, and without them ever overlapping, and without wasting screen space on useless window decorations, is something I'm just too used to to switch back to the way Windows would have me manually arrange and resize them.

[1] - https://q3k.org/u/96613e57e6d630e35c8872f2fe970331fa327cd501...

There are tiling window managers for Windows. I know because I am making one :)
Windows is mouse-centric but you've got to install stuff to get middle-click paste working.
You can actually operate the entirety of Windows UI with just the keyboard. That's one reason why the great majority of handicapped users use Windows and not macOS or Linux.
Actually, it’s a lot more about standardization and pricing. Apple’s assistive tech is excellent.
> "- system update when I want it,..."

  Windows ramming its updates down my throat whenever they feel like it is totally unacceptable among other things.
Mandated, automatic updates have their downsides, especially for some of the HN crowd, but for 99% of the population I really appreciate that patching is automatic for the other 95%+ of users. Getting the vast majority of computers in world quickly up to current security patches protects users and creates something akin to "herd immunity" where exploits become fairly useless to bad actors.
That's not the problem, it's that the update can't be done in the background.

On iPad or iPhone, when I get an update, it installs overnight and my device is immediately available to use after restarting.

On every Windows device I've ever had since Windows 8, I have to sit there and wait for some reason. (I've already selected the 'use my sign-in information to speed up...' option)

Every single time that Windows updates, there is no way to get it to perform the entire process when I'm not using the device. As soon as I restart or log in, there is more lengthy 'configuration' or 'working on updates' to be done. It's unacceptable.

This thread is very timely, as I'm looking to switch from macOS to Linux, and I tried years ago, but was turned off by difficulties getting the keyboard setup the way I wanted it.

One of my favorite macOS applications is "ShortCat", which allows you to chord a shortcut (cmd-shift-space) and gives you a "GUI search" wherein any text that is on the screen (on any monitor) becomes selectable by typing it and choosing a selection...kind of like the way Vimium works in the browser, but for your multi-application context. I am comfortable with vim bindings generally but don't really care as long as there is consistency (pre-baked preferable, but configurable works). I've tried Linux years and years ago and my biggest gripe was that there was no unified "system" for handling setup of keyboard shortcuts / macros. "One system to rule them all" would be ideal, or at least "one system for each context layer, consistent between applications."

I am getting option paralysis since I know there will be a learning curve, and I don't want to spend a lot of time customizing just to find that the distro I picked is not going to meet my needs without a ton of deep customization. What Linux distro and/or window manager is going to get me multi-monitor HiDPI support with good keyboard-only navigation? From lurking HN i3 looks like it might be favored in my situation?

I want a workflow that allows me to easily jump from window-context to window-context, tab-to-tab, sub-window to sub-window, independent of monitor or applications.

I would consider something minimal like NixOS or Arch if someone could recommend a good playbook/setup for someone like me, and Manjaro and Pop_OS both look cool, but otherwise will probably default to Ubuntu for beginner google-fu.

I run both Manjaro on my laptop and PopOS on my workstation, and highly recommend both as great options to someone coming from MacOS like I did. PopOS on System76 hardware is very much like MacOS on Apple hardware in that things just work and you can get three years of great tech support. I've run Pop on other machines and it just works well. Manjaro is a blast because you always have the latest software and the installation is easy. While Ubuntu is perhaps an easy default, I can't really recommend 20.04 with the same enthusiasm as Pop 20.04 or the latest Manjaro release, as I have seen a lot of folks have problems. Try out PopOS - you really won't be disappointed, and will probably be delighted like I was.
I've recently installed Pop!_OS, mostly because I heard good things about its installer (setting up FDE on a secondary SSD is completely insane in Ubuntu).

But their tiling window manager extension is the real gem in my opinion. It's very clearly a v1.0, but I am still surprised by how much I enjoy it: https://github.com/pop-os/shell

Absolutely - I had been playing with i3 and other tiling window managers, but I always miss the full DE experience when using them. Pop-shell looks like it might fill the gap between Gnome and i3: tiling goodness with a full DE. I am looking forward to System76 developing the extension!
> What Linux distro and/or window manager is going to get me multi-monitor HiDPI support with good keyboard-only navigation?

Try sway. There isnt as much documentation online as I'd like, but the included man pages are good.

- a bunch of choices of really good backup apps. I never got this running well on Windows.
> little reason to use Linux desktop

Well, that was the idea, looks like.

> The windows cleartype, touchpad driver and sleep work a lot better

On my ThinkPad the official touchpad driver for Windows is worse than the default one on Linux. And sleep/suspend does not work reliably on Windows 10 since it may wake up your PC at any time and run a system update, closing your session in the process. I still find forced updates unacceptable and nothing will change that. There's not much I hate more than software that tries to act smart. It always backfires in some way.

What do you mean by "official touchpad driver"? Official = IBM / Lenovo?

You should look into if you have the official Microsoft touchpad driver aka Microsoft Precision Touchpad Driver as that is much better than any third party driver.

https://www.howtogeek.com/325347/how-to-enable-microsofts-pr...

On Windows the middle mouse button on the TrackPoint will either work as middle mouse button or for scrolling. I have to change the config to switch between the two modes.

On Linux it just works™ like it should. Creates a middle mouse click when clicked, scrolls when I drag the TrackPoint.

It should be solved by using Lenovo's driver.
Maybe it's just your use case - but I've just switched someone over to Linux and it seems to be suiting them much better than Windows - granted they're running older hardware, but we would've had to throw that laptop away otherwise, as Windows 10 is absolute garbage when installed on an HDD.

The person in question was really quite attached to their Laptop and after a failed HDD, we just took another one we had lying around, tried to save Windows (but to no avail), and finally decided to put LinuxLite [1] on it.

People who mostly utilize a browser in their day-to-day computer usage don't have any advantage in using Windows whatsoever.

I haven't yet used Linux for that long, (only around two years as may daily driver) but I can't imagine ever going back to Windows, except for very few select games, which aren't yet supported natively or via Proton/Wine.

And I keep hearing about the touchpad driver issue, but I really can't find a single difference between my Windows and Linux boxes, maybe I'm not sensitive enough, or have much lower standards in that regard, I really can't tell.

Sure, Windows Office and some Adobe software isn't there yet when used via Wine, I'll give you that. I personally do just fine with Blender, Gimp and Inkscape on the graphics front. I can't speak for the usability of the Libre-office suite, but it's done the job for the few times I had to use it.

[1]https://www.linuxliteos.com/

> People who mostly utilize a browser in their day-to-day computer usage don't have any advantage in using Windows whatsoever.

I would agree with that, but then they also don't have any advantage in using a Linux Desktop when any web-kiosk Chromebook or tablet would do.

Went the same route with WSL2 as nearly everything i need for my daily programming tasks just works and having windows just an alt+tab away for games / office etc. makes it more pleasant to use.

Maybe i`m just getting old and dual booting etc. isn`t my thing anymore but i don`t see myself setting up another distro anytime soon after 20 years.

WSL2 for me is the arrival of the Linux desktop.

I'm a Windows guy, but after switching my newer Lenovo Flex 5 laptop to Linux Mint, I am amazed how well it functions. Everything just worked, even my touchscreen. The battery lasts a good 20-30% longer and the fan isn't running nearly as much. I still dual boot into Windows occasionally to do updates, but so far I am impressed how far desktop Linux has come.
I've also used Linux on the desktop for over a decade, and I have to use Windows 10 at work every day. In my experience, Windows is still not Linux. I don't know what kind of laptops you've had to run Linux on, but my desktop experience has generally been much better than on Windows. Sure you have the occasional tussle with things that don't work at install (although it's getting better). But once things are set up you don't have to fiddle so much anymore and it's usually smooth sailing from then on. Things just work.

I don't want to get into details about what's missing, although I could go on for a while on that. I'll only share one small use-case.

Linux spoils you with the belief that you can just set up your work environment once and find everything exactly where you left it. So imagine that you have 8 desktops and you've spread and organized things nice and tidy: browsing on Desktop1, work environment for app1 (git, log, tests, editor, etc) on D2, work environment for app2 on D3, media on D4, email on D5, experimental stuff on D6, on and on, you catch the drift. That setup out of the way, you can just show up and work on whatever you want, each day, every day, for months.

Now the Windows experience. Everything works at install, but then you try to turn Windows into Linux, you tweak at it and you get maybe 80% of the way in. Not bad, you can get some work done. Then you're reminded of the Windows reality: the dreaded updates. You basically never stop updating. Firewall, antivirus, drivers, apps and rebooting.

That's just one thing, I could go on with others (someone else pointed, no pun intended, with Windows obsession's with the mouse).

Don't understand why Debian would be listed as "Intermediate", while Ubuntu is listed as "Beginner". IMHO lots of problems just vanish once you switch from Ubuntu to Debian …
Except for the problem of out of date software... :)
Maybe on Stable. Sometimes. Not so much on Testing.
One is forced to wonder why they must choose between "stable" and "up to date" at an OS level.
because it takes a while to be sure that things are really stable.

server and desktop have different stability requirements. on a desktop i just need all user apps to work well. on a server i need things to be rock solid.

the newer the less stable things get. the distros i am familiar with i would sort in this order:

RHEL/centos > debian/ubuntu LTS > fedora/ubuntu > debian testing

fedora and ubuntu are stable enough for a desktop or client, but i'd never put them on a server.

For the same reasons that production, staging, and dev environments are standard.
Outside of Linux Desktop, the operating system and applications are considered separate beasts, so you're able to have a stable OS and a mix of stable/up-to-date applications as you see fit.

The package manager/distro model that Linux employs only ever seems to give you the choice of one or the other, because it doesn't have a clear differentiation between "OS" and "application".

I gave up on Ubuntu and switched to Debian (currently running on unstable or testing) after Ubuntu screwing up a dist-upgrade one time too many.
Debian will not install proprietary firmware or drivers for you.
- choosing wich distro to use = pain

- installing a distro = pain

- making dualboot screen user friendly = pain

- installing graphics drivers = pain

- installing software = pain

macOS is the best linux distro, and for some reasons it is not on the list, go figure out

Unlike Windows and MacOS Linux gives you options

I’d rather say Linux gives you choices. Choices that you have to make, rather than options with (sensible) defaults. This is a big reason for why I’ve been unable to switch from macos to Linux as a daily driver every time I’ve tried in the past ten years.

Ironically, it’s simply too costly. Macos has been degrading over the past 6-7 years, but it’s still pretty good at standing out the way.

I’m gladly proven wrong if you can point at a path I’ve missed.

I'm curious, if you install a desktop distro like Ubuntu then what choices do you have to make?
Using Ubuntu.

I use Mint. I pretty much left everything as it defaulted to.

Password. Username. Maybe also hostname.
One of the “options“ is Ubuntu. Looks like a sensible “default” to me. Just works. Stays out of your way.
The only "default" I considered insensible with the latest Ubuntu is that it still overwrites the default system boot loader. I was able to recover through the BIOS boot menu though I can see this how it can deterring new users from trying this.
I'm not sure why they insist on installing GRUB when UEFI allows the firmware itself to act as a boot manager (remembering boot options and their order) and the kernel itself can be booted directly as an EFI application.
How do you debug in that configuration? And would a first time user know how to do that?
Well first of all the goal is that there would be no debugging required if the system works well, and in my opinion less moving parts (like GRUB) means less chance that something breaks.

The UEFI boot entries can be configured by the operating system with the "efibootmgr" command (http://manpages.ubuntu.com/manpages/bionic/man8/efibootmgr.8...) so if a more user-friendly version of it is required then a GUI can be written around that. Whether it's necessary or not is another matter because as far as I know there is no GUI around the GRUB configuration either and it mostly works.

Speaking of GRUB, how it works in Ubuntu land is that there are a couple of scripts that read different configuration files to generate the final GRUB configuration file which is actually a bash-like script (yes, GRUB implements a scripting language) and if you look at it you'd be horrified. The UEFI way of doing things is much simpler.

So the idea would be to 1) check whether the installer is booted in UEFI or BIOS, if UEFI then check if an existing OS is installed and whether it boots in BIOS or UEFI mode (whether the drive is partitioned in MBR or GPT), and then decide whether to skip GRUB (for UEFI-capable configurations) or keep it (for BIOS systems).

grub with timeout 0 achieves the same visual effect, but sometimes you need debugging (windows also has "boot into safemode, android has recovery etc.).

There are many bootloaders you could choose from efistub (which you mention), gummiboot, refind ... . Having one with a user visible interface is useful if you either dualboot or want to expose things like previous kernels or filesystem snapshots.

> So the idea would be

Sure you could do that, or you could set grub timeout to zero if multi booting, larger timeout if not and present the same familiar interface no matter whether you use UEFI or BIOS.

My argument was less about the visual impact and more about having yet another moving part. A timeout of zero doesn’t magically solve the complexity of its configuration or failure modes.
systemd-boot is a good solution to this problem. It's less of a horrible complicated mess than GRUB. You can add menu entries for multiple operating systems, an EFI shell, and the BIOS menu, just like with GRUB. It has a much nicer configuration story and integrates with the other systemd components (so, for example, you can reboot into a different boot menu option through a systemctl reboot flag just like the equivalent feature in Windows).

systemd-boot only supports UEFI systems, so GRUB would still have to be an option for legacy systems.

Check out the Arch Wiki page: https://wiki.archlinux.org/index.php/systemd-boot

I kind of wanted to mention it as what I think is a better alternative but I feared it would label me as a systemd propagandist (given the polarising nature of it, even though personally I think it’s advantages outweigh the - often philosophical - drawbacks).
I think that anyone can recognize it as a good alternative for Ubuntu, since Ubuntu already uses systemd (and that's a done deal).

I'd consider myself a pragmatist, so I like systemd because it makes my life easier with the declarative configuration and other nice features (although I recognize that it makes some people's lives harder).

For Ubuntu and it's derivatives, installing from the command line with "ubiquity -b" should work for that.
I hooe my update from 18.04 LTS ro 20.04 LTS will be the opposite of eventful.
Wait for 20.04.1 or .2. I never upgrade until there’s been enough sample data for fixes to come in. Nor do I ever use the odd-numbered releases.
Until you upgrade the kernel and your wifi stops working. Or the desktop stops loading and you have to spend time going through logs and googling what's broken this time. Or when you plug it to a secondary screen and it freezes. This happened when I was a desktop Linux user and this still happens (less frequently nowadays though). I'm mainly talking about Ubuntu which is supposed to be beginner-friendly and not some obscure distro.

When I was younger I was very happy to deal with these issues because I learned a lot and probably made me the professional I am nowadays. Over time however I realized much of this knowledge doesn't contribute to my day-to-day work anymore and it's just an annoyance - I now want to turn on my laptop and work right away.

If you want to run linux, buy from a manufacturer with decent linux support. In my experience, all my dell laptops worked seamlessly with linux. No driver hackery required. WiFi never stopped working. However, HP seemed to have very poor support for linux, and you need to install drivers for WiFi manually, which need to be recompiled on each kernel upgrade.
objectively speaking, Debian is perhaps the most stable mainstream os in the world. if you want stable give it a try!
That never happened to me on Ubuntu. Fedora, on the other hand...
Not being cheeky, but "just works" except when it doesn't.

Then off to the command line to try to make it work.

And I think the way Linux was built, (ok this will sound naive but) focusing on the "command line" first makes everything second class.

Maybe every cmdline app should also include a binary api to be able to be used in an automated fashion (yes, you can call "system" but that is finicky)

It's not wrong, but as someone who has basically always used both Windows and Linux, and has spent some time managing a Windows network, Windows machines have their fair share of "just works except when it doesn't" too. And then you end up with "try changing this weird registry setting" or "run this random cmd command" too.
Ubuntu is good right after you install it, but then steadily decreases in quality. I got to the point where I avoided updates, because random things always broke.

After trying several distributions. I ended up long-term moving to Arch, it's way more work to setup but it has more of a I built it, I can fix it vibe. I always struggled to fix previous distributions after some update blowing something up.

In my opinion, the biggest thing Mac and Windows has going on is how stable they are.

Yeah. Ubuntu package stuff that is simply broken, which has caught me a few times. RHEL at least support most of their packages.

There's a use case for both distros, but I can rely on RHEL / Centos more.

Perhaps you should start your path to GNU/Linux not by choosing the OS but by choosing the hardware which is designed for Linux.
Thank you for articulating the distinction of options vs. choices.

More often than not, I just don't care about making the optimum choice. Phone provider? ISP? Dentist? Insurance? Linux distro? Ughn, the miniscule upside of choosing something exactly right for me is overshadowed the the huge downside of choosing the completely wrong thing.

> Macos has been degrading over the past 6-7 years, but it’s still pretty good at standing out the way.

This hasn't been my impression at all lately. Even Windows is less annoying.

> Choices that you have to make

What do we want?

Freedom from choice!

When do we want it?

You tell us!

Kidding aside, this is one of the keys to Apple's success: we have made most of the choices for you, and we have very good taste. (and yes, they've been slipping).

In essence, that's also the key value proposition of many luxury (clothing) brands. Not so much that the quality is necessarily so much better, or that you're getting better value for money, you're not (in pure product/price terms). A big part of the value proposition of, say, the Armani brand, particularly for men is: "buy from us and it will be good without you having to think about it".

I agree that the defaults for macos are decent.

However, the customizability of linux goes far far beyond macos.

scripting is possible with macos (say shell scripts, perl and python), but nothing graphical/ui.

(ignoring tk, also ignoring orphaned applescript)

Even something simple like yad would be nice on macos.

I made just a few changes and I can switch back and forth between linux and macos now pretty comfortably.

I changed copy and paste to CMD-C and CMD-V. In the terminal app equivalent, I mapped CMD-K and CMD-L to reset and clear screen, and CMD-N to new window.

Those few changes got rid of a LOT of friction points.

Sums up my experience pretty well. Here is an old joke about Linux which I remember every time I need to fix by Bluetooth or WiFi:

"In Linux, you can configure everything. And you will be configuring everything"

Despite all the "inconvenient" sides of Linux, it's really an awesome OS if you know what you are doing

hasn't been my experience for several years now. pretty much everything on linux works out of the box.

i spend more time configuring windows than linux.

turning off annoying sounds. installing an app to get 4! virtual desktops. (linux (and mac) have unlimited desktops)

searching and installing essential applications and tools is annoying on both windows and mac, whereas on linux it's a trivial operation.

Buy a laptop with linux preinstalled like the XPS 13, done.

Or build a hackintosh if you want a fair comparison.

So I tried the linux thing off and on for about 6 years. After sun os, unixware, solaris, HP/UX, irix, bsd/freebsd, macOS, windows 3.1, 95, 98, NT and so on.

The issue is every time I buy hardware (primarily laptops) there was a lot of research in to the components and the quality.

I kept finding myself going back to OSX. It was just easier to in many many ways.

But now OSX is bloated nagware.

Ah exactly what I was looking for — a quick summary of the specificities/main features of each distribution. Thank you! I'm considering running one of these in a VM to play with Linux again. The last time was elementary OS on a Chromebook and I really enjoyed that.
>> While it may seem overwhelming to see all your OS options on Linux, you may instead find it comforting

This is probably less common on HN, but I already have so many technology decisions to make, I don't really want to continually experiment with my OS. I just want it to disappear into the background, not be the star (or even really a conscious thought)

EDIT: huh, I added this comment when I saw no others, but it turns out my reaction isn't too uncommon, considering the audience here.

Too clarify, there are lots of situations where the OS should be a real first class concern, I'm just not convinced we'll ever get much traction at the general user PC level.

It's not only you.

I wonder what the target group for this page is. Obviously not the main mass of people who use Windows today because if they'd be forced to chose, they'd probably take the first on the top left. If they won't be forced, they'd leave the page right away because it doesn't say why they SHOULD change.

The rest of people probably knows already about linux and don't get any relevant information from this...

Desktop Linux will stay in the hobbyist domain forever if so much effort is spent on polishing separate "options" i.e. Distributions, window managers etc. when fixing the tools used by most users would be more important.

Are the differences between package managers and keeping them really so important that it's not possible to do everyone a favour and agree on using just the best one? Sure, it's nice to have "options" but as the decades fly by, people seem to use that mostly as an excuse for still not having a user-friendly desktop Linux.

The Linux world spread its resources thin across a lot of "options" (with the result that none of them get enough attention to bring them to a polished state) instead of doing one option but doing it well.
> fixing the tools used by most users would be more important

This supposes that said tools are broken, which doesnt match my experience at all. Sure, there are obscure bugs in all software, but major issues are rare. If by fixing, you mean "I want tool A to be more like tool B", that's just a matter of opinion, and I personally find the relative abundance of opinionated software on Linux to be a benefit, not a hindrance.

> do everyone a favour and agree on using just the best one

Trying to decide on the "one best tool" and dumping the rest and is like trying to pick the "one best programming language" and dumping the rest.

I think too many distributions is part of the problem. Especially starting out, you don’t really know/understand what the difference is between each other. You just want something that works for your case and skill level.

I wouldn’t put all these options together, but rather focus on a few distributions that are easy to setup and work well. If we want ppl to move to linux, we should focus on them. Present them with a few options that work really well, with guides on how to start up coming from windows/mac and solving their problems. Just presenting a list of options doesn’t make the decision easier.

Personally, I’m using Pop_OS! because its easy to setup, works well on laptops, gets out of your way, and its more or less Ubuntu underneath, so its much easier to find software and help for it. But the distribution that really converted me over was Manjaro

Too many distributions is also part of a bigger problem and why there will never be a "year of the Linux desktop". We are looking at insane amounts of developer & administrative resources being wasted by every doing mostly the same thing in a slightly different way. Imagine the progress that could be made if all of this workforce was actually united and was working on one (or a handful, think server/workstation/tablet editions) good distribution.
Now that cuda support has been announced in WSL, it might well be the beginning of the year of the Linux desktop. Before the announcement I planned to have two separate machines: Linux workstation and Windows desktop. Now I’m seriously considering combining the two into a Windows/WSL workstation.
This is one of the core points of the "Linux Sucks" series of presentations [1]. If you haven't seen any of them, I think a TLDR might be "technology is not holding the linux desktop back; lack of cooperation and other social issues are". And though slightly different and about about a separate domain, I think "The Lisp Curse" [2] has a similar thesis as to why lisp is not mainstream.

The linux kernel is a huge success because there is exactly one kernel and its monolithic architecture ensures that the only way to accomplish anything is to cooperate with everyone else so you can get your thing added in. If you want to do your own thing, that's fine, but it will never be a part of linux.

If the linux kernel had a micro kernel design, with different competing projects for the different layers of the kernel, the linux kernel would not be the success it is today. It would be a niche tool, like the linux desktop. In linux userland, the plethora of distributions, GUI toolkits, desktop environments, init systems, applications and so on ensures that none of the projects can ever succeed.

1. https://www.youtube.com/watch?v=QKwWPQ1Orzs

2. http://winestockwebdesign.com/Essays/Lisp_Curse.html

> I think too many distributions is part of the problem.

I think that's the wrong way to look at it. We should not look at the distributions as a choice people have to make once they have decided to use Linux. It's a choice people always have to make when deciding which operating system to use. Windows is one option. Debian is one option, and so on. They are all different operating systems. The only difference is that the Linux distros are compatible with each other and that's a good thing.

If they're so compatible with each other, why do they all have different packaging mechanisms and repos and discourage users from installing software from places not under their complete control?
They all have some differences and that's ok; you would not normally expect different operating systems to work exactly the same way. But it's still usually much easier to take a program written for Arch and make it work on Debian than to do the same with a program written for Windows.
In my experience, no it isn't. Granted, that is entirely thanks to WINE, but Windows being as stable as it is on an ABI level means you don't even have to recompile anything for the compatibility.
Manjaro convert here too! I have used Linux since around Red Hat 4/5 and I'd been trying Linux desktops here and there for 20 years... The ease of installing software on Manjaro is what really got me. I always hated searching for and configuring keys/repos/ppas for every package I wanted, plus many, many times that I tried Ubuntu it would just refuse to boot one day after an update.

I guess the other thing that I love about Manjaro is that it's configured with XFCE by default, which, after some configuration gives me a better minimalist Windows-like experience than Windows itself. I no longer have to fight Windows and hack the taskbar with 7+ taskbar tweaker to get features like dragging taskbar buttons around - all the features I want are built into XFCE. Anything that was missing I added by scripting xdotools, wmctrl and other supported tools.

See your "advanced"; raise you http://linuxfromscratch.org/

Which isn't a great idea for any business scenario, much less, personal productivity context.

However, if you want to level up in your Linux-fu, it cannot be recommend highly enough.

I've personally switched to using Ubuntu 20.04 on my desktop, and honestly the switch has been uninteresting - which is a good thing. Works perfectly as a software engineering environment.

I know it has been controversial in the Linux community and among long-term Ubuntu users, but Snaps are what made my switch relatively painless. Everything I need on my daily driver (Firefox, VSCode, Slack, Spotify...) is just there waiting for me. Don't need to fuss around with a package manager, third-party repositories etc.

I am not completely Linux however, I still maintain my MacBook Pro for on-the-go work and an iPad down-time/multimedia purposes.

Don't be thinking there's only 30 of em:

  https://distrowatch.com/
openSUSE "intermediate"? Huh? I've been using openSUSE for the past ~5 years. Sure enough, the repos are not as rich as the popular distros but everything always works out of the box, including proprietary software(which can be a nightmare even on mainstream distros).
And YAST makes system administration easier than any other distro. I would certainly set it as beginner.
Has anyone had success doing mobile development on linux? Thanks to XCode it seems it's a no-go for a lot of mobile developers.
I do this for Android. Works like a charm.
I'd. Really. But every time there is a problem (and usually I have more problems than under Windows or MacOS) I have to search forums and obscure blogs for hours and tinkering in the terminal while praying to not break something else too. Maybe I'm just too "casual" for the Linux experience.
It has been my experience as well, and what's worse is that the information is very often out of date, because entire "ways of doing things" go obsolete in Linux Desktop land every 2 or 3 years.
It can be annoying to have to chase down help for Linux problems, but nothing is worse than trying to Google issues with Windows. Recently I spent a couple hours trying to figure out how to get Windows Firewall to log dropped packets, and never did get it to work. On Linux, its a single command to the firewall frontend I use, and documented clearly in the relatively concise documentation.
This website shows the exact reason I don't use Linux out of virtual machines. In terms of desktop, there are so much whatever from whoever and they are all broken horribly that it's not even a joke anymore.

Unlike Windows and MacOS Linux gives you options. That is the exact reason why I don't use Linux in desktop.

linux evangalism is counter productive. In each of these threads, all the mac/windows people will come out of the woodworks and talk about how if only linux did xyz better, they would switch. Unfortunately, it doesn't, so they can't. Nobody learns anything new. The cycle repeats even if xyz is solved later with some new xyz. And in my experience, you cannot "convert" people to linux except for people who really are a blank slate (young and old people fit in this bucket, but average people do not). They have too much baggage, and nobody wins. People need to discover their own things.
This whole page is basically insulting the intelligence of users.

> It's about time you try Linux

implying that while you did have heard of Linux, you misjudged it.

> Unlike Windows and MacOS Linux gives you options

This is factually wrong, anyone knows that both Windows and macOS give you a lot of options.

> The major operating systems put their users in a box, while Linux allows you to choose an OS that fits your needs and skill level.

implying that you can't run macOS or Windows by choice. No, obviously zombie Steve Jobs forced you to buy a Mac for a lot of money.

> and "free" here refers not to the cost of the software but to its liberty—as no one entity owns the software it essentially belongs to everyone, without restriction

This is factually wrong but okay, copyright law is a complicated thing and it wouldn't make much sense to discuss that here.

> So, in part, making the switch to Linux is an ethical decision about the software you use on a daily basis, and the rights you and others have to the information and things you use.

implying that if I choose to buy a software for money to support its developers because I think they're doing a good job, this is somehow unethical. Actually, there were no ethics discussed in the previous paragraph, so this is a conclusion without foundation.

> Most open source operating systems are completely free both in price & licensing. There are typically no upfront fees, lengthy legal agreements, or restrictive copyright protections.

Um, did they ever see the GNU GPL?

> Free software is developed completely transparently which means the source code is out there in the open for anyone to look at. This means, if you wanted to, you can have a meaningful influence over the software development process.

That is not generally true. If you look for example at SQlite, you'll find that while this is a piece of free software used by millions, they generally don't accept patches or any other kind of influence.

> There are thousands of free software applications available to install without the need to browse the web. All this software undergoes scrutinous review before it reaches you, so you can find and use what you like with confidence.

implying that either non-free software isn't reviewed or that somehow I should trust people I don't know that review free software, but not people I don't know that review non-free software.

> With LibreOffice, you can also open and edit any Word, Powerpoint, or Excel files you may already have.

Anyone who ever tried opening a non-trivial Excel sheet with LibreOffice would disagree on that.

> On other platforms, the creative field is dominated by proprietary applications, but there are several capable free and open source alternatives.

… which also run on Windows and macOS.

---

There are a lot of good arguments you can make in favor for Linux. This page totally botches it.

Of all the Linux distros out there, the one that calls to me the most is NixOS.

Do people use NixOS as their main OS? Does it have a "default desktop flavour", like Ubuntu does? (the manual seems to suggest XFCE - https://nixos.org/nixos/manual/index.html#sec-xfce)

I do. When I installed it the default configuration had no desktop enabled but had commented-out lines to enable KDE. I think it's best to think of it as not having a default or preferred one, and you are instead required to pick one.

(I haven't tried everything, so I don't have firsthand knowledge that they all work equally smoothly.)

That's good to know, thanks for answering.

> not having a default or preferred one, and you are instead required to pick one.

If you don't mind my asking: how well did NixOS work for you, as a desktop environment, out of the box? Did you have to do annoying IT work when you installed it (screen resolution, wifi, sound, maintenance mode...)? How often do you need to fix issues like that?

Nothing related to screen resolution. Wifi worked via the command-line tools mentioned in the manual, or the KDE interface. Similar for other things. I didn't stick with KDE--I switched to sway--so there were a number of things to deal with because of that, but that won't matter if you do use one.

If you do encounter an issue it will be more work to deal with, because you both have to figure out the underlying issue and then figure out how to fit that into the Nix way of doing things.

The biggest factor is handling downloaded pre-built binaries that assume various libraries will be in typical locations. Those generally require patchelf and then they work fine. I would only recommend NixOS for now for people who are willing to tinker a bit and learn how it works.

What people don't seem to realize is that an increase of popularity of Linux will lead to a tragedy of the commons situation. Desktop Linux currently is mature enough to be usable for most everyday tasks, but has a small enough market share to generally not fall prey to adware, spyware, malware, telemetry, backdoors, EEE type strategies, closed source blobs creeping into the ecosystem and so forth. As its market share increases, the more viable a target it becomes for such things.
Desktop Linux in general seem to have a very large amount of probable vulnerabilities, but it also has a very large community of companies that sponsor work and rely on it for servers.

Would be interesting to see how quickly an open back-door is fixed after it's discovered. Is the maintainer available? If not, can the package be replaced? Will it be vulnerable for months, years? So many uncertainties make me not want to rely on Desktop Linux for sensitive work.

from my past experience, faster than on windows or mac. the application maintainers need not be available. the distribution maintainers can step in and apply fixes to the versions they distribute.

if a 3rd party windows application has a security issue, good luck getting any fixes.

> closed source blobs creeping into the ecosystem and so forth

Modern Linux is heavily reliant on closed source firmware blobs already.

Only if you have chosen the wrong hardware. See Purism.
That's only partially true though - for example, I don't believe there are any 802.11ac (or ax) WiFi adapters that don't require binary blobs. Purism punts on that, and just ships an old 802.11n adapter.
You are right. But the original claim was "heavily reliant on closed source firmware blobs", which is not really true.