Why Desktop Linux Sucks

Now that’s a clickbaity title, you might say, but it’s actually the title of a video I watched the other day:

Linus Torvalds is a fun speaker, so go watch the video. I’ll wait here.

That was the bait, now here is the switch: I don’t think that Linux sucks as a desktop. I have been using Linux as my desktop computing environment since SGI IRIX stopped being a thing, so maybe in 2001, and it’s fine. There have been advances, there have been serious setbacks (Gnome 3, anyone?), but overall it lets me do what I need to do and otherwise doesn’t try to get in my way. I even gave Mac OS X an honest shot when I bought a Macbook Pro in 2008, but it just felt really constraining, so I wiped it after about a month and installed Linux instead and never regretted it. I have a partition with Windows 10 in it on my home computer’s hard drive, but I can’t remember the last time I booted into it.

Side note: How fun it is to have a dual-boot Windows 10 partition to play video games! Hey, I have an hour of free time, let’s play something quick. Okay, shut down Linux, boot into Windows, no problem. Oh, I haven’t booted into Windows in a few weeks, so there is an OS update that needs to be installed. Oh, I can’t skip this and have to wait for it to complete before I can log in. Oh, it took 30 minutes to install the OS update. Well, I guess I’ll switch back over to Linux and try playing a game again in a few weeks or so. At which point there will be another OS update and the cycle repeats.

The Horrors of Distributing Linux Software

But back to the topic at hand. The reason I’m linking this video is that Mr. Torvalds talks about the difficulty of distributing desktop software for Linux, and on that I agree with him 100%. I have created and am maintaining several Linux-exclusive software packages that are used by a significant number of non-technical people, the Augmented Reality Sandbox being the main one. It’s a pretty big piece of software comprising three components: the Vrui VR toolkit, the Kinect 3D video capture package, and the AR Sandbox application itself. Vrui is a general-purpose VR toolkit that covers the gamut from tracking 6-DOF input devices and reprojecting and distortion-correcting rendered images onto an HMD’s display to high-level user interaction and UI widgets. It does a lot more than that, too. The main point is that Vrui is system software, and is therefore deeply tied into the operating system, and relies on a large number of system libraries and interfaces. Which means that packaging and releasing it in binary form is an absolute nightmare. This video spoke to me.

Continue reading

Vive la Vrui!

It has been way too long that I have publicly released a new version of the Vrui VR toolkit. The main issue was that I had been chasing evolving hardware, from the Oculus Rift DK1 to the Oculus Rift DK2, and now to HTC’s Vive. During that long stretch of time, I was never happy with the state of support of any of these devices.

That’s finally changed. I have been working on full native support for HTC’s Vive head-mounted display over the last few months (with the first major break-through in May), and I think it’s working really well. There are still a lot of improvements to make and sharp edges to sand off, but I feel it is worthwhile releasing the software as it is now to get some early testing done. So without much further ado, here is Vrui-4.2-004.

Figure 1: Vrui’s ClusterJello toy application running on an HTC Vive head-mounted display. Recorded using a second-generation Microsoft Kinect camera (Kinect-for-Xbox-One).
Continue reading