@@ -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