diff --git a/QemuVmManager.Core/QemuCommandBuilder.cs b/QemuVmManager.Core/QemuCommandBuilder.cs index dff4e20..7ab1f1a 100644 --- a/QemuVmManager.Core/QemuCommandBuilder.cs +++ b/QemuVmManager.Core/QemuCommandBuilder.cs @@ -322,11 +322,18 @@ public class QemuCommandBuilder } } + // Handle VNC display type with proper argument + if (displayType == "vnc") + { + var vncPort = display.SpicePort > 0 ? display.SpicePort : 5900; + displayType = $"vnc=0.0.0.0:{vncPort}"; + } + _arguments.Add(displayType); // For X11 forwarding compatibility, use std VGA instead of virtio // This avoids GLX/OpenGL issues when forwarding over X11 - if (displayType == "gtk" || displayType == "x11") + if (displayType.StartsWith("gtk") || displayType.StartsWith("x11")) { _arguments.Add("-vga"); _arguments.Add("std"); // Use standard VGA for better X11 compatibility @@ -335,6 +342,12 @@ public class QemuCommandBuilder _arguments.Add("-device"); _arguments.Add("virtio-gpu-pci,edid=off"); // Use virtio-gpu without EDID } + else if (displayType.StartsWith("vnc")) + { + // For VNC, use std VGA for better compatibility + _arguments.Add("-vga"); + _arguments.Add("std"); + } else { _arguments.Add("-vga");