Linux on a Convertible, Round 2

Preamble#

In my Setups post, I mentioned that I used to use a ThinkPad X390 Yoga as my main workhorse. I was hoping that a convertible laptop could replace both my aging MacBook and iPad; as it turned out the software wasn’t ready yet and it was a pretty shitty experience overall. Next thing, Covid happened, and being stuck at home, I switched to a desktop Hackintosh plus an iPad Pro.

This has worked pretty well so far, and so I put the laptop up for sale. However there was little interest, and when I wound up experimenting with a secondary office desk in the bedroom (more on this soon), I decided to dust off the ThinkPad for a couple tests. I’m happy to say that after a weekend of compulsively ricing Arch, I can report back with a fairly usable setup!

Software#

I’m running an i3 setup again. Previously, I complained about a number of software issues with this. Here’s how I could resolve them:

  • Lack of autorotate:
    • Install iio-sensor-proxy
    • Adapt this Bash script:
      • Hardcode the xinput device names for the pen, finger and eraser, so the touch input actually rotates with the display
      • Also run ~/.fehbg on a rotation event to fix the background
    • Autostart it via .xinitrc
  • Crashing iwlwifi leading to system freezes
    • Seems to be fixed in newer firmware versions.
    • Update: it’s not. I just keep a tiny wifi dongle plugged in now and unload the iwlwifi kernel module on boot.
  • Bad usability in tablet mode
    • Use this fork of unclutter to hide the cursor on touch input
    • Use xinput for the touchscreen
    • Where possible, use iPad instead

Results#

I’ve found the autorotate to be more reliable than on Windows now. That was pretty impressive to me. Of course all this existed back when I initially tried to make the ThinkPad work and I should’ve done my research better.

As for tablet mode, of course using an iPad instead doesn’t directly solve any of the issues. Far better software support for tablet mode would be required to make that work. And while there are attempts at this, just physically speaking, the X390 Yoga is still too huge, wobbly, and heavy for most tablet usecases. So I’m just going with the iPad, since I have it anyway.

The ThinkPad’s still a fine laptop though. It’s fast, for a laptop it’s light, Linux support is good now, and the convertible thing might even come in handy sometime, like as a party trick or something.

But for real, it’s actually not even that bad, given there is proper software. For example, when it comes to ebooks, Bookworm is pretty nice even in tablet mode. So I can see myself using it in tablet mode occasionally, depending on whether the software is there and the iPad isn’t.

The touchscreen turned out to be actually useful though - it’s really nice for developing mobile apps. You can just control your emulated app naturally using your fingers. Also, sidenote: as an iOS dev, I was impressed with how fast Android Emulator is thanks to KVM. Together with the touchscreen, it actually feels like a real device and that makes for a very pleasant dev experience once you add in Flutter’s hot reload.

Reviving the ThinkPad also changed my iPad workflow: since I can do coding work on the ThinkPad now, I no longer need to carry the Pi Zero with the iPad anymore. While it was a cool idea, in practice battery usage ended up being too noticeable and switching to tablet mode too much of a inconvenience, given how little I found myself using it.

Lessons learned#

  • The newest stuff might not work too well with Linux
  • There’s a tradeoff between effectiveness and specificity, and convertibles don’t hit the sweet spot (there may not be one)
  • Do more research, don’t throw in the towel too quickly.