Rewrite with libvirt backend

This merge request rewrites Karton with a new UI and implements a libvirt backend.

I made a VM list that listens to libvirt events to update the UI. There's some basic functionality for starting and stopping the VM as well as viewing which is currently done through virt-viewer. VM installation page has minimal configuration as it creates VMs through the virt-install CLI.

Notes:

  • You will need to specify an os-variant when making a new VM
    • For possible options, run osinfo-query os from libosinfo library.
  • VM deletion button only undefines the domain.
    • After undefining, VM images are still stored in /home/username/.local/share/libvirt/images.
  • List of dependencies can be found in readme

Warning: Still testing, running could potentially break existing libvirt VMs

TODO:

  • finish VM creation dialog using virt-install
  • fix updating VM list info
  • OS icons as previously implemented (on hold)
  • merge start/stop button (on hold)
  • deletion button

Future ideas:

  • implement Qt-Quick SPICE client instead of using virt-viewer
  • configure and make domain .xml files directly with libvirt instead of using virt-install
  • UTM-like sidebar
  • system monitor for graphing CPU/memory usage
  • VM snapshots
  • more options for displaying the list like Boxes
  • settings page (change b/w system and session hypervisor connection)
  • browse for common OS' like Boxes

For more details, check out my GSoC proposal! Any feedback is much appreciated!

Gallery: image image image

Edited by Derek Lin

Merge request reports

Loading