Add bluetooth icon
This commit is contained in:
56
quickshell/services/BluetoothService.qml
Normal file
56
quickshell/services/BluetoothService.qml
Normal file
@@ -0,0 +1,56 @@
|
||||
import QtQuick
|
||||
import Quickshell.Io
|
||||
|
||||
Item {
|
||||
id: root
|
||||
signal devicesFound(var devices)
|
||||
property var connectedDevices: []
|
||||
|
||||
function deviceListChanged(newList) {
|
||||
if (newList.length !== root.connectedDevices.length) {
|
||||
return true;
|
||||
}
|
||||
for (let i = 0; i < newList.length; i++) {
|
||||
if (newList[i].mac !== root.connectedDevices[i].mac ||
|
||||
newList[i].name !== root.connectedDevices[i].name) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
Process {
|
||||
id: bluetoothConnectedDevicesProcess
|
||||
command: ["bluetoothctl", "devices", "Connected"]
|
||||
stdout: StdioCollector {
|
||||
onStreamFinished: {
|
||||
if (!this.text) {
|
||||
root.connectedDevices = [];
|
||||
root.devicesFound([]);
|
||||
return;
|
||||
}
|
||||
var devices = this.text.trim().split("\n").map(line => {
|
||||
var parts = line.split(" ");
|
||||
return {
|
||||
mac: parts[1],
|
||||
name: parts.slice(2).join(" ")
|
||||
};
|
||||
});
|
||||
|
||||
if (root.deviceListChanged(devices)) {
|
||||
root.connectedDevices = devices;
|
||||
root.devicesFound(devices);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Timer {
|
||||
interval: 2000
|
||||
running: true
|
||||
repeat: true
|
||||
onTriggered: bluetoothConnectedDevicesProcess.running = true
|
||||
}
|
||||
|
||||
Component.onCompleted: bluetoothConnectedDevicesProcess.running = true
|
||||
}
|
||||
@@ -68,7 +68,6 @@ Item {
|
||||
|
||||
stdout: StdioCollector {
|
||||
onStreamFinished: {
|
||||
console.log("GPU usage data:", this.text);
|
||||
if (!this.text) {
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user