GSoC 2025 Project Intro: Porting ISO Image Writer GUI to Kirigami and adding some glitter
Hi All !
Sun is finally out here in Vancouver 🌞 and GSOC 2025 has started. I will be working on porting ISO Image writer to Kirigami and adding some nice-to-have features.
Current State of ISO Image Writer
The current version of ISO Image writer is written in C++ with QT Widgets. Although it does the job of flashing an ISO onto a usb disk theres much room from improvment.
The current version offers:
- A straightforward interface for selecting ISO files and target USB devices
- Verification of ISO checksums and digital signatures
- Safety measures to prevent accidental overwrites of system drives
- Support for multiple platforms (Linux, Windows, macOS) through various package formats
Despite its functionality, the current implementation has several limitations:
- Requires manual downloading of ISO images before use
- Interface is not consistent with modern KDE applications as they move towards using Kirigami, the GUI framework built on top of QML
- Inconsistencies in the Ul usage
Inconsistencies in the current UI
File Type Verification: The current implementation does not properly validate that selected files are actually image files. During testing, it was possible to flash a PDF to a thumb drive, which could lead to data corruption and user confusion. The Kirigami implementation will include proper file type checking and validation before allowing write operations.
Drag and Drop Functionality: While the current application includes drag and drop as a feature, it doesn't function correctly in practice. ( In my testing I found it to work sparingly on Windows and never once on Linux/ I3)
ISO Fetching from URL: The current URL-based ISO fetching functionality shows significant limitations:
- On Linux platforms, the implementation has several issues, it fails to download an image from a provided URL the same way it works on Windows
- On Windows, while the download works, it fails to display a progress bar, leaving users uncertain about download status
Cross-Platform Progress Indication: Currently, ISO Image Writer implements platform-specific progress indication with varying degrees of completeness:
- Windows: Uses the Windows Taskbar Progress feature to display writing progress even when the application is minimized
- macOS: Uses mac specific mechanism to display progress on the dock
- Linux: Contains an incomplete external progress bar implementation (
externalprogressbar_lin.cpp
)
As a nice-to-have enhancement, I will work on completing the Linux external progress bar functionality.
The long awaited rewrite
The Kirigami implementation of ISO Image Writer will focus on the following features:
Feature | Description | Implementation Approach |
---|---|---|
Kirigami-based UI | port the interface using Kirigami components to ensure | Implement responsive layouts with Kirigami components following the original design scheme |
Pre-authentication | Implement a mechanism to authenticate ahead of time, allowing users to select an ISO, initiate the process and leave it unattended | Utilize the already existing functions including ensureElevated() in commons.cpp |
Downloadable Image Listing | Add functionality to list and download ISO images directly from within the application | Porting the functionality of quickget from quickemu project |
Cross-platform Compatibility | Ensure the application works consistently across Linux, Windows, and macOS | Maintain platform-specific code where necessary while maximizing shared code |
Improved Error Handling and | Provide clear error messages and improving the current state of features | Design a comprehensive error handling system with user-friendly messaging |
Improving documentation | Provide clear documentation about the features for users | Update the README to include clear examples and feature-list |
Taking a Look at Fedora Media Writer

Fedora Media Writer is a powerful tool from the Fedora suite designed for creating bootable USB drives. Built using QML, it's a great reference point for designing our improved ISO image writer.
One of the standout features—the moat, so to speak—of this application is its ability to automatically download ISOs. This eliminates the multi-step process of manually locating, downloading, and then flashing an ISO. With Fedora Media Writer, you simply choose a release, and the software handles the download and flashing seamlessly.

You pick the flavor you want, and the app does the rest. This automation significantly improves user experience, and implementing a similar feature is a key goal for our upcoming rewrite.
ISO Image Listing
The mantra "Don't reinvent the wheel" is deeply embedded in most developers’ philosophy. While I have some reservations about applying it universally (that’s a conversation for another time), using well-established and tested tools is often the fastest way to provide users with a reliable experience.
The Quickemu project is a great example. It allows users to quickly spin up virtual machines for a wide range of operating systems. One of its most useful features is a searchable list of OSes. The user picks one, and the tool fetches the ISO and launches a VM with that OS.
This is exactly what we need. Unlike Fedora Media Writer, which only supports Fedora releases, Quickemu supports nearly 1,000 operating system editions. Adapting this logic into our application would allow users to select any supported OS, download it automatically, and start flashing—all within one interface and seamlessly.
That's all for this introduction.
If you have questions, feedback, or ideas, feel free to reach out to me at @holychicken:matrix.org