55 comments

[ 0.21 ms ] story [ 118 ms ] thread
I have a Linux desktop, but disagree with this notion in the article:

"Highly customizable, especially the desktop interface"

Basic stuff, like changing the font size in the main "start menu", or having an on screen keyboard for the lock screen is either hard or impossible. Varies, of course, with whether you're running Gnome 3, MATE, etc. But, they all have big quirks.

>having an on screen keyboard for the lock screen is either hard or impossible

It's dead simple in Gnome. In the settings menu, under Universal Access, just check the box that says "Screen Keyboard".

Yes, as mentioned, problems vary with the desktop. In this case it's MATE that can't have an on-screen keyboard on the lock screen...even though you can have one on the login screen.

Edit: There is a workaround (switch user button, enable, go back), but there are other desktops with no work around, like Cinnamon.

> Highly customizable, especially the desktop interface

The freedom to choose MATE, which doesn't solve this issue for you, is included in that statement. But this "Highly customizable" vs "uniform experience" on the other hand, are mutually exclusive descriptors.

Freedom of software choice includes the freedom to take away complexity. In this case, assuming that you have a keyboard and it interfaces in the usual way, without overlapping the screen, and that it works and you can use it, all drastically simplify quite a lot of complexity that the developer would otherwise have to prepare consideration for on your behalf.

Don't you prefer that developers of orthogonal software packages each are individually free to spend that time on other concerns? I'm almost certain that you could also be starting from the gnome login screen into the MATE desktop manager, or use MATE with LightDM, or some other login screen that does support on-screen keyboards, if you really need it.

And sure, that's extra work for you, and it's sometimes a little bit harder than configuring Windows, but you only have to do a customization once if you're happy with the result.

That might make sense if the login screen also didn't have an on-screen keyboard. But it does have one. That makes it pretty clear it was an oversight. They do have a fix in MATE now, it's just not yet backported to a current Linux distro.
I misread the issue is about the Lock screen and not the login screen, my mistake. That's a bummer! But you're saying they've fixed it, woohoo?

The phenomenon of the "current Linux distro" is an interesting one, too. I used to be a desktop Linux evangelist (guess I still am too, but now I use a Mac since it's what they handed me at work...)

Stuff like this is why I always recommend Debian Unstable for a desktop for developer use. Finding out that the developers already fixed a thing that's bugging you, but you can't have it because the reviews and publication process which puts the fix into your hands won't take place for another 3 months is infuriating.

It is transparent though, even if it's infuriating. And you can also choose to use Debian Unstable, which I found in many years never to have been a bad decision.

I also tend to recommend rolling distributions. Arch-based ones are often quite nice to use, and frequent updates regularly improve the user experience, while rarely degrading it. Arch is often said to target more advanced users, but beginners shouldn't be afraid of Antergos or Manjaro. I've also heard nice things about OpenSuse Tumbleweed.

Debian/sid has its freeze phase, which makes it less of a rolling release, and can contain quite unstable software at times.

I see a lot of potential in declarative distributions (NixOS, GuixSD, and others), but in the end, you just have to pick your tradeoffs ahead-of-time: stability, ease-of-use, documentation, userbase, features, recent packages.

I can also see some value to the more "Win32" model where you update apps manually, hence have a different release channel per-app. Declarative distributions can definitely target that, but that's also a possible use-case for Flatpak. And in any case, it's a lot more involved. I wouldn't dread about telling a user to manually update every piece of software manually, if Windows didn't already push them into that mindset.

There's a happy middle ground between the two I think. You can have a standardized self-contained and portable format (like AppImage or even regular AppDirs) and a standardized channel for updates without all the extra middlemen of repos or the bloat of app-specific update checks. AppImage actually specifies such a mechanism.
> Debian/sid has its freeze phase

Correct me if I'm wrong (I don't think this would have changed), but Debian/testing has a freeze phase, and what you say is true about testing.

I don't recommend Debian/testing to anyone because the experience is not consistent, and it does not get fixed packages as fast as sid. (If a package is broken in testing, it's because it has somehow made it through the waiting period without anybody noticing that bugs were present. It may then likely remain broken until all the outstanding bugs are fixed and no new bugs are reported for something like two weeks, which is why it historically can sometimes get so bad as you suggest.) But sid never does have a freeze phase, it's always accepting packages.

