I used Virtualbox first, switched to GNOME Boxes, then to Virt-manager as it was said to be better.

But in the end, at least on my Laptop, it sucks extremely. I have no OpenGL and extreme lag. Saw a Video about setting up QEMU, followed instructions and the result was very fast, but the viewer was not good.

I am using my existing virt-manager images, read them and display as a kdialog. There I choose it, the choice gets piped into the qemu command. Afterwards the display opens.

Either I have spice working but no OpenGL, or I have VNC and OpenGL but its very slow anyways.

Fedora KDE (Kinoite), Amd graphics card laptop

Edit: some more details.

I want a fast, wayland-native client. Some AI told me spice-gtk is the only one there, which would be not that nice on KDE as it would pull all the GTK dependencies.

Can you run all that stuff in a Podman container? I would just use a Fedora39 Distrobox then.

I used this script before:

#!/bin/bash

# Define the directory where qcow2 images are stored
IMAGE_DIR="/var/lib/libvirt/images/"

# Get a list of qcow2 images in the directory
IMAGE_LIST=$(pkexec sudo ls "$IMAGE_DIR" | grep -E '\.qcow2$')

# Create an array for the menu items
menu_items=()

# Populate the array with tag-item pairs
for image in ${IMAGE_LIST[@]}; do
    menu_items+=("$image" "${image%.qcow2}")
done

# Use kdialog to display a menu and get the selected image
selected_image=$(kdialog --menu "Select a qcow2 image:" "${menu_items[@]}" --title "QEMU Launcher")

# Check if the user selected an image
if [ -n "$selected_image" ]; then
    # QEMU with Virt-Viewer
    pkexec sudo qemu-system-x86_64 -enable-kvm -cpu host -smp 4 -m 8192 -device virtio-gpu-gl  -display spice-app,gl=on -drive file=${IMAGE_DIR}${selected_image},format=qcow2


else
    # User canceled or closed the dialog
    echo "Operation canceled by user."
fi

# Use remote-viewer with title
virt-viewer spice+unix:///tmp/.RTN4C2/spice.sock --title "QEMU - ${selected_image%.qcow2}"
# or this viewer?
# remote-viewer spice://localhost:5900 --title "QEMU - ${selected_image%.qcow2}"
# or spice-gtk?
  • Quack Doc
    link
    7
    edit-2
    1 year ago

    what Guest OS are you running? IF it is windows, the opengl driver is still a WIP and hasnt been merged yet IIRC.

    I always reccomend using qemu cli, for qemu-cli you can do something like

    -device virtio-gpu-gl  -display spice-app,gl=on
    

    or if you are doing remote VMs you can use a remote spice viewer and connect to the port like so

    -device virtio-gpu-gl  -display egl-headless  -spice port=3001,disable-ticketing
    

    EDIT: for more reading, you can go through these docs I wrote for bliss. they are oriented more for android but they are still widely applicable https://docs.blissos.org/installation/install-in-a-virtual-machine/advanced-qemu-config/