ThinkPads have sort of a cult following among OpenBSD developers and users because the hardware is basic and well supported, and the keyboards are great to type on. While no stranger to ThinkPads myself, most of my OpenBSD laptops in recent years have been from various vendors with brand new hardware components that OpenBSD does not yet support. As satisfying as it is to write new kernel drivers or extend existing ones to make that hardware work, it usually leaves me with a laptop that doesn't work very well for a period of months.
After exhausting efforts trying to debug the I2C touchpad interrupts on the Huawei MateBook X (and other 100-Series Intel chipset laptops), I decided to take a break and use something with better OpenBSD support out of the box: the fifth generation Lenovo ThinkPad X1 Carbon.
i bought the oqo 2 years ago hoping to have a truly portable computer that i could carry around and still access my familiar working environment, but for the majority of the time when i was at my desk, it could dock to a full-sized screen and keyboard. that plan didn't really work out too well since the hardware wasn't very compatible with openbsd and it was too small to really use without the dock anyway.
years later, netbooks became popular (and cheap) so i tried the hp 2133 and msi wind, using the wind as my only machine for quite some time. eventually the 1024x600 resolution felt kind of cramped so i went back to a full-sized laptop with the thinkpad x200. it has a 1280x800 resolution that was a nice improvement over the thinkpad x40's 1024x768, but it feels like more of a desktop machine than a laptop. it's quite big, its fan is on all the time, and the battery life isn't that great without the heavy 6-cell battery.
i started working on an acpi driver this evening to make my thinkpad x61 work better under openbsd. i just finished it and so far it matches on the IBM0068 acpi hid device, checks it for the appropriate version, enables the bluetooth device (which is required before the hardware toggle switch can power it on and let the ubt0 device show up), and sets up a callback to run whenever a special button (e.g., fn+f[1-9], brightness, thinklight, etc.) is pressed. i'm pretty sure it will work on most other thinkpads but i haven't tried it on my x40 yet.
i mapped out all of the events that get generated, which on my x61 tablet include the screen rotating around, the lid opening and closing, and even the pen being ejected from its little slot. when the brightness buttons (fn+home and fn+end) are pressed, it sends a cmos command through acpi to actually adjust the screen brightness accordingly, so now it's working just like my x40 did on its own. being able to turn the brightness down when on battery is the main reason i wrote this.