Skip to content
CAI
Software that uses CAICheck a score

quickemu-project/quickgui

66.4

Adequate · 19 September 2026

2.3k

lines of production code

Dart

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

Quickgui is a graphical virtual machine manager for Quickemu that provides a desktop interface for creating, configuring, and managing virtual machines. It supports dynamic OS discovery, real-time download progress tracking, and persistent user preferences such as theme and language settings. The application is built with Flutter and is distributed as native packages for Linux and macOS.

Features

Add macOS desktop platform support

This change introduces the macOS desktop target for the application, enabling users to run the app on macOS. The diff adds the complete Xcode project structure (Runner.xcodeproj), including the main application entry points (AppDelegate, MainFlutterWindow), the native menu bar interface (MainMenu.xib), and build configurations. It also registers Flutter plugins for package info, shared preferences, URL launching, and window sizing, and includes a configuration for generating a macOS DMG installer.

macos · high confidence

Added desktop entry for Quickgui

A new desktop file (quickgui.desktop) has been added to the resources, enabling the application to appear in the system's application launcher with the name 'Quickgui', the comment 'An elegant virtual machine manager for the desktop', and categorized under Development and System.

assets/resources · high confidence

Expanded language support with new and updated translations

The application now supports a wider range of languages, including new translations for Czech (cs\_CZ), Welsh (cy), Scottish Gaelic (gd), Hungarian (hu), Japanese (ja), and Occitan (oc), alongside updates to existing files for German, Spanish, French, Dutch, Norwegian, Portuguese (Brazil and Portugal), Russian, and Swedish. This ensures that interface elements such as menus, download statuses, and VM management prompts are localized for these regions.

assets/i18n · high confidence

Initial Linux packaging templates and increased default window size

This update introduces initial packaging configuration files for Debian, RPM, and AppImage formats, enabling users to build and install Quickgui via standard Linux package managers. Additionally, the default application window size on Linux has been increased from 640x480 to 800x720 pixels to provide a better initial viewing area.

linux · high confidence

Initial release of Quickgui with Nix packaging and distribution tooling

This entry marks the initial commit of Quickgui, a graphical virtual machine manager for Quickemu. The release introduces a complete Nix flake (flake.nix, package.nix, devshell.nix) for building and packaging the application on Linux, alongside configuration for the flutter\_distributor tool (distribute\_options.yaml) to generate .deb, .dmg, AppImage, and zip artifacts. The project also includes standard repository documentation such as a Code of Conduct, Contributing guide, Security policy, and an MIT License.

(repo-wide) · high confidence

Initial release of core data models and application settings

This change introduces the foundational data models and settings management for the application. It adds \AppSettings\ to handle theme switching (defaulting to light mode) and dynamic locale selection with fallback logic. New model classes (\OperatingSystem\, \Version\, \Option\, \VmInfo\) and a static icon map (\osIcons\) are defined to structure system and virtual machine information, establishing the data layer for the initial release.

lib/src/model · high confidence

New left-side drawer menu with dark mode and language settings

A new left-side drawer menu (LeftMenu) has been added to the application, providing users with direct access to key settings and app information. This menu includes a toggle to switch between light and dark themes, with the preference saved to local storage, and a dropdown to dynamically change the application language using gettext\_i18n. It also displays the current app version, the Quickemu version it is powered by, and lists the project authors.

lib/src/widgets · high confidence

Behavioural changes

App now supports dynamic theme switching and multi-language localization

The application has been upgraded to support user-configurable dark mode and multi-language localization. Users can now switch between light and dark themes, with the preference persisted via SharedPreferences. Additionally, the app integrates gettext-based internationalization, allowing users to select from a list of supported locales (including English, German, Spanish, French, Italian, Japanese, etc.) which are resolved dynamically based on system settings or user choice.

lib/src · high confidence

Dynamic OS loading, icon discovery, and platform-specific window sizing

The application now dynamically loads operating systems and their options by parsing the CSV output from \quickget --list-csv\, including a fallback for legacy four-column formats. It automatically discovers OS icons from the asset manifest and initializes the app version via \package\_info\_plus\. Additionally, window size constraints are now platform-aware: macOS windows are slightly larger to accommodate title bars, while Linux and other platforms use a larger maximum size. The app also checks for the presence of \quickget\ before proceeding with initialization.

lib · high confidence

Home page UI refactored with Material 3 theming and working directory selection

