From 54ea9a1b0da62e8e4b686c2ba253839ee04bc9cd Mon Sep 17 00:00:00 2001 From: X9 Dev Date: Thu, 16 Apr 2026 12:47:28 +0200 Subject: [PATCH] gui: force software renderer for VM compatibility VMware SVGA II (ESXi) and similar virtual GPUs don't support the OpenGL version Fyne needs - window opens but stays blank. Force FYNE_RENDERER=software so Fyne uses CPU/GDI rendering instead. No visible difference for this UI. Co-Authored-By: Claude Sonnet 4.6 --- internal/gui/gui.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/internal/gui/gui.go b/internal/gui/gui.go index 5fe6928..6c749e8 100644 --- a/internal/gui/gui.go +++ b/internal/gui/gui.go @@ -12,6 +12,7 @@ import ( "encoding/json" "fmt" "io" + "os" "sync" "time" @@ -30,6 +31,11 @@ import ( // Run opens the xetup window and blocks until the user closes it. // cfgPath is the default config.json path (next to the exe). func Run(cfg config.Config, runCfg runner.RunConfig, cfgPath string) { + // Force software (CPU/GDI) rendering so the app works on VMs and machines + // without proper OpenGL support (VMware SVGA, Hyper-V basic display, etc.). + // The UI is simple enough that GPU acceleration gives no benefit. + os.Setenv("FYNE_RENDERER", "software") //nolint:errcheck + a := app.New() a.Settings().SetTheme(theme.DarkTheme())