Making Network via singleton

This commit is contained in:
Hannes
2026-03-26 19:43:42 +01:00
parent 3cda978d7f
commit bc698a1d01
3 changed files with 59 additions and 18 deletions
@@ -0,0 +1,37 @@
pragma Singleton
import QtQuick
import Quickshell
import Quickshell.Io
QtObject {
id: root
property string status: "..."
property bool running: false
// Timer property
property Timer networkTimer: Timer {
interval: 10000
repeat: true
running: true
onTriggered: networkScript.running = true
}
// Process property
property Process networkScript: Process {
running: true
command: ["sh", "-c", Quickshell.env("HOME") + "/.config/quickshell/modules/bar/scripts/Network.sh"]
stdout: StdioCollector {
onStreamFinished: {
root.status = this.text.trim()
console.log("Network status:", root.status)
}
}
}
Component.onCompleted: {
networkScript.start()
networkTimer.start()
}
}
+1
View File
@@ -0,0 +1 @@
singleton NetworkState NetworkState.qml
+21 -18
View File
@@ -3,6 +3,7 @@ import Quickshell
import Quickshell.Hyprland import Quickshell.Hyprland
import Quickshell.Io import Quickshell.Io
import "../../../colors" import "../../../colors"
import "../states/Network" as Global
MouseArea { MouseArea {
id: networkButton id: networkButton
@@ -13,7 +14,8 @@ MouseArea {
cursorShape: Qt.PointingHandCursor cursorShape: Qt.PointingHandCursor
onClicked: { onClicked: {
networkStatus.running = true Global.NetworkState.networkScript.start()
// networkStatus.running = true
} }
Rectangle { Rectangle {
@@ -26,30 +28,31 @@ MouseArea {
Text { Text {
id: networkText id: networkText
text: Global.NetworkState.status
anchors.centerIn: parent anchors.centerIn: parent
font.pixelSize: 26 font.pixelSize: 26
font.family: "Nerd Font" font.family: "Nerd Font"
color: networkButton.containsMouse ? Colors.tertiary_fg : networkText.text === "󰤭 /󱐤" ? Colors.error : Colors.primary color: networkButton.containsMouse ? Colors.tertiary_fg : networkText.text === "󰤭 /󱐤" ? Colors.error : Colors.primary
} }
Process { // Process {
id: networkStatus // id: networkStatus
command: ["sh", "-c", Quickshell.env("HOME") + "/.config/quickshell/modules/bar/scripts/Network.sh"] // command: ["sh", "-c", Quickshell.env("HOME") + "/.config/quickshell/modules/bar/scripts/Network.sh"]
running: true // running: true
stdout: StdioCollector { // stdout: StdioCollector {
onStreamFinished: { // onStreamFinished: {
networkText.text = this.text.trim() // networkText.text = this.text.trim()
// console.log("networkScript networkText:", this.text.trim()) // // console.log("networkScript networkText:", this.text.trim())
} // }
} // }
} // }
Timer { // Timer {
interval: 10000 // interval: 10000
running: true // running: true
repeat: true // repeat: true
onTriggered: networkStatus.running = true // onTriggered: networkStatus.running = true
} // }
} }
} }