KDE is finally getting a native virtual machine manager called "Karton"

6 hours ago 1

Karton logo

If you spend most of your time in GNOME, you've probably used something like GNOME Boxes to spin up virtual machines without much hassle. We actually gave it a shoutout in our list of essential Linux apps for newcomers this year. KDE users, however, have often found themselves relying on tools such as virt-manager or even GNOME Boxes itself. While functional, these don't always feel perfectly at home within the Plasma desktop, and the old qt-virt-manager, a Qt-based alternative, has seen its development stall for years.

Now, a new Virtual Machine Manager is in the works for KDE Plasma. The project, named Karton, has roots dating back to Aaron Rainbolt's original effort to build a QEMU frontend using its command line interface. Later, KDE developer Harald Sitter took over and developed it as a Google Summer of Code project.

Currently, Karton is actively developed by Derek Lin, a University of Waterloo student participating in Google Summer of Code 2025. His primary aim is to deliver a virtual machine manager that truly belongs in the KDE ecosystem.

To feel right at home in KDE, Karton is being built with Qt Quick and Kirigami. It uses the libvirt API to handle virtual machines and could eventually work across different platforms.

Right now, development is focused on getting the core parts in place. Lin is working on a new domain installer that ditches direct virt-install calls in favor of libosinfo, which helps detect OS images and generate the right libvirt XML for setting up virtual machines more precisely. He's still refining device configuration and working on broader hypervisor support. Another key part of the work is building a custom SPICE viewer using Qt Quick from scratch:

If you're curious, here's the list of specific deliverables Lin included in his GSoC proposal, though he notes the proposal itself is a bit outdated:

  • Install and configure virtual machines through libvirt’s XML format instead of virt-install CLI

    • Add ability to configure commonly used options in UI

    • Allows for more fine-tuned control of virtual machine options

  • Implement a custom SPICE viewer to allow users to interact with and view the active virtual machine (instead of virt-viewer

  • Virtual machine snapshots to restore/backup previous states

  • Intuitive UI for displaying virtual machines

    • Making a user-friendly and aesthetically pleasing GUI by addressing community feedback

    • Referencing MacOS UTM list layout and a preview of the VM

    • Making UI convergent (mobile-friendly)

  • Retrieving virtual machine status updates using the libvirt API virEventRegisterImpl function instead of using the default built-in event loop.

    • Allows it to be integrated with custom Qt event loops

    • Reduces current latency with loading virtual machine list page

  • Adding a browse tool which lists commonly installed operating systems

  • GPU/memory usage graph as done in virt-manager

  • Feature to switch between connecting to QEMU hypervisor with session (user) and system (root).

    • GNOME Boxes seems to only support “session”, however adding support for “system” could be useful for non-KVM/Linux backends like bhyve (FreeBSD) or Hyper-V

For those interested in the timeline, Lin's GSoC proposal says the official GSoC coding starts June 2, 2025. The goal is to have a working app ready by the midterm evaluation around July 14, 2025, with the final submission due September 1, 2025.

Read Entire Article