FIRST THINGS FIRST
The most important thing to keep in mind is that this is a desktop computer, not a laptop. I don’t like laptops – while the engineering of modern laptops is pretty remarkable, you spend so much of your engineering budget on the compromises inherent in the form factor, to enable a use case that I don’t care about (mobility). So, I’m sure this whole exercise would look pretty different if I were doing this on my MacBook or something.
WHAT WORKS
Almost everything, out of the box. Sound, the network, the video card.
It’s big and reasonably fast, particularly compared to a laptop. I’d had
it set up running ZFS and a variety of home server tasks, so other than
sound and video, none of this is a big surprise. Still, the state of the
art has come quite a distance since manually computing modelines for
XF86Config
and shit. Even the weird Bluetooth/Wifi adapter I have
ripped out of an iMac works fine. It’s not 100% surprising, because it’s
an Intel X99 motherboard with no weird parts, but overall, I am
impressed.
MINOR THINGS
My motherboard doesn’t have USB-C or Thunderbolt, so the docking station
that I use with my work laptop is useless, but that’s a specific “me”
problem not a more general Linux one. I had a USB device drawing too
much power which evidenced itself in … nothing? Until I went into
journalctl
and looked at the logs. It was trivially remedied, but if I
hadn’t gone looking for trouble, I’d never have known. This may be an
“OS” complaint and not a hardware one, per se, but I’m sort of
reaching here, as the basic needs are fully met out of the box.
It’s also been tough getting my XBox controller working with
xow
, wirelessly. Rather than
worrying too much about it, I was able to just … plug it in via USB,
and it works in Steam. So, a minor complaint but nothing blocking.
… AND YET
There is one big issue. I have two monitors (a 1920x1080, rotated 90°; and a 4k, in normal landscape orientation). I want the big monitor to show pixel-doubled 1080, and the smaller monitor native 1080, but I simply cannot get HiDPI support working properly across both monitors. This is table stakes on a Mac, where each display has its own settings, and they are persistent across reboots. This also lives in the liminal area between hardware and software, but it’s more consequential – it requires behavioural changes in how I use my machine. We’ll get to this more when I talk about my OS and software choices, but the Mac is clearly superior here.
OVERALL
It’s a much better experience than the last time I tried (in 2015). From a hardware perspective, everything works. Like, I could post some of my hardware configuration, but:
- It’s NixOS, so it’s not super interesting to outsiders, and
- I didn’t have to change much from the defaults.
So. I mean, after the installation process, I only had to modify the
nix
hardware configuration as such:
```nixos {linenos=table} { # automatically defined stuff elided
services.hardware.xow.enable = true; hardware.video.hidpi.enable = lib.mkDefault false;
} ```
Obviously, other NixOS bits and bobs will configure some of the hardware, but the system was pretty much 100% usable right out of the installer process, which is basically par with a Mac. I would give the hardware part of this process 4/5 stars:
{{<rating 4>}}