I have been using Qubes as a daily driver for a little over a decade. I love the concept. I wanted a way to keep my work and personal life separate, and being able to create VMs/domains for each worked very well. I also like the ability to spin up a fresh disposable browser. I’ve wanted a client hypervisor ever since XenClient hit the market (and was subsequently abandoned). Qubes seemed like the perfect alternative.
However, I’ve recently been thinking about moving on and trying something else. Qubes is great from a security standpoint, but it’s not the best for performance or developer use. For example, the lack of GPU acceleration really slows things down and limits the ability to use programs that can leverage GPUs. Chromium-based browsers are able to use GPUs to improve performance, and recently, I had trouble launching Joplin because it apparently now uses GPU acceleration. I could just add more RAM and pick a different note taking app, but it’s becoming a frustration for me.
I’ve also never been able to do certain development work because Qubes makes it difficult. Since GPU acceleration isn’t available, I’ve never gotten into AI development. I’d really like to, but I can’t do it with Qubes.
Also, Android development is a massive challenge. Perhaps there’s a way to make it work, but I’ve never been able to use the built-in virtual Android environment in Android Studio. I’ve gotten around this by using USB debugging, but this requires frequently reattaching my device to the target VM. It’s not ideal.
My hope when I started using Qubes was that I could use it to quickly spin up VMs to use for development, but the default network isolation makes this impractical. Yes, there are ways around this, but they are incredibly manual. The Qubes Network Server project seems to make this easier, but I wish this was a default option for the OS.
Other little things are just a pain. I’ve never been able to get Bluetooth headphones to work despite following community guides. Also, my Logitech wireless mouse sends two clicks for every single click, so that makes it unusable. Heck, I can’t even get printing to work right and have to reconfigure printers after every restart. There may be a fix for this, but it shouldn’t require following an online guide just to make printing work.
I really wish Qubes offered some less secure options that could be enabled for users who want the functionality of a client type 1 hypervisor but aren’t quite as concerned with security. I know this isn’t the core focus of Qubes, but it would make the OS a viable option for power users. A lot of developers would probably consider Qubes if it was a little more flexible on this front.
Until then, I’m thinking of going to a vanilla Debian installation with KVM enabled and virt-manager installed. This will allow me to create and manage VMs for development with network access. To emulate separate domains, I’m thinking of rolling my own setup using separate user accounts. By modifying launcher entries under a global desktop user, I’ll launch programs using sudo so that they launch as the correct user but run natively in a single desktop session.
This type of setup won’t be as secure as Qubes, but it provides similar functionality with additional features and flexibility. I don’t know of any other OS that provides something like this, so if you are aware of projects that do, I would really be interested in feedback from other users.
Thanks again for this great project. While it may not fit my personal needs as well as I hoped, it is a valuable platform for those in the security industry. I just wish it was a little more flexible in order to appeal to a broader audience of users.