Why I stopped using OpenBSD on the Desktop
2025-10-13
OpenBSD is a great desktop operating system that can do many things. But as an aspiring game developer and a laptop user, it isn't entirely feasible to use an operating system that requires me to either hack around or live with things that OpenBSD doesn't support (like fan control on my Thinkpad). I haven't abandoned OpenBSD completely and I even hope to go back some day.
table of contents
Why did I stop using OpenBSD
What I use now
How my computing has improved
What I've lost
Where I'm still using OpenBSD
Conclusion
Why did I stop using OpenBSD
The simple answer is that it hasn't been working out recently. I could have come up with some weird solutions involving a secondary, or even a tertiary computer. But the smart solution, and the cheapest one is to just have one computer that does it all (Even though I have lost count of the number of computers that I currently own, I try not to use too many at once).
However, I will say that OpenBSD generally works for everything I'd want to do on my Thinkpad. Except that I need to do a few things that it can't do. Like:
- Use a gamepad, which I need to test my game engine
- Control my Thinkpad's fan curve, because the built-in one can cause my system to overheat and shut down
- Run virtual machines (At least not very well)
- Run containerization software like podman
Gamepad support is limited in OpenBSD, and even if it is supported, that doesn't mean that your application will recognize it. You'd think you'd be able to get an XBOX 360 controller to just work these days, but apparently that's too much to ask for from SDL3 on one of it's supported platforms. Maybe I should have just rolled my game engine back to SDL2?
OpenBSD does have a solution for the fan curve problem called obsdfreqd, but that just manages the CPU frequency and it relies on the BIOS's built in fan curve, which can't be changed. Thinkfan just gives me for fine grain control over these things so that I can play Minecraft or OpenRCT2 without having to worry about my system shutting off in the middle of a play session.
Such things would likely affect my game engine once I get into actually play testing for long sessions, so it's super important that I be able to run my fan at full blast to keep my system cool.
The virtualization problem will likely never be fixed. It's great if you need to run an OpenBSD, Alpine Linux, or Debian VM with a single core, traditional BIOS, and nothing particularly specialized. Though I think the documentation says that you can specify custom boot firmware, I don't know if that means you can use Tianocore UEFI firmware with VMM. Furthermore, there's no graphical support from VMM itself, which means I'm relegated to VNC (slow) or X11 forwarding (Insecure and slow, but integrates into the desktop better). And don't even think about PCI passthrough, it doesn't support that either.
The containerization "problem" can't be solved in OpenBSD because I need to run Linux containers. Simply put, I can't containerize an operating system built around an entirely different and incompatible kernel regardless of what I'm running as the host (Unless I'm running Windows, then I can use WSL2, but that's basically running it inside of a VM). Now, with VMM I can run a virtual machine inside of OpenBSD running Alpine, which then runs the containers, but then I run into the virtualization issue.
Other than that, the main problems that I've had with OpenBSD but just accepted were:
- Poor energy efficiency
- Lesser performance
What I use now
If one ends up moving away from an operating system they like, they want to use something similar, or at least something with similar focus. There were a few options that I had considered before making my final choice.
These candidates included
- Alpine Linux
- Devuan GNU/Linux
- Artix
- FreeBSD
- Gentoo
You'd think if I were switching away from OpenBSD, that I'd want to use a different BSD operating system. I knew NetBSD wasn't going to work because I was probably going to run into similar problems as I did with OpenBSD. I considered FreeBSD, but I don't trust their default configurations, and a lot of things would need recompiling from the ports tree, which would mean compiling everything. And I don't want to put my poor Thinkpad through that. Plus I remember it being rather difficult, even compared to the hardest Linux distros to configure a desktop. Might be suitable behind an actual secure system, but a portable laptop isn't a great place for FreeBSD in my opinion.
Devuan is based on Debian, I even use it on occasion when I want to set up a server. The problem is that not only do the releases lag significantly behind it's parent distro, it's also that this causes the testing branch to lag behind too. Thus if you want a "stable" system, you might end up stuck on oldstable for a while (not that you wouldn't be using "outdated" packages regardless).
The other main problem with Debian in general is that it's a system that wants you to think inside of it's box. If you want to run some cool Wayland compositor that you saw on Reddit, you might not be able to since you definitely won't have recent enough libraries. But as long as you stick to the repositories and do things the "Debian way", it really does work, and it works for a LONG time. However, I don't really like the "Debian way" of doing things, and prefer to use a more "standardized" distro.
Arch and Artix both have the exact opposite problem of Debian/Devuan. Their packages update too frequently. The last time I tried to use Artix in production, an update had been pushed within a week of me using the operating system, and the update broke my entire system. I could have just rolled back, but I considered that a wakeup call to NEVER use rolling release distributions in production. Because contrary to popular belief about Linux users, I don't like to spend all day every day fixing my system. I do however use it on my gaming computer, since that's where I do want to have the latest and "greatest" packages.
Gentoo was another distro I had used historically. I had started using it as a teenager because back then, my choice of distro was based off of what I considered to be "cool" and "nerdy". I continued using it for much of my 20s because I felt it was the only way to get the Linux distro I wanted. But I stopped because not only did I not feel like configuring every little minutia of my system anymore, many of the customizations I liked to make to keep a lean, mean operating system were simply no longer possible (no udev, no dbus, libressl, etc.). What's the point of compiling everything when it's just going to end up like every other distro out there? Besides, my Thinkpad would struggle to compile rust, llvm, and whatever else seems to be required to build a desktop system from source these days.
So out of all the candidates. That leave Alpine. And that is currently what I'm using as of the writing of this article. It's security focused, lightweight (though not as lightweight as I'd like, but that's not Alpine's fault), performant, and does everything I need it to do. I've also switched out my X11 and bspwm configuration for a Wayland configuration using the river compositor. My workflow is largely the same as before, but on a newer and more secure (less hacky) desktop stack. I know OpenBSD can use Wayland too, but it's not all the way there yet.
Since Alpine Linux runs on the Linux kernel (of course), I can do most of the things any other Linux can do, and the rest of it can be containerized. It's not without it's issues, but everything works so well once it's set up that I don't even have to think about it.
How my computing has improved
Everything is faster now, even my Internet speeds! Now Linux being able to significantly boost my network speed is an incredulous claim. But it's true! Basically, OpenBSD doesn't support 802.11ax, which my upgraded wireless NIC in my Thinkpad uses. Which means that I'm limited to 802.11ac, which basically bottlenecks me to 300Mbps on a good day, but I was getting 100Mbps on average. On Alpine, I average around 500Mbps download and 300Mbps upload. And that's a notable speed increase! It's amazing what a difference a more developed networking stack makes.
But it's not just networking, it's the filesystem, it's graphical performance, processing, everything is more performant on Linux. Though on a Thinkpad T430, the performance upgrade isn't astounding (other than the network boost, which is more because of hardware support rather than just being a faster OS). Overall, the system feels faster but I don't know how much I'd contribute to the switch from OpenBSD to Linux, and how much I'd attribute to the switch from X11 to Wayland.
Software support is another thing that's improved from the switch. OpenBSD has good software support and could pretty much run anything I needed, sometimes it wasn't 100% functional. The same could be said of Alpine Linux, but even Alpine has better software compatibility than OpenBSD. While this isn't a deal breaker in either case, it's nice to have more options. If I were really so concerned with maximum software compatibility, I would have moved to Ubuntu, or worse, Windows.
Stability has also improved greatly. Though OpenBSD itself is highly stable, I can't necessarily say the same of every package in it's repository. Some things just don't work properly no matter what I do. Though sometimes, it was because I disabled nowxallowed on the /usr/local/ partition, as I suggested in my previous OpenBSD guide. But other times, that didn't even work. But the important stuff like my development tools and Firefox generally did work.
For Wayland specifically, my tooling (river, waybar, alacritty) allows me to set up something analogous to what I had on X11 (bspwm, polybar, urxvt) without having to have so many shell scripts to hack it all together how I wanted it to. I don't even have to write shell scripts for the majority of the modules anymore! (That's more to do with Linux than the display server)
Overall, everything's more performant, more compatible, and less janky with Linux and Wayland than OpenBSD and X11. Though I already miss using OpenBSD...
What I've lost
OpenBSD may have been janky for what I was trying to accomplish. But it was simple, and the way I had everything hacked together made it feel like a true hacker's OS. It's nice that everything just works better with my new setup, but I'll always have the old setup backed up just in case I want to go back and do it all over again. Hell, I might even set up a VM just to keep it alive just for nostalgia purposes (or maybe not, it seems kind of like a waste of time).
I also miss the overall ease of administration. Now I've taken some of the OpenBSD components with me when switching to Alpine (doas is installed by default on Alpine), and I'll use OpenBSD's portable tools whenever I can (except sndio, which doesn't seem to be very well integrated into Linux. Either that or I just don't know how to set it up properly). But not everything transfers over. For example, joining a WiFi network on OpenBSD was a simple as a one liner in an /etc/hostname.{iface} file, but in Linux there are multiple tools for it with wildly different syntax and whatnot. I suppose wpa_supplicant.conf is pretty easy to set up too.
But most of all, OpenBSD's secure by default approach, and it's security guarantees are what I miss the most. It's not that Linux is totally insecure, and it's not that Alpine isn't good at what they do. But it just seems like that OpenBSD has a more secure OOB experience, while in Linux you generally have go through a whole lot of trouble to have an analogous setup.
Though to Linux's credit, there are a lot of unique and innovative ideas around security in that space. QubesOS uses Xen to isolate every aspect of the computer into separate VMs, and immutable operating systems are more resistant to tampering than a traditional OS. These are areas that OpenBSD is lagging behind on. Though arguably, these are unnecessary depending on the threat model.
Overall, OpenBSD is the UNIX operating system I always wanted. But it's a shame that I can't use it for everything.
Where I'm still using OpenBSD
I still use OpenBSD in certain contexts. RetroInterlace still runs on OpenBSD, and will run on OpenBSD for the foreseeable future. Of course, I could host this site on any operating system, I could even host it on something like Neocities if I were so inclined. So if I do need to switch, it would be very easy.
I may also decide to deploy it in other limited contexts. For example, if I ever decide to deploy my own router and firewall combo, the firewall is going to be a separate machine running OpenBSD just for this purpose. OpenBSD's pf is very easy to configure, and probably the best in the entire industry. The router itself would probably also run OpenBSD, in which case I could probably run only one machine instead of two. But if Linux turns out to be better suited for the router functionality, then separating the router and firewall would probably be the most secure option.
For using setting up a Wireguard VPN, OpenBSD as the host is probably the best option here as well. It's great for keeping your services secure and preventing public access for certain resources.
I do hope to return to daily driving OpenBSD at some point, but as I see it, it doesn't work for me. And there's no guarantee that the issues will be fixed, seeing as it's an OS by it's developers for it's developers. If I were any good at OS programming, I might contribute. But that's not my expertise, and I need something that I can write games with.
But still, I'll never let it go, because it's a great operating system that fits many aspects of my computing habits.
Conclusion
In short, OpenBSD wasn't working out for me in the end. It's a great operating system and it does so much. But like any BSD user going back to Linux, or any Linux user that goes back to Windows or Mac, I need something that works for me.
OpenBSD does everything I want an OS to do, but Linux does everything I need an OS to do.