I'm incredibly conflicted, because I need a new portable computer, and I love the Surface, but I do not love Microsoft.
Alternatively, are there any other laptops like the Surface Book (i.e., have a detachable touch screen) that work with Linux?
TL;DR: You can install and run it, but touch, pen, and the dGPU do not work, which makes it kind of pointless compared to e.g. an XPS 13.
I actually like touch screens, but they do not work well in Linux. I didn't 'get' Windows 8 until I got my Surface, and I really enjoy using the touch screen when browsing the web and just screwing around with my computer. Touch/pen is a lot more convenient than any other mouse replacement while on the go.
I will be surprised if the Linux community does anything meaningful with touch in the next 5 years though.
As for WiFi, I hate how finicky it is, but it isn't really the developers fault. I spent an entire week trying to get a "Linux compatible" WiFi dongle working before I gave up and returned it. The drivers had been written for Linux 4.1 or maybe even 3.xx. Once I took care of all of the errors and got the driver to compile, I learned that the USB 3.0 version never worked on Linux, despite the fact that the manufacturer had compiled a driver.
At least every new install of Linux doesn't start from the command line, unless you are looking for a distro like that.
As for the WiFi, that's probably more Microsoft's fault. For some reason they insist on using these godawful Marvell chipsets for all the Surfaces. Users have been yelling at them to pick anything else, but it hasn't stuck.
As far as I'm aware, there are no WiFi dongles that support 802.11AC. I think your only option is internal. So if you want to connect to a 802.11ac network on a Linux desktop your only option is connecting through a wired connection with a bridged 802.11ac router or something.
I don't personally mind, but I do think it's bad for the adoption of Linux. Most people I know only have Laptops, and if people can't get their WiFi working they aren't going to use Linux.
Does this library not work with newer chipsets?