updates to networking

This commit is contained in:
Hannes
2026-08-21 23:30:28 +02:00
parent 2b4d3cd911
commit d734110cc2
3 changed files with 392 additions and 267 deletions
+110 -136
View File
@@ -1,5 +1,4 @@
import QtQuick
import Quickshell
import "../../../config"
import "../states/Network"
@@ -12,9 +11,8 @@ MouseArea {
cursorShape: Qt.PointingHandCursor
onClicked: {
console.log("[Network] Refreshing... current status: " + NetworkState.status)
NetworkState.networkScript.running = false
NetworkState.networkScript.running = true
console.log("[Network] Manual refresh")
NetworkState.updateAll()
}
Rectangle {
@@ -44,167 +42,143 @@ MouseArea {
Column {
spacing: parent.spacing
Text {
text: "interfaceName: " + NetworkState.interfaceName
wrapMode: Text.WordWrap
color: Colors.primary
anchors.horizontalCenter: parent.horizontalCenter
font.pixelSize: Config.font_size_tiny(bar.height)
font.family: Config.font
Repeater {
model: NetworkState.activeConnections
delegate: Column {
spacing: 2
Text {
text: model.interfaceType === "wifi" ? "Wifi" : "Ethernet"
color: Colors.secondary
font.pixelSize: Config.font_size_tiny(bar.height)
font.family: Config.font
font.bold: true
}
Text {
text: " interface: " + model.interfaceName
color: Colors.primary
font.pixelSize: Config.font_size_tiny(bar.height)
font.family: Config.font
}
Text {
text: " connection: " + model.connectionName
color: Colors.primary
font.pixelSize: Config.font_size_tiny(bar.height)
font.family: Config.font
}
Text {
text: " ipv4: " + model.ipv4
color: Colors.primary
font.pixelSize: Config.font_size_tiny(bar.height)
font.family: Config.font
visible: model.ipv4 !== ""
}
Text {
text: " wifi: " + model.wifiName + " signal: " + model.signalStrength + "%"
color: Colors.primary
font.pixelSize: Config.font_size_tiny(bar.height)
font.family: Config.font
visible: model.interfaceType === "wifi"
}
Text {
text: " linkSpeed: " + model.linkSpeed
color: Colors.primary
font.pixelSize: Config.font_size_tiny(bar.height)
font.family: Config.font
visible: model.interfaceType === "ethernet"
}
}
}
Item { width: 1; height: parent.spacing }
Column {
width: parent.width
spacing: 2
Text {
text: "download: " + NetworkState.downloadSpeed
color: Colors.primary
font.pixelSize: Config.font_size_tiny(bar.height)
font.family: Config.font
}
Sparkline {
values: NetworkState.downloadHistory
lineColor: Colors.primary
width: parent.width
}
}
Column {
width: parent.width
spacing: 2
Text {
text: "upload: " + NetworkState.uploadSpeed
color: Colors.primary
font.pixelSize: Config.font_size_tiny(bar.height)
font.family: Config.font
}
Sparkline {
values: NetworkState.uploadHistory
lineColor: Colors.tertiary
width: parent.width
}
}
Column {
width: parent.width
spacing: 2
Text {
text: "ping: " + NetworkState.ping + " ms"
color: Colors.primary
font.pixelSize: Config.font_size_tiny(bar.height)
font.family: Config.font
}
Sparkline {
values: NetworkState.pingHistory
lineColor: Colors.error
width: parent.width
}
}
Text {
text: "interfaceType: " + NetworkState.interfaceType
wrapMode: Text.WordWrap
color: Colors.primary
anchors.horizontalCenter: parent.horizontalCenter
text: "no connection"
color: Colors.error
font.pixelSize: Config.font_size_tiny(bar.height)
font.family: Config.font
visible: !NetworkState.internetAvailable
}
Text {
text: "connectionName: " + NetworkState.connectionName
wrapMode: Text.WordWrap
text: "VPN: disconnected"
color: Colors.primary
anchors.horizontalCenter: parent.horizontalCenter
font.pixelSize: Config.font_size_tiny(bar.height)
font.family: Config.font
visible: NetworkState.vpnExists && !NetworkState.vpnConnected
}
Text {
text: "ipv4: " + NetworkState.ipv4
wrapMode: Text.WordWrap
text: "VPN: " + NetworkState.vpnName
color: Colors.primary
anchors.horizontalCenter: parent.horizontalCenter
font.pixelSize: Config.font_size_tiny(bar.height)
font.family: Config.font
visible: NetworkState.vpnConnected
}
Text {
text: "wifiName: " + NetworkState.wifiName
wrapMode: Text.WordWrap
text: "Tailscale: disconnected"
color: Colors.primary
anchors.horizontalCenter: parent.horizontalCenter
font.pixelSize: Config.font_size_tiny(bar.height)
font.family: Config.font
visible: NetworkState.tailscaleExists && !NetworkState.tailscaleConnected
}
Text {
text: "signalStrength: " + NetworkState.signalStrength
wrapMode: Text.WordWrap
text: "Tailscale: " + NetworkState.tailscaleIp
color: Colors.primary
anchors.horizontalCenter: parent.horizontalCenter
font.pixelSize: Config.font_size_tiny(bar.height)
font.family: Config.font
}
Text {
text: "wifiChannel: " + NetworkState.wifiChannel
wrapMode: Text.WordWrap
color: Colors.primary
anchors.horizontalCenter: parent.horizontalCenter
font.pixelSize: Config.font_size_tiny(bar.height)
font.family: Config.font
}
Text {
text: "wifiFrequency: " + NetworkState.wifiFrequency
wrapMode: Text.WordWrap
color: Colors.primary
anchors.horizontalCenter: parent.horizontalCenter
font.pixelSize: Config.font_size_tiny(bar.height)
font.family: Config.font
}
Text {
text: "linkSpeed: " + NetworkState.linkSpeed
wrapMode: Text.WordWrap
color: Colors.primary
anchors.horizontalCenter: parent.horizontalCenter
font.pixelSize: Config.font_size_tiny(bar.height)
font.family: Config.font
}
Text {
text: "downloadSpeed: " + NetworkState.downloadSpeed
wrapMode: Text.WordWrap
color: Colors.primary
anchors.horizontalCenter: parent.horizontalCenter
font.pixelSize: Config.font_size_tiny(bar.height)
font.family: Config.font
}
Text {
text: "uploadSpeed: " + NetworkState.uploadSpeed
wrapMode: Text.WordWrap
color: Colors.primary
anchors.horizontalCenter: parent.horizontalCenter
font.pixelSize: Config.font_size_tiny(bar.height)
font.family: Config.font
}
Text {
text: "ping: " + NetworkState.ping
wrapMode: Text.WordWrap
color: Colors.primary
anchors.horizontalCenter: parent.horizontalCenter
font.pixelSize: Config.font_size_tiny(bar.height)
font.family: Config.font
}
Text {
text: "internetAvailable: " + NetworkState.internetAvailable
wrapMode: Text.WordWrap
color: Colors.primary
anchors.horizontalCenter: parent.horizontalCenter
font.pixelSize: Config.font_size_tiny(bar.height)
font.family: Config.font
}
Text {
text: "vpnConnected: " + NetworkState.vpnConnected
wrapMode: Text.WordWrap
color: Colors.primary
anchors.horizontalCenter: parent.horizontalCenter
font.pixelSize: Config.font_size_tiny(bar.height)
font.family: Config.font
}
Text {
text: "vpnName: " + NetworkState.vpnName
wrapMode: Text.WordWrap
color: Colors.primary
anchors.horizontalCenter: parent.horizontalCenter
font.pixelSize: Config.font_size_tiny(bar.height)
font.family: Config.font
}
Text {
text: "vpnIp: " + NetworkState.vpnIp
wrapMode: Text.WordWrap
color: Colors.primary
anchors.horizontalCenter: parent.horizontalCenter
font.pixelSize: Config.font_size_tiny(bar.height)
font.family: Config.font
}
Text {
text: "tailscaleConnected: " + NetworkState.tailscaleConnected
wrapMode: Text.WordWrap
color: Colors.primary
anchors.horizontalCenter: parent.horizontalCenter
font.pixelSize: Config.font_size_tiny(bar.height)
font.family: Config.font
}
Text {
text: "tailscaleIp: " + NetworkState.tailscaleIp
wrapMode: Text.WordWrap
color: Colors.primary
anchors.horizontalCenter: parent.horizontalCenter
font.pixelSize: Config.font_size_tiny(bar.height)
font.family: Config.font
visible: NetworkState.tailscaleConnected
}
}
}
}
}