diff --git a/Modules/Bar/Widgets/WiFi.qml b/Modules/Bar/Widgets/WiFi.qml index 83b4689..193eae7 100644 --- a/Modules/Bar/Widgets/WiFi.qml +++ b/Modules/Bar/Widgets/WiFi.qml @@ -27,6 +27,7 @@ NIconButton { icon: { try { + if (NetworkService.ethernet) return "lan" let connected = false let signalStrength = 0 for (const net in NetworkService.networks) { @@ -36,10 +37,10 @@ NIconButton { break } } - return connected ? NetworkService.signalIcon(signalStrength) : "wifi" + return connected ? NetworkService.signalIcon(signalStrength) : "wifi_find" } catch (error) { Logger.error("WiFi", "Error getting icon:", error) - return "wifi" + return "signal_wifi_bad" } } tooltipText: "WiFi Networks" diff --git a/Services/NetworkService.qml b/Services/NetworkService.qml index 65378f0..43e31e7 100644 --- a/Services/NetworkService.qml +++ b/Services/NetworkService.qml @@ -16,6 +16,7 @@ Singleton { property string detectedInterface: "" property string lastConnectedNetwork: "" property bool isLoading: false + property bool ethernet: false Component.onCompleted: { Logger.log("Network", "Service started") @@ -43,6 +44,7 @@ Singleton { function refreshNetworks() { isLoading = true + checkEthernet.running = true existingNetwork.running = true } @@ -415,6 +417,24 @@ Singleton { } } } + + property Process checkEthernet: Process { + id: checkEthernet + running: false + command: ["nmcli", "-t", "-f", "DEVICE,TYPE,STATE", "device"] + stdout: StdioCollector { + onStreamFinished: { + var lines = text.split("\n") + for (var i = 0; i < lines.length; ++i) { + var parts = lines[i].split(":") + if (parts[1] === "ethernet" && parts[2] === "connected") { + root.ethernet = true + break + } + } + } + } + } property Process addConnectionProcess: Process { id: addConnectionProcess