As long as they don't have a bug reported against them in something like two weeks while they're sitting in experimental, or something? (It's been a while since I've reviewed the rules, and they might have changed since then.)

I think the bar to get your package accepted in sid is much lower than in testing. But there is still a bar, and that's why the quality is actually very consistently high.

(Maybe not as high as stable, but stable distros are for production systems, not for developer workstations IMHO.)

The only reason to use "testing" is if you yourself are a developer who is actually building software to release concurrently with (and run on) the next stable release.

And this is my biggest problem with Linux: that you generally have to either rely on the distro and repo maintainers to get up to date software or compile from source. That's completely ridiculous.
I have no issue with this for some things, like webservers, for example...it's not too difficult to compile from source, or find an alternate package source, or run in a container, etc.

For desktop stuff, it's harder, because there's often a dependency chain that forces you to upgrade everything just to upgrade a seemingly simple piece.

In Debian unstable, many of the packages are submitted from upstreams (eg. the folks that made the software.) The bar is simply "Debian developer" uploads the package, as I understand it. The Debian developer may or may not be the upstream source.

In Debian testing and stable, you're getting software that has been through a longer and involved peer review process by Debian maintainers. That's not ridiculous, that's why you would use a stable distro in the first place. Because it doesn't put so much trust in upstream vendors to always put out consistently good production-quality releases without adding any new bugs in them.

I don't recommend using stable distros for anything but production machines, and those you keep to approximate them (like say, staging machines).

You have a Linux desktop. Linux is a kernel. Screen rendering, fonts/smoothing, OSK are not features of a kernel.

It could not be more highly customizable, especially the "desktop interface".

If your "desktop interface" is hard to manage, there are literally hundreds of alternatives.

Strange reply. "Linux Desktop" is a pretty common term that I didn't just conjure up.

I also specifically named two of the more popular desktop environments with two specific examples of things that are hard to configure.

Nothing here that programmers don't know.

And there's nothing in the article that a myriad of regular users face on a daily basis when it comes to computers that Windows solves.

The main reason why I use and love Linux: hackability. MS and Apple just can't produce something comparable 'cause it will hit their closed ecosystem.
Windows is pretty hackable. Unfortunately, the documentation is pretty spotty and often outdated. And you can't go read the source code when you get stuck.
> Windows is pretty hackable.

OK, give me sources of Windows bootloader 'cause I need, for example, draw a green animated dragon instead MS logo. And put this dragon inside Cortana logo.

I have actually changed the graphics of the windows boot sequence, back when I worked on an OEM image. A lot of OEMs do it.
It used to be possible to change the boot screen on Windows 9x :)
Yeah, I remember changing the bootloader windows image to something fancy back then.
Most of these "hacks" require messing with windows registry or other parts which eventually get partially overwritten by a system update and you're left with a partially usable system at best.
>> Whereas Windows updates are often laggy and frequently require reboots,

Windows update processes regulary pegs my cpu for minutes at a time. Why does this come out of nowhere and totally hog my system?

It's probably your IO, not your CPU.
It's not my IO, i've got 2 NVME Samsung 970 SSDs in there. In Linux it runs like a dog with its nuts on fire.

I have a calendar entry each week to dual-boot into Win 10 'cos otherwise when I need to do work in there the thing is completely pegged. Tried this yesterday - first time in 2 weeks - and the desktop became unresponsive after ~20 secs. Copying files over the network randomly failed and I couldn't press [Win] to get to the start menu.

Windows updates are a tyre fire. This isn't to mention the number of times it's automatically rebooted me on my work laptop.My wife's mother has a Win 10 laptop she logs into into probably once every 2 weeks to work on a Google Doc. Her internet is terrible, but it's unusable for her with WU trying to eat her cpu and download a couple of gig of updates.

Why shouldn't I get her a Chromebook? And why shouldn't I use Linux on mine when it's a million times better?

The Windows update situation is one of the primary reasons I've switched all my machines to Linux. It's infuriating to open my laptop for something quick - either to show someone something or to get some work done on the bus - and be greeted by an inescapable update screen that lasts minutes.
Yeah, I'm not exactly Linux Desktop's biggest fan, but most of my computers have been switched to Lubuntu just because of this horrific user-hostile forced update bullshit.
latest news are that MS is phasing out the forced updates or at least letting all users no matter which edition of windows they are running to postpone updates. this will go live with the next big update 19H1 which should be out in a month.
I tried this last year and eventually gave up.

I definitely prefer the Ubuntu shell experience, command line, etc. They’ve done a great job.

But the last mile is still too rough. Battery life, sleep/wake, font rendering, Bluetooth, all still have problems even on a Dell XPS 13 9370.

After a few months I just didn’t want to mess with it and went back.

Windows has gotten a lot better but still does a lot of befuddling and annoying things. WSL saves it.

I think it's unlikely to have a great Linux experience on any random new-ish laptop. Even some Lenovo laptops are imperfect experiences with Linux, especially within the first year or two of launch. If you really want to try Linux seriously, I'd recommend trying it on a desktop instead. Most tower PCs with stock parts tend to work great, with only minor exceptions (some weird audio codec setups can be fidgety.)

I don't buy specifically for Linux because I'm willing to deal with the incompatibilities, but in my experience battery life can be at least comparable, and sleep/wake/Bluetooth are fine out of the box on all of my machines. Worst problem I had was my Lenovo P51 and its Nvidia Optimus setup + docking, but that actually was also kind of tricky in Windows, so I can't complain too much (and it improved over time.)

Font rendering is the only thing there that you probably want to tweak regardless. For me, I just prefer disabling hinting and subpixel rendering, for blurry-but-accurate rendering.

And if you did ever want to switch to Linux as a primary OS, you can base your hardware purchases around it, which while isn't strictly necessary (I know I don't) but certainly helps a lot if you just want stuff to work out of the box.

I would tend to agree with this. I just do not see myself going back to Windows any time soon. In my experience, battery use is comparable, and might be even better on Linux with a few tweaks (powertop/tlp).

Fonts are likely a matter of taste. I personally can't stand how they look on Windows, to the point where I had difficulties reading off one of my monitor (and none of the cleartype settings helped). Having quite different font rendering on multiple screens is something that highly annoys me.

As for hardware, I was probably lucky, and use a nice DELL laptop from my lab. Sleep doesn't work on my Ryzen desktop, which I don't know how to debug, though it's only a minor annoyance.

The general reason I use Linux (aside from philosophical/ethical considerations) is to get my system as lean or as bloated as I want, but always exactly know what happens on it, how parts fit together and be able to diagnose and fix a problem is one arises.

This all has to exist within your tolerance and commitment. In my case I have limited time and patience (kids, etc). It’s different for everyone.

But the battery and sleep issues aren’t close. On Windows I get probably double the battery, maybe more. With Linux I had to hard reset out of sleep on a regular basis, never mind if I had it connected to a monitor.

Again I really want it to work. I really enjoyed it and learned a lot. Maybe next year I’ll try again. But in reality I’ll prob just get a new MacBook, it’s really the best of all worlds imho.

Wow, what a deep article, I've learnt a lot.
Reasons to abandon Linux for Windows:

1. It works

2. Lets you use professionally produced, widely supported, best-in-class software, with support

3. Hardware works out of the box, rather than taking a week to get it working, if supported drivers even exist

4. Updates less likely to brick your hardware

5. Your company's IT department, your ISP, etc will help you fix it

6. You don't have to tweak configuration files by hand, run a series of commands, or call up your cousin's nephew who you heard has used this thing before

I'm on an engagement with a client that requires Windows to access their resources. Issues I've had so far:

- The trackpad driver doesn't support scrolling w/ Win 10 (Dell E7470). I know how to fix the issue but I don't have the correct user permissions.

- The buggy corporate printer helper has caused the laptop to shutdown due to overheating twice so far in two weeks. I'd disable it since I will never print from this thing, but...

- I've been trying to figure out how to install software I need without local admin privileges and now I have a Git installation that takes ~30 seconds to update the shell after each command. I tried everything in StackOverflow...

In all fairness, picking a laptop to use with Linux takes a little homework, but I've had no issues with Thinkpads or my current XPS 13 running Fedora.

Reasons to abandon Windows for Linux:

1. It works

2. Lets you use a huge variety of sensibly licensed, high quality software

3. Hardware works out of the box, unlike my perfectly fine scanner on Windows which doesn't work on anything newer than XP (except Linux, of course)

4. Updates less likely to brick your hardware

5. If something breaks, you'll be able to fix it instead of looking cluelessly at logs that don't tell you anything.

6. You can tweak by hand whatever you want

> Hardware works out of the box

If it works at all. Maybe.

Wasn't sold by the article.

Trying to suggest to Windows users that they abandon their platform for Linux is a bit silly really, clickbait at best. People are okay with Windows and wouldn't be happy on Linux unless they have gone part of the way already, e.g. struggled with development on some Virtualbox thing and need the productivity of going native on Linux.

To me the difference between consumer operating systems and Linux is exactly that - the paid for operating systems are a bit like consumer goods, you aren't expected to go under the hood. Sure you can use them for software development but they are designed for running user friendly programs where everything is made easy.

I think that there are parallels in everything from hairdressing to the automotive world. If you cut hair then the tools of the trade cost a fortune and those scissors have to be sharpened monthly or replaced if dropped. You wouldn't recommend those scissors to someone doing a craft class with their toddler.

Or in automotive. You can race any consumer grade car but if you get into it properly then the whole thing is different, no fancy dashboard, rose joints that you have to replace all the time, a roll cage instead of central door locking, the thing probably isn't even road legal. And there isn't a 'sports' of 'M' badge on the back by the time you get into it as full on lifestyle choice.

Most people don't want to do linux things any more than a non-track-day motorist wants to open up the bonnet of their lease-financed car on the motorway (on the way to the in laws).

I thought I could jump from Windows to Ubuntu on my gaming computer after Valve did all that great work on Photon. Not quite. Ubuntu couldn't connect to my bluetooth xbox controller, and would never reconnect to wifi after resume or restart.

I do prefer the speed, workflow, and several other things about the Ubuntu desktop, but as I only need to play games on that computer, it's not worth it.

My laptop has always been Ubuntu though, as Linux is the best bootloader for Emacs.

We swapped out Windows for Linux on our TV-connected video game PC, and have had pretty good luck. Windows 10 was getting really obtrusive with its ads for stuff like Office 365, as well as frequently making games stutter because it decided that it needed to start an update in the background right then. I’m sure some of the Windows issues could have been fixed by someone more familiar with Windows, but I mostly saw Proton as a way out.

Xubuntu installed easily for me, and Proton has done a good job for all the titles I’ve tried. But the games themselves are a bit more of a hassle than Windows. I had to dig around in Steam to enable Proton for every game.

My wife and I recently played Divinity in split screen (Linux native) and occasionally ran into audio issues if the game had been running for a shameful number of hours. Divinity 2 (Windows version), doesn’t work out of the box, though ProtonDB forums had a straight forward fix. So far, I think Divinity 2 in Proton might be at least as stable as the Linux version of the original.

But... it’s a bit of a gamble. I mean, I bought D2 on sale so it’s not a huge loss if a game doesn’t work out, but also you want to play the game. So, there’s always a little voice asking “will it work?” that you don’t have with Windows.

We have two Steam controllers, which probably makes things a little easier for us. For whatever reason, we grew to like the Steam controllers and have stuck with them. I would guess that the Bluetooth controllers would be harder. I haven’t gotten the hang of making bluetooth work anywhere really, and I could imagine the interplay of bluetooth, steam, and proton all to be a bit problematic.

On balance, I’ll probably not move our game machine back to Windows barring some title I really want to play early in the release cycle. The hassles of Linux feel like things I can figure out, whereas the hassles of Windows feel like I’m fighting the established order imposed by a product manager at Microsoft.

Use what works for you. Switching sometimes to learn new stuff is great, but don't lose your productivity.

I have been a long term Windows user (as main machine). I always liked it - even with the obvious annoyances. I'm pretty savvy at it, so can always fix issues that arise.

Now at my new job I use a Mac and also a lot more Linux. Its good and I like the command line but I am still happier when I'm working on a Windows machine it seems. Mac has its own annoyances and issues, like with display adapters and memory resets, as well as updates.

So privately I just bought a new Surface Laptop 2 and I'm happy and like the entire experience. Finally having more native Linux tools makes it much better experience also (and there is now a native ssh client! Yay!). It's also powerful enough to run a Linux VM seamlessly at all times- because I also really like Linux. So why not have both. :)

My advice, just use the one you are most comfortable with and where you know how to fix things.

For anyone used to PC editing keys using a Mac, get an external keyboard and add some key bindings[0], you'll be much happier. (It also works on MacBook/Pro keyboard but they have tiny cursor keys.)

TL;DR create ~/Library/KeyBindings/DefaultKeyBinding.dict containing:

  {
        "\UF729"  = "moveToBeginningOfLine:";                   /* Home         */
        "\UF72B"  = "moveToEndOfLine:";                         /* End          */
        "$\UF729" = "moveToBeginningOfLineAndModifySelection:"; /* Shift + Home */
        "$\UF72B" = "moveToEndOfLineAndModifySelection:";       /* Shift + End  */
  }
[0] https://apple.stackexchange.com/questions/16135/remap-home-a...
All these years of arguing over OS and you nailed it right on the head. Just use what you like, multiple OS exist so a choice exists, it’s not about one OS dominating another to a point where the dominee is irrelevant.
This is a very mature approach. Skipping the fanboyism. Especially now unless you are doing something very platform specific (e.g. iOS development or need Visual Studio) all platforms can have a decent workflow for development.
It depends on what you do with it in the end. For programming, I feel much more comfortable on a linux machine rather than windows.

If you're a gamer, it's probably the opposite. :)

Gaming has come a thousand miles in the last 18 months. It's now possible for a relatively layman user to be able to install and run games using steam and lutris with no issues.
I am doing so on Linux, and with the (relatively old) games I play I have no problems. But drivers and performance can take quite a hit for recent games, in my experience.
I just use MSYS2. Everything I want from Linux, nothing I don't.
Also: much less overhead when testing apps intended to run on Linux servers.
I rather like this list. My main everyday work machine is an Ubuntu 18 box, it's 99% awesome. Everything works, I almost never have troubles. I've been working like this for years now. I spend all day working on Linux and supporting Linux servers and other open source projects. BUT I can't get USB headphones to work. It drives me CRAZY. This is such a stupid basic thing that "just works" on every other OS but Ubuntu just fails me totally on 2 different boxes. I've tried EVERYTHING I don't want to even think about the amount of time I've waster. So yeah, reason #1 I can't abandon Windows is because USB headsets don't work on (my) Linux. This sounds like a stupid little thing, but it's a big pain for me.
I use macOS at work, Linux desktop at home and a Surface Go.

The HiDPI/multi-monitor support on Linux is still lacking and I haven't tried it on batteries. It's great when your dev and prod use the same OS and web/db stack versions.

The Surface Go is surprisingly usable which I wasn't expecting from a Windows platform. I never use my 13 MBP anymore. So much so that if I need a more powerful laptop, I'd opt for a Surface Pro rather than any Apple product.

> Highly customizable, especially the desktop interface

That entirely depends on the desktop environment. I know GNOME 3 was very hard to tweak when it just came out. I always enjoyed GNOME 2 with Compiz though.

> A curated software catalog like mobile platforms

That has some things to iron out regarding the usability perspective. I removed some office apps from my xfce4 desktop, and Ubuntu also decided to remove other apps like xcfe4-session-logout, so I couldn't logout anymore. These things shouldn't happen.

My fresh xfce4 desktop always shows a "system error". Why? I don't know.

Years after years I tried Linux (Ubuntu actually, which I expect to be the most stable) desktop but it still is not polished. As a sysops/devops I know what to do, but the average user doesn't. But even then, I don't want to troubleshoot my desktop after I have just installed it.

Can I be honest? With emacs and firefox as my daily drivers I'm relatively platform agnostic, but I feel too old for the switch.

I was bound to windows to do work for far too long (adobe and no mac) and have close to 300 apps installed. I don't want to bother to set up all my tools again, rewrite my ahk scripts, search for these niche programs (if alternatives exist at all) etc.