diff --git a/qui/tray/domains.py b/qui/tray/domains.py index 8a438642..ba5f7ee7 100644 --- a/qui/tray/domains.py +++ b/qui/tray/domains.py @@ -39,17 +39,6 @@ t = gettext.translation("desktop-linux-manager", fallback=True) _ = t.gettext -STATE_DICTIONARY = { - "domain-pre-start": "Transient", - "domain-start": "Running", - "domain-start-failed": "Halted", - "domain-paused": "Paused", - "domain-unpaused": "Running", - "domain-shutdown": "Halted", - "domain-pre-shutdown": "Transient", - "domain-shutdown-failed": "Running", -} - class IconCache: def __init__(self): @@ -815,7 +804,12 @@ def update_state(self, state): self.hide_spinner() else: self.show_spinner() - colormap = {"Paused": "grey", "Crashed": "red", "Transient": "red"} + colormap = { + "Paused": "grey", + "Crashed": "red", + "Starting": "red", + "Halting": "red", + } if state in colormap: self.name.label.set_markup( f"{self.vm.name}" @@ -1072,16 +1066,14 @@ def add_domain_item(self, _submitter, event, vm, **_kwargs): if vm.klass == "RemoteVM": return - state = STATE_DICTIONARY.get(event) - if not state: - try: - state = vm.get_power_state() - except exc.QubesException: - # VM might have been already destroyed - if vm not in self.qapp.domains: - return - # or we might not have permission to access its power state - state = "Halted" + try: + state = vm.get_power_state() + except exc.QubesException: + # VM might have been already destroyed + if vm not in self.qapp.domains: + return + # or we might not have permission to access its power state + state = "NA" domain_item = DomainMenuItem(vm, self, self.icon_cache, state=state) if not event: # menu item creation at widget start; we can assume @@ -1175,14 +1167,11 @@ def update_domain_item(self, vm, event, **kwargs): return item = self.menu_items[vm] - if event in STATE_DICTIONARY: - state = STATE_DICTIONARY[event] - else: - try: - state = vm.get_power_state() - except Exception: # pylint: disable=broad-except - # it's a fragile DispVM - state = "Transient" + try: + state = vm.get_power_state() + except Exception: # pylint: disable=broad-except + # it's a fragile DispVM + state = "NA" item.update_state(state) @@ -1349,6 +1338,7 @@ def key_event(self, _unused, event): def main(): """main function""" qapp = qubesadmin.Qubes() + qapp.cache_enabled = True dispatcher = qubesadmin.events.EventsDispatcher(qapp) stats_dispatcher = qubesadmin.events.EventsDispatcher( qapp, api_method="admin.vm.Stats"