Abandoning my own tablet OS: Why I moved back to iPad and the Mac

Jan. 14, 2021

The past year I have been experimenting with creating my own tablet operating system using Debian GNU/Linux and the i3 window manager on a Microsoft Surface Go 2 with LTE. After months of intense use I have now decided to abandon the experiment to move back to iPad Pro and the Mac. Read along to find out why.

Building "WillemOS" using Debian GNU/Linux on Microsoft Surface

After being fed up by the umpteenth bug in Apple Photos, I got serious about leaving the Apple ecosystem. I thought that I could do things better. How hard could it be to make your own OS.., right?

WillemOS in optima forma: Debian GNU/Linux on Surface GO 2

It turns out that you can actually achieve a lot, if you have some spare time and a ton of dedication. It's amazing what you can learn if you simply try things. It led to some interesting posts and findings over the past months:

Making my own tablet OS

Free from iCloud escape Apple Photos

Syncing files seamlessly between tablets and smartphones

And finally: Refining my tablet OS

Writing and reading blog posts using my own tablet OS

But then something happened, I had an opportunity to use a Windows laptop for a while, the Surface Laptop Go. It is a jolly simple laptop and I liked it for precisely that: no hassles. The laptop just worked in a predictable, reliable way that - apparently - I was missing in "WillemOS".

A plant, a laptop and some coffee - the joy of a simple system that works!

The problem with my own OS

Building your own OS is great for all kinds of reasons, but mostly because you get to decide how things will work. You're the architect, the master, the one that decides. You're god. The flip side of that great power is that you're also responsible to make things work!

Very often things worked fantastically, especially when I spent some time finetuning the experience. But even with all my knowledge and experience, there were times when things broke down, sometimes badly. Mainly this happened because:

I run software on unsupported hardware: the Surface Go tablet is designed to work with Windows

Most GNU/Linux software is designed for keyboard and mouse: using it on a tablet with just a touch screen is nearly impossible (try entering your disk encryption key without a keyboard)

I prefer the cutting edge software versions from the Debian unstable repositories, which sometimes have 'breaking' changes...

I created my own weird mix of free software in WillemOS: combining packages and apps that were not necessarily designed to work together

Over the past 6 months (when I used my OS as daily driver) there where at least 3 occasions when the OS broke down at critical moments. Usually after waking up the tablet from hibernation, things went bad...

For instance, one time I had to respond to a service outage, a customer called and they where in direct need for support. Precisely at that moment I ran into trouble getting my networking online after waking up the tablet. I lost precious time, but most of all I felt like an amateur not being able to respond instantly because some stupid networking bug. People pay me big time to help solve their problems, I'd better be ready!

In this "Cloud age" you'd better have a working internet connection - all the time: no time for amateur hour!

Another annoying example is when I had this super great idea for the next big unicorn IT concept... I was ready to use the tablet's pen to capture this spark of creativity when all of a sudden the tablet's digitiser failed to respond. My pen didn't work and the touch screen was all over the place. I was able to fix it by restarting some system services, closing and opening a few apps. But, by the time I was ready, the magical idea was gone!

Pen input is great if it works - but good ideas can be lost if it fails!

You know you're digital pen is lacking trust if you grab for old fashioned pencil and paper...

Lessons learned

Besides getting comfortable with Debian GNU/Linux in a deep, hardcore fashion, I learned a thing or three about the reality of building a system that you want to use on a daily basis.

First of all, reliability is incredibly important. This goes hand in hand with predictability (but they are not necessarily the same). It is not a problem if things break down, but only if you expect them so. This is extremely hard to get right, I have gained huge respect for all the good work that commercial software/hardware vendors have achieved. The performance of a critical tool that you plan to use on a daily basis must be extremely predictable.

Second, to achieve this you'd better use supported hardware and common software concepts. Use a conventional PC with standard components with a normal mouse and keyboard if you plan to use free software (like Debian GNU/Linux). The frictionless tablet experience using free software isn't ready yet.

Third, and this is probably the most important thing: when it works it is magic! All the problems that I encountered were manageable and do not take anything away from the fact that when my OS worked, there sometimes was some true magic.

When everything comes together there is magic: WillemOS doing things no iPad can do

Conclusion

You really have to be a little bit crazy to try to build your own operating system. You're a special kind of crazy if you make your experimental operating system your daily driver!

That's what I did... and I am glad I survived to tell the story. I will try again some day, because the taste of freedom is hard to forget once you have experienced it!

Back to iPad Pro (right) after some an incredible time with WillemOS on Surface Go (left)