diff --git a/qubesadmin/tools/qvm_start_daemon.py b/qubesadmin/tools/qvm_start_daemon.py index edb4db3..c3c2af5 100644 --- a/qubesadmin/tools/qvm_start_daemon.py +++ b/qubesadmin/tools/qvm_start_daemon.py @@ -127,11 +127,14 @@ def set_keyboard_layout(vm): xkb_rules_names = subprocess.check_output( ['xprop', '-root', '_XKB_RULES_NAMES']).decode() xkb_parsed = re.match(xkb_re, xkb_rules_names) - xkb_layout = [x.split(',')[0] for x in xkb_parsed.groups()[2:4]] - # We keep all options - xkb_layout.append(xkb_parsed.group(5)) - keyboard_layout = '+'.join(xkb_layout) - vm.features['keyboard-layout'] = keyboard_layout + if xkb_parsed: + xkb_layout = [x.split(',')[0] for x in xkb_parsed.groups()[2:4]] + # We keep all options + xkb_layout.append(xkb_parsed.group(5)) + keyboard_layout = '+'.join(xkb_layout) + vm.features['keyboard-layout'] = keyboard_layout + else: + vm.log.warning('Failed to parse layout for %s', vm) except subprocess.CalledProcessError as e: vm.log.warning('Failed to set layout for %s: %s', vm, str(e))