The home page layout has been restructured into new components (downloader\_menu, downloader\_page\_button, home\_page\_button\_group, logo, main\_menu) to support a clearer workflow. Users can now explicitly select and save the working directory for machine storage via a new button in the downloader menu. The interface has been updated to use Material 3 color schemes and theming, replacing hardcoded colors with theme-aware properties. Additionally, the button components now support optional labels above the main action text, and the download flow includes a check for write permissions to the working directory before proceeding.

_lib/src/widgets/home\page · high confidence

Major UI overhaul with localization, new navigation, and improved download management

The application interface has been significantly redesigned to support internationalization (i18n) via gettext, replacing hardcoded strings with translatable messages across all pages. The main navigation now uses a drawer-based menu (LeftMenu) and a structured main menu, replacing the previous single-page layout. The download experience is enhanced with a dedicated DownloaderPage and a new Downloader widget that provides real-time progress tracking via curl, displays the target folder, and shows a 'Download finished' dialog with desktop notifications. The VM Manager page now supports a wider range of terminal emulators (including alacritty), checks for supported terminals before activating SSH buttons, reads VM ports from .ports files, and uses process\_run for shell commands. Additionally, the app version is now exposed via an AppVersion mixin, and preferences are managed through a generic PreferencesMixin.

lib/src/pages · high confidence

Refactored downloader UI into modular widgets with i18n support

The downloader interface has been restructured into distinct, reusable components: CancelDismissButton, DownloadLabel, and DownloadProgressBar. This change introduces internationalization support via gettext\_i18n for user-facing text (e.g., 'Cancel', 'Dismiss', 'Downloading...') and updates the UI to use Material 3 color schemes. The DownloadLabel widget now handles varied download states and progress reporting for different downloaders (curl, aria2c, zsync), while the CancelDismissButton provides explicit cancellation and dismissal actions.

lib/src/widgets/downloader · high confidence

Dependencies

Updated Flutter dependencies and added macOS support

The project has upgraded its Flutter SDK constraint to version 3.22.0 and updated numerous dependencies, including provider to 6.1.5, package\_info\_plus to 9.0.1, and flutter\_svg to 2.1.0. A new macOS platform support was added, evidenced by the introduction of a Podfile and Podfile.lock, alongside the inclusion of macOS-specific plugins like url\_launcher\_macos and window\_size. Additionally, the window\_size dependency URL was switched from git:// to https:// to resolve network issues, and localization assets were added to the project structure.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 66.

Lenses

  • Code Health 92
  • Architecture 97
  • Maturity 54
  • Readiness 68
  • Security 75
  • Domain Modelling 100

Changes since last survey

  • 298 commits — 252 feature/other, 46 fixes

By area

  • (root) — 118 commits
  • lib/src — 82 commits
  • assets/i18n — 32 commits
  • .github/workflows — 25 commits
  • (repo) — 8 commits
  • assets/quickemu-icons — 7 commits
  • lib/main.dart — 5 commits
  • .github/pull_request_template.md — 3 commits
  • assets/github — 3 commits
  • assets/resources — 3 commits
  • packaging/quickgui_1.0.0-1 — 3 commits
  • .github/dependabot.yml — 2 commits
  • linux/packaging — 2 commits
  • .github/FUNDING.yml — 1 commit
  • .github/ISSUE_TEMPLATE — 1 commit
  • .vscode/settings.json — 1 commit
  • linux/flutter — 1 commit
  • snap/snapcraft.yaml — 1 commit

Notable commits

  • fix: Change logos, and fix README.
  • fix: Fix deprecations and code style
  • fix: Fix icon loading
  • fix: Fix text appearance on download page.
  • fix: Fix: black screen on startup
  • fix: Fixed : actually fixing submodules mess
  • fix: Fixed : missing padding
  • fix: Fixed : notification text.
  • fix: Fixed i18n stuff before merging PR #13
  • fix: Fixed various i18n issues
  • fix: Fixed version number in settings menu, added theme switcher.
  • fix: Fixed/Added/Reordered supported languages.
  • fix: Fixed: 'fr' translation
  • fix: Fixed: remove unwanted text.
  • fix: Fixed: removed 'cy', 'gd' and 'oc' as from locales
  • fix: Merge pull request #110 from criadoperez/fix/criadoperez
  • fix: Updated deprecated code, added check for svg files, fixed visibility of buttons in download page
  • fix: added categories to fix lost & found (#88)
  • fix: build: fix build
  • fix: chore: fixed build
  • …and 278 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

quickemu-project/quickgui was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 19 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 74949e086154f3f2d555f9268778545c78ff2b51 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-13a154b7f5d1.