From 2bed45c886640ae439096bc3a8673a68efaad776 Mon Sep 17 00:00:00 2001 From: Ali Mirjamali Date: Mon, 21 Apr 2025 16:29:37 +0330 Subject: [PATCH] Make `Devices` tab prettier & safer - Hide `Host Bridge` and `PCI Bridge` devices since connecting them to a qube would prevent it from booting - If `port_id` is a path, replace the `-` delimiter with ` -> ` to make it prettier and more meaningful Related: https://github.com/QubesOS/qubes-issues/issues/8681 --- qubesmanager/settings.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/qubesmanager/settings.py b/qubesmanager/settings.py index 1159fcce..2bbb784d 100644 --- a/qubesmanager/settings.py +++ b/qubesmanager/settings.py @@ -1381,9 +1381,14 @@ def __init_devices_tab__(self): self.devices_layout.addWidget(self.dev_list) try: - dom0_devs = \ - list(self.vm.app.domains['dom0']. - devices['pci'].get_exposed_devices()) + dom0_devs = list( + dev + for dev in self.vm.app.domains["dom0"] + .devices["pci"] + .get_exposed_devices() + if dev.interfaces[0].category + != device_protocol.DeviceCategory.PCI_Bridge + ) attached = list( self.vm.devices['pci'].get_assigned_devices(required_only=True)) except qubesadmin.exc.QubesException: @@ -1395,7 +1400,11 @@ def __init_devices_tab__(self): class DevListWidgetItem(QtWidgets.QListWidgetItem): def __init__(self, dev, unknown=False, parent=None): super().__init__(parent) - name = dev.port_id.replace('_', ":") + ' ' + dev.description + name = ( + dev.port_id.replace("_", ":").replace("-", " -> ") + + " " + + dev.description + ) if unknown: name += ' (unknown)' self.setText(name)