What qdistro is

qdistro is a single-tenant Linux distribution inspired by Qubes OS, but built on commodity hardware and commodity software. Instead of Xen and a custom UI, it runs on a standard Tumbleweed install with a libweston compositor, a Python/Qt/QML userspace, and a layered isolation model that lets you choose how much containment each app gets.

The goal isn’t maximum security — it’s the best isolation you can get without giving up your laptop. Everything is designed to be LLM-modifiable: the shell, the admin approval flow, the send-to plugins, the password vault. If you can describe the change you want, an LLM can write the QML or Python to make it happen.

There is no ISO image. Instead, there’s a single bootstrap script that takes a fresh Tumbleweed install to a fully configured qdistro system in 10–20 minutes.

What works in v0.1

Here is what you can actually do right now:

What doesn’t yet

We’re being honest about the gaps so you know what you’re getting into:

How to try it

The full step-by-step is in the “Try qdistro” section of the README. In short: install Tumbleweed, clone three repos, run the bootstrap script as root, reboot, and you’re in. The whole thing takes about 30 minutes including the Tumbleweed install.

What we want feedback on

We need real humans running this on real hardware. Specifically:

  1. Installation friction. Was the bootstrap script clear? Did any package fail to install? Was the reboot-to-qdgreeter step smooth?

  2. First-boot experience. Does the qdgreeter login screen make sense? Is it clear how to launch apps and switch between them?

  3. Tier 3 and tier 4 usability. Can you actually run a useful workload in a container or VM silo? Is the admin approval flow for cross-silo actions intuitive or annoying?

  4. Missing features. What would make this your daily driver? What’s the one thing you need that isn’t here yet?

File one issue per thing you find at codeberg.org/qdistro/qdistro/issues. The most valuable feedback looks like: “I followed step X and step Y was unclear / broken.”

This is v0.1. Things will break. That’s the point of a public test release — so we can fix them before v1.0.