diff --git a/modules/Bluetooth.qml b/modules/Bluetooth.qml index ee55f22..9b7a888 100644 --- a/modules/Bluetooth.qml +++ b/modules/Bluetooth.qml @@ -41,8 +41,23 @@ M.BarSection { onStreamFinished: root._parse(text) } } + // Event-driven: watch BlueZ DBus property changes + Process { + id: btMonitor + running: true + command: ["sh", "-c", "dbus-monitor --system \"interface='org.freedesktop.DBus.Properties',member='PropertiesChanged',path_namespace='/org/bluez'\" 2>/dev/null"] + stdout: SplitParser { + splitMarker: "\n" + onRead: _debounce.restart() + } + } Timer { - interval: M.Modules.bluetooth.interval || 5000 + id: _debounce + interval: 500 + onTriggered: proc.running = true + } + Timer { + interval: 60000 running: true repeat: true onTriggered: proc.running = true diff --git a/modules/Network.qml b/modules/Network.qml index 47c9efc..71b4b69 100644 --- a/modules/Network.qml +++ b/modules/Network.qml @@ -68,8 +68,24 @@ M.BarSection { } } } + // Event-driven: re-poll on any network change + Process { + id: monitor + running: true + command: ["nmcli", "monitor"] + stdout: SplitParser { + splitMarker: "\n" + onRead: _debounce.restart() + } + } Timer { - interval: M.Modules.network.interval || 5000 + id: _debounce + interval: 300 + onTriggered: proc.running = true + } + // Fallback poll + Timer { + interval: 60000 running: true repeat: true onTriggered: proc.running = true diff --git a/modules/PowerProfile.qml b/modules/PowerProfile.qml index c3a2426..483ca0e 100644 --- a/modules/PowerProfile.qml +++ b/modules/PowerProfile.qml @@ -28,8 +28,23 @@ M.BarIcon { onStreamFinished: root.profile = text.trim() } } + // Event-driven: watch power-profiles-daemon DBus changes + Process { + id: ppMonitor + running: true + command: ["sh", "-c", "dbus-monitor --system \"interface='org.freedesktop.DBus.Properties',member='PropertiesChanged',path='/net/hadess/PowerProfiles'\" 2>/dev/null"] + stdout: SplitParser { + splitMarker: "\n" + onRead: _debounce.restart() + } + } Timer { - interval: M.Modules.powerProfile.interval || 5000 + id: _debounce + interval: 300 + onTriggered: proc.running = true + } + Timer { + interval: 60000 running: true repeat: true onTriggered: proc.running = true