Quickly download, create and run VM of any#TODO operating system.
  • Shell 74.8%
  • Roff 17.6%
  • Python 7%
  • Makefile 0.6%
Find a file
Claude 29ce40f05d
Add quickget/qget switch and test suite
qget:
- Add QGET_TEST_MODE guard so the script can be sourced for unit
  testing without executing the main logic

dh:
- Auto-detect getter tool (qget preferred, quickget fallback) in
  set_variables(); export as GETTER
- Add getter_list_os() wrapper using GETTER --list for portable
  OS enumeration
- Replace hard-coded quickget calls with $GETTER in
  renew_supported_vms(), renew_ready_vms(), and execmd strings
- Fix releases/editions/description parsing (sed instead of cut -f2
  which fails on colon-space separators)
- Add DH_TEST_MODE guard to prevent execution when sourcing for tests

action:
- Auto-detect getter tool at startup; export as GETTER
- Add --qget / -q and --quickget / -Q flags to override detection

tests/:
- tests/lib.sh: shared assert helpers (assert_eq, assert_ne,
  assert_match, assert_cmd, assert_fn_exists) with pass/fail counting
- tests/test_dh.sh: 31 unit tests covering set_variables, GETTER,
  getter_list_os, root_check, wayland_check, and all required
  function definitions
- tests/test_qget.sh: 23 unit tests covering os_support,
  test_result formatting, is_valid_language, check_hash, and all
  utility functions
- tests/test_action_files.sh: 784 structural tests verifying every
  action file has OSNAME, PRETTY, HOMEPAGE (valid URL), DESCRIPTION,
  releases_() and get_() functions
- tests/run_tests.sh: top-level runner executing all three suites

https://claude.ai/code/session_01M2UXTtQwzcGCNRnFiP2efQ
2026-02-28 19:42:33 +00:00
.github/workflows New website template 2026-02-21 11:52:53 +01:00
actions Fix bugs in dh, pclinuxos; add easyos, fedora, mageia, zorin actions 2026-02-28 19:25:15 +00:00
debian 🔄 created local 'debian' from remote 'dh/debian' 2025-11-13 22:42:58 +01:00
docs New website template 2026-02-21 11:52:53 +01:00
documents New website 2026-02-19 11:27:12 +01:00
Formula feat: Homebrew Install for macos Sequoia (#1693) 2025-09-02 15:30:01 +01:00
locale 🔄 created local 'locale' from remote 'dh/locale' 2025-11-13 22:43:05 +01:00
public 🔄 created local 'public' from remote 'dh/public' 2025-11-13 22:43:05 +01:00
results 🔄 created local 'results' from remote 'dh/results' 2025-11-13 22:43:05 +01:00
src Fix links and email in README.md 2026-02-21 21:16:56 +01:00
tests Add quickget/qget switch and test suite 2026-02-28 19:42:33 +00:00
TODO 🔄 created local 'TODO' from remote 'dh/TODO' 2025-11-13 22:43:05 +01:00
.editorconfig New website 2026-02-19 11:27:12 +01:00
_config.yml 🔄 created local '_config.yml' from remote 'dh/_config.yml' 2025-11-13 22:42:57 +01:00
about.desktop New website 2026-02-19 11:27:12 +01:00
action Add quickget/qget switch and test suite 2026-02-28 19:42:33 +00:00
chunkcheck 🔄 created local 'chunkcheck' from remote 'dh/chunkcheck' 2025-11-13 22:42:58 +01:00
CNAME 🔄 created local 'CNAME' from remote 'dh/CNAME' 2025-11-13 22:42:57 +01:00
CODE_OF_CONDUCT.md 🔄 created local 'CODE_OF_CONDUCT.md' from remote 'dh/CODE_OF_CONDUCT.md' 2025-11-13 22:42:57 +01:00
CONTRIBUTING.md 🔄 created local 'CONTRIBUTING.md' from remote 'dh/CONTRIBUTING.md' 2025-11-13 22:42:57 +01:00
devshell.nix 🔄 created local 'devshell.nix' from remote 'dh/devshell.nix' 2025-11-13 22:42:58 +01:00
dh Add quickget/qget switch and test suite 2026-02-28 19:42:33 +00:00
dh.desktop New website 2026-02-19 11:27:12 +01:00
distrohopper.conf New website 2026-02-19 11:27:12 +01:00
flake.lock 🔄 created local 'flake.lock' from remote 'dh/flake.lock' 2025-11-13 22:42:58 +01:00
flake.nix 🔄 created local 'flake.nix' from remote 'dh/flake.nix' 2025-11-13 22:42:58 +01:00
ISOs.list 🔄 created local 'ISOs.list' from remote 'dh/ISOs.list' 2025-11-13 22:43:05 +01:00
lib.sh New website template 2026-02-21 11:52:53 +01:00
LICENSE 🔄 created local 'LICENSE' from remote 'dh/LICENSE' 2025-11-13 22:42:57 +01:00
package.nix 🔄 created local 'package.nix' from remote 'dh/package.nix' 2025-11-13 22:42:58 +01:00
q q: fix 2025-11-13 22:43:06 +01:00
qget Add quickget/qget switch and test suite 2026-02-28 19:42:33 +00:00
qrun 🔄 created local 'qrun' from remote 'dh/qrun' 2025-11-13 22:42:58 +01:00
quickemu 🔄 synced local 'quickemu' with remote 'dh/quickemu' 2025-11-13 22:43:05 +01:00
quickfzf 🔄 created local 'quickfzf' from remote 'dh/quickfzf' 2025-11-13 22:42:58 +01:00
quickget 🔄 created local 'quickget' from remote 'dh/quickget' 2025-11-13 22:42:58 +01:00
quickreport 🔄 created local 'quickreport' from remote 'dh/quickreport' 2025-11-13 22:42:58 +01:00
quicktui 🔄 created local 'quicktui' from remote 'dh/quicktui' 2025-11-13 22:42:58 +01:00
README-web.md New website 2026-02-19 11:27:12 +01:00
README.md Update website 2026-02-19 22:15:48 +01:00
SECURITY.md 🔄 created local 'SECURITY.md' from remote 'dh/SECURITY.md' 2025-11-13 22:42:57 +01:00
stars.md Regenerate build artifacts. 2026-02-15 02:42:49 +00:00
web-create New website template 2026-02-21 11:52:53 +01:00
web-deploy New website template 2026-02-21 11:52:53 +01:00

This repository contains a multiple tools

Can be used together with quickemu

Welcome DistroHoppers

I made some user interfaces for quickemu...

🦚 dh GUI and TUI using yad

🕊️ quickfzf TUI using fzf

🐲 quicktui TUI using gum (🚧 usable but under heavy development)

🐅 qrun TUI using gum asciicast

🦈 q TUI using gum

and

open source version without removed proprietary OSes (Mac,Windows)

quickget-

Extended version with more distros then upstream quickemu

quickget+

quickget+ with gum UI

quickget+gum

quickget+ with easybashgui UI

quickget+ebg

Enjoy...

repo

Everything could work

Thanks to:

Alt

quickemu Introduction

Quickemu

Quickemu

Quickly create and run optimised Windows, macOS and Linux virtual machines:

Made with 💝 for Tux (Linux) & Apple (macOS)

 Discord   Mastodon   Twitter   LinkedIn 

Introduction

Quickemu is a wrapper for the excellent QEMU that automatically "does the right thing" when creating virtual machines. No requirement for exhaustive configuration options. You decide what operating system you want to run and Quickemu takes care of the rest 🤖

  • quickget automatically downloads the upstream OS and creates the configuration 📀
  • quickemu enumerates your hardware and launches the virtual machine with the optimum configuration best suited to your computer

The original objective of the project was to enable quick testing of Linux distributions where the virtual machines and their configuration can be stored anywhere (such as external USB storage or your home directory) and no elevated permissions are required to run the virtual machines.

Today, Quickemu includes comprehensive support for macOS, Windows, most of the BSDs, novel non-Linux operating systems such as FreeDOS, Haiku, KolibriOS, OpenIndiana, ReactOS, and more.

Features

  • Host support for Linux and macOS
  • macOS Sonoma, Ventura, Monterey, Big Sur, Catalina & Mojave
  • Windows 10 and 11 including TPM 2.0
  • Windows Server 2022 2019 2016
  • Ubuntu and all the official Ubuntu flavours
  • Nearly 1000 operating system editions are supported!
  • Full SPICE support including host/guest clipboard sharing
  • VirtIO-webdavd file sharing for Linux and Windows guests
  • VirtIO-9p file sharing for Linux and macOS guests
  • QEMU Guest Agent support; provides access to a system-level agent via standard QMP commands
  • Samba file sharing for Linux, macOS and Windows guests (if smbd is installed on the host)
  • VirGL acceleration
  • USB device pass-through
  • Smartcard pass-through
  • Automatic SSH port forwarding to guests
  • Network port forwarding
  • Full duplex audio
  • Braille support
  • EFI (with or without SecureBoot) and Legacy BIOS boot

The presenters of Linux Matters 🐧🎙️ are the creators of each of the principal Quickemu projects. We discussed Quickemu's 2024 reboot in Episode 30 - Quickemu Rising From the Bashes.

Linux Matters Podcast
Linux Matters Podcast

Quick start

Once Quickemu is installed, there are two simple steps to create and run a virtual machine:

  • quickget automatically downloads the ISO image for the operating system you want to run and creates a configuration file for the virtual machine.
quickget nixos unstable minimal
  • quickemu starts the virtual machine using the configuration file created by quickget.
quickemu --vm nixos-unstable-minimal.conf

Execute quickget (with no arguments) to see a list of all the supported operating systems.

Demo

Documentation

The wiki describes how to get up and running with Quickemu and also covers more advanced configuration and usage.