I do have to say, though it took 10 years longer than I thought it would, the combination of hardware standardization in consumer laptops and maturity of Linux kernel has meant that, in the last few years, Linux has "just worked" more often than not (and WAY more often than it used to). I recently upgraded from a Lenovo X220 to a 4th-generation Lenovo X1 Carbon, and installed Ubuntu GNOME 17.04. Didn't need to tweak a single thing about the hardware. Everything just worked.
That said, I did hit a weird GPU bug that reminded me that no matter how good Linux on the desktop has gotten, there's always something. :-/
In particular virt-manager/virt-viewer/libvirt/KVM have come a long way. I don't need Workstation or Virtualbox any longer. Having Docker and a real X11 server is nice. Everything /generally/ works. A few things I have to run a VM for like Webex.....
Regardless I don't think I experience much more bugginess than my Mac peers now, and most things work out of the box.
Linux on the desktop: Most things work out of the box ;)
these days, for stability it's prefereable to use the modesetting X driver (comes with xorg-server /usr/lib/xorg/modules/drivers/modesetting_drv.so) instead of the xf86-video-intel driver.
I run i3 and just logout before any sort of monitor changing.
For what it's worth, my experience with Linux vendors like System 76 has been good, particularly in recent years.
Alternative software available on Linux is often not fully compatible, so people are effectively locked into Windows/MacOS as long as they want to keep their existing data or work with others (who often use those lock-in products). In addtion, UX of FOSS like GIMP is at the least very different from big commertial counterparts like Photoshop and takes a lot of time to learn, which many people simply don't want to invest.
That said, one sad thing is that VMWare recently laid off and/or outsourced their VMWare Workstation team, and it is now in "maintenance mode", so I will be really sad if this product gets sunset somehow. It's still infinitely better a VM option than Virtualbox for running Windows.
As of June, I'm running Win10 "natively" on an ArchLinux hypervisor with GPU and USB passthrough via vfio-pci. It was a marathon to get this configured, but overall it's quite nice. Previously, I had switched to Win10 native and ran Linux out of VBox for "real work", after finally getting sick of waiting 2 min+ for something to churn in DxO via VMWare and/or VBox on the Linux host.
Combined with virtio drivers, the passthrough VM gives me practically-native performance (Geekbench shows ~15-20% loss in single-core performance, and about equivalent multicore performance) and the flexibility of a virtualized environment (qcow2 images, etc).
It also allows my workstation to operate independently from the other services in my house (Plex, work VM, etc.). One of the biggest annoyances of a Win10 host and a Linux guest VM was that Win10 would sometimes force the box offline for updates. Still annoying, and doesn't really happen since I switched to the "business release channel", but at least it doesn't take everything down.
The coolest part of this setup: my son has a Win10 VM with GPU passthrough to the secondary GPU in the hypervisor that he uses via Steam Link to connect to "his computer" from several "thin terminals" in the house. Would love to develop this out as a product some day.
All this said, since it is an experimental setup that depends on some cutting-edge features, there have been some kernel-related struggles and I've been on the kvm mailing list a couple times in the last few weeks. 4.11.x is mostly-stable (one system lock on it), 4.12.x crashes after a few hours, 4.13rc1-7 crash after tens of hours, but 4.13rc7 with the mmu-notifier patchset from Jerome Glisse is stable so far. I'm anticipating a clean 4.14, which will be LTS, and then I'll probably stick to that branch until the next LTS comes along.
There are cases where those programs don't work 100% but they work 99% for everything that I need which is fine for me. It feels much faster than running the same programs under Windows 8.1.
Did you manage to solve the fact that, when plugged to an external monitor, if screen is turned off and back on (or the computer sleeps if you walk away for 20 minutes), upon logging back in all windows are in different workspaces than you had originally set them in? If so I'm very curious, it was the thing that made me switch back to mac (and I irrationally hate mac).
I need to tweak the graphics config for no screen tearing. I needed to install palm detection to be able to type. And I still can't get HDMI with audio to work when connecting my TV.
It still doesn't work out of the boys like Windows.