From 9baa312d0ee9a238400602f63e7b1ed938b63909 Mon Sep 17 00:00:00 2001 From: voidarc Date: Mon, 10 Aug 2026 20:12:04 +0100 Subject: [PATCH] added private ip on network view --- Bar/Network.qml | 3 ++- Services/NetworkManager.qml | 25 ++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/Bar/Network.qml b/Bar/Network.qml index 8bfc485..b9342fa 100644 --- a/Bar/Network.qml +++ b/Bar/Network.qml @@ -142,7 +142,8 @@ Container { color: Colors.subtext1 fontSize: 12 fontWeight: 5 - text: "Connected on: " + networkColumn.networkInfo["adapterName"] + text: networkColumn.networkInfo["ipAddress"] + " on " + + networkColumn.networkInfo["adapterName"] } StyledText { diff --git a/Services/NetworkManager.qml b/Services/NetworkManager.qml index f7ee42c..263f256 100644 --- a/Services/NetworkManager.qml +++ b/Services/NetworkManager.qml @@ -1,6 +1,7 @@ pragma Singleton import QtQuick import Quickshell +import Quickshell.Io import Quickshell.Networking Singleton { @@ -9,6 +10,7 @@ Singleton { property bool connectedWifi: root.defaultAdapter != null && root.defaultAdapter.connected && root.defaultAdapter.type == DeviceType.Wifi property NetworkDevice defaultAdapter: Networking.devices.values[0] || null + property string ipAddress: "0.0.0.0" function getConnectedNetworks(networksArr) { let connectedNetworks = []; @@ -61,7 +63,8 @@ Singleton { "networkName": networkName, "networkStrength": networkStrength, "icon": networkIcon, - "saved": primaryNetwork.known + "saved": primaryNetwork.known, + "ipAddress": root.ipAddress }; return outputDict; } @@ -96,4 +99,24 @@ Singleton { return false; } } + + function refreshIpAddress() { + ipProcess.running = true; + } + + onDefaultAdapterChanged: { + refreshIpAddress(); + } + + Process { + id: ipProcess + + command: ["sh", "-c", "ip -4 -o addr show dev " + root.defaultAdapter.name + + " scope global | awk '{sub(\"/.*\", \"\", $4); printf $4}'"] + running: true + + stdout: StdioCollector { + onStreamFinished: root.ipAddress = this.text + } + } }