Skip to content

Commit c38c7f7

Browse files
Improve SMBIOS value checks and Looking Glass launch
1 parent bc3e2f1 commit c38c7f7

File tree

1 file changed

+17
-16
lines changed

1 file changed

+17
-16
lines changed

bin/omarchy-windows-vm

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -774,6 +774,12 @@ detect_smbios_and_disk_info() {
774774
echo "$value"
775775
}
776776

777+
# Helper to check for placeholder values (case-insensitive)
778+
is_valid_smbios_value() {
779+
local val="${1,,}" # lowercase
780+
[[ -n "$1" ]] && [[ "$val" != "unknown" ]] && [[ "$val" != "not specified" ]] && [[ "$val" != *"to be filled"* ]] && [[ "$val" != "default string" ]] && [[ "$val" != "default" ]] && [[ "$val" != "n/a" ]]
781+
}
782+
777783
# SMBIOS Type 0: BIOS Information
778784
local BIOS_VENDOR="$(sudo -n /usr/bin/dmidecode -s bios-vendor 2>/dev/null | head -1)"
779785
local BIOS_VERSION="$(sudo -n /usr/bin/dmidecode -s bios-version 2>/dev/null | head -1)"
@@ -792,10 +798,10 @@ detect_smbios_and_disk_info() {
792798
local SYS_SERIAL="$(sudo -n /usr/bin/dmidecode -s system-serial-number 2>/dev/null | head -1)"
793799
local SYS_UUID="$(sudo -n /usr/bin/dmidecode -s system-uuid 2>/dev/null | head -1)"
794800

795-
if [[ -n "$SYS_MANUFACTURER" ]] && [[ -n "$SYS_PRODUCT" ]]; then
801+
if is_valid_smbios_value "$SYS_MANUFACTURER" && is_valid_smbios_value "$SYS_PRODUCT"; then
796802
SMBIOS_FLAGS="${SMBIOS_FLAGS} -smbios type=1,manufacturer=$(escape_for_qemu "$SYS_MANUFACTURER"),product=$(escape_for_qemu "$SYS_PRODUCT")"
797-
[[ -n "$SYS_VERSION" ]] && SMBIOS_FLAGS="${SMBIOS_FLAGS},version=$(escape_for_qemu "$SYS_VERSION")"
798-
[[ -n "$SYS_SERIAL" ]] && SMBIOS_FLAGS="${SMBIOS_FLAGS},serial=$(escape_for_qemu "$SYS_SERIAL")"
803+
is_valid_smbios_value "$SYS_VERSION" && SMBIOS_FLAGS="${SMBIOS_FLAGS},version=$(escape_for_qemu "$SYS_VERSION")"
804+
is_valid_smbios_value "$SYS_SERIAL" && SMBIOS_FLAGS="${SMBIOS_FLAGS},serial=$(escape_for_qemu "$SYS_SERIAL")"
799805
# UUID must be in format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (only add if valid)
800806
if [[ "$SYS_UUID" =~ ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$ ]]; then
801807
SMBIOS_FLAGS="${SMBIOS_FLAGS},uuid=$SYS_UUID"
@@ -820,12 +826,6 @@ detect_smbios_and_disk_info() {
820826
local BOARD_VERSION="$(sudo -n /usr/bin/dmidecode -s baseboard-version 2>/dev/null | head -1)"
821827
local BOARD_SERIAL="$(sudo -n /usr/bin/dmidecode -s baseboard-serial-number 2>/dev/null | head -1)"
822828

823-
# Helper to check for placeholder values
824-
is_valid_smbios_value() {
825-
local val="${1,,}" # lowercase
826-
[[ -n "$1" ]] && [[ "$val" != "unknown" ]] && [[ "$val" != "not specified" ]] && [[ "$val" != *"to be filled"* ]] && [[ "$val" != "default string" ]] && [[ "$val" != "default" ]] && [[ "$val" != "n/a" ]]
827-
}
828-
829829
if is_valid_smbios_value "$BOARD_MANUFACTURER" && is_valid_smbios_value "$BOARD_PRODUCT"; then
830830
SMBIOS_FLAGS="${SMBIOS_FLAGS} -smbios type=2,manufacturer=$(escape_for_qemu "$BOARD_MANUFACTURER"),product=$(escape_for_qemu "$BOARD_PRODUCT")"
831831
is_valid_smbios_value "$BOARD_VERSION" && SMBIOS_FLAGS="${SMBIOS_FLAGS},version=$(escape_for_qemu "$BOARD_VERSION")"
@@ -1487,28 +1487,29 @@ launch_after_install() {
14871487
echo " VM is running - access via: http://127.0.0.1:8006"
14881488
return
14891489
fi
1490-
echo "Launching Looking Glass (detached)..."
1491-
sleep 2
1490+
echo ""
1491+
msg_info "Launching Looking Glass..."
14921492

1493-
# Check if user needs temporary kvm group access
1493+
# Check permissions
14941494
local use_sg_kvm=false
14951495
if [[ ! -r /dev/kvmfr0 ]]; then
14961496
ensure_user_in_kvm_group
14971497
local kvm_status=$?
14981498
[[ "$kvm_status" -le 1 ]] && use_sg_kvm=true
14991499
fi
15001500

1501-
# Launch with setsid for proper detachment
1501+
# Launch LG in windowed mode, detached (don't block)
15021502
if [[ "$use_sg_kvm" == true ]]; then
1503-
sg kvm -c "setsid uwsm-app -- looking-glass-client -F >/dev/null 2>&1" &
1503+
sg kvm -c "setsid uwsm-app -- looking-glass-client win:fullScreen=no >/dev/null 2>&1" &
15041504
else
1505-
setsid uwsm-app -- looking-glass-client -F >/dev/null 2>&1 &
1505+
setsid uwsm-app -- looking-glass-client win:fullScreen=no >/dev/null 2>&1 &
15061506
fi
15071507
disown
1508+
15081509
echo ""
15091510
msg_info "Windows VM is running in background"
15101511
echo " → Looking Glass opened in separate window"
1511-
echo "Closing LG window does NOT stop the VM"
1512+
echo "Scroll Lock + F to toggle fullscreen"
15121513
echo " → To stop VM: omarchy-windows-vm stop"
15131514
echo ""
15141515
else

0 commit comments

Comments
 (0)