Commit Graph
13 Commits
Author SHA1 Message Date
James Stringer 66ffaf6dcd Allow GPU selection when creating and editing VMs
Expose available GPUs in the UI and API, preserve the selected device, and fall back to Default GPU if it disappears.
2026-09-15 20:17:11 -04:00
James Stringer 16f28bf010 Move VM editing and snapshots into modals 2026-09-14 20:55:10 -04:00
James Stringer 978f52b8f5 Fix VM setup, storage, snapshots, and viewer behavior 2026-09-07 13:02:28 -04:00
James Stringer 3b14889dd8 Disable spellcheck/autocorrect and grey out disabled checkboxes in the GUI
On macOS the WebView was autocorrecting and autocapitalising VM names,
usernames, paths, and snapshot names as they were typed. There is no clean
public WKWebView toggle, so disable it in the markup: spellcheck="false" on
<body> (inherits to all descendants) plus the WebKit autocorrect="off" /
autocapitalize="off" extensions on the body and the free-text inputs (vm-name,
image-path, admin-user, modal-input). These attributes are inert on Windows, so
the shared web assets behave the same there.

style.css greys a disabled checkbox and its label (opacity, default cursor, via
:has()) so the "Deploy SSH key" option reads as unavailable until "SSH Server"
is enabled.
2026-06-10 19:00:04 -04:00
James Stringer 4e45f8ef93 Host-derived locale/keyboard/timezone/hostname + Linux cred validation + IDD audio fix
Linux guest provisioning now mirrors the host's regional settings instead
of hardcoding en_US / us / America/New_York / "ubuntu":

  - detect_host_locale_settings() reads the current Windows user's locale
    (GetUserDefaultLocaleName), keyboard (GetKeyboardLayoutList) and
    timezone (GetDynamicTimeZoneInformation), translating each to the
    Linux equivalent. Language is gated to the 8 ISO-preinstalled
    languages (de/en/es/fr/it/pt/ru/zh) and falls back to en_US.UTF-8
    otherwise; keyboard + timezone always match the host (every XKB
    layout and IANA zone ships in the squashfs offline).
  - VM name flows through as the guest hostname (mirrors Windows
    ComputerName), staged as /etc/appsandbox-hostname.
  - All four values staged as marker files; firstboot STEP 2/3/4 read
    them with safe fallbacks and STEP 17 echoes the applied values.

Create-VM UI validation is now per-guest-OS, keyed consistently off
osType across validateVmName / validateUsername / validatePassword:
  - Linux hostname: lowercase, RFC-1123 charset
  - Linux username: ^[a-z_][a-z0-9_-]*$, <=32 chars
  - Linux password: all chars allowed (host $6$ hash path), <=255 bytes
  - default name lowercases to "myappsandbox" when Linux is selected
  - OS Type moved above VM Name in the modal; .field-warn now wraps so
    long messages don't break the modal layout; added admin-pass-warn span

IDD audio: drop the unused GetMixFormat call that returned
AUDCLNT_E_UNSUPPORTED_FORMAT on some AMD endpoints and needlessly killed
the audio path. renderfmt is built from the guest header and Initialize
runs with AUTOCONVERTPCM, so the host mix format was never used.
2026-05-30 12:59:54 -04:00
James Stringer 6246186277 Turn Create Sandbox into a modal 2026-04-13 18:08:56 -04:00
James Stringer aa14fd0a36 Remove RDP, auto open IDD as soon as we detect it sending frames on first boot 2026-04-11 22:30:41 -04:00
James Stringer e7d48750de add SSH support, fix a couple bugs
bugs fixed: the agent -> host messaging passing was unreliable
The NAT IP address failed to automatically set on first boot for VMs created from ISO.

SSH doesn't require internet which is cool, goes over Hyper-V sockets.
2026-04-11 00:23:01 -04:00
James Stringer ab54d35e41 Check for and prompt the user to install Virtual Machine Platform 2026-04-10 19:13:14 -04:00
James Stringer 23d600545e More snapshot refactoring 2026-03-21 14:27:32 -04:00
James Stringer 48700686f3 Refactor Snapshot system 2026-03-21 12:36:58 -04:00
James Stringer 80fdfc3946 improve idd display performance and fix edit dropdown in network column 2026-03-19 21:43:04 -04:00
James Stringer 5db568ea4e Initial commit 2026-03-18 18:44:36 -04:00