import QtQuick import Quickshell import Quickshell.Io Scope { id: root property string connection: "Disconnected" property int brightness: -1 property var wifiNetworks: [] function setBrightness(change) { Quickshell.execDetached(["brightnessctl", "set", change]); brightnessRefresh.restart(); } function refreshWifi() { if (!wifiQuery.running) wifiQuery.running = true; } Process { id: networkQuery command: ["nmcli", "-t", "-f", "TYPE,NAME", "connection", "show", "--active"] running: true stdout: StdioCollector { onStreamFinished: { const lines = text.trim().split("\n"); for (let line of lines) { const separator = line.indexOf(":"); const type = line.slice(0, separator); if (type === "802-11-wireless" || type === "wifi") { root.connection = line.slice(separator + 1); return; } } for (let line of lines) { const separator = line.indexOf(":"); const type = line.slice(0, separator); if (type === "802-3-ethernet" || type === "ethernet") { root.connection = line.slice(separator + 1); return; } } root.connection = "Disconnected"; } } } Timer { interval: 5000 repeat: true running: true onTriggered: networkQuery.running = true } Process { id: brightnessQuery command: ["brightnessctl", "-m"] running: true stdout: StdioCollector { onStreamFinished: { const fields = text.trim().split(","); root.brightness = fields.length >= 4 ? parseInt(fields[3].replace("%", "")) : -1; } } } Timer { interval: 2000 repeat: true running: true onTriggered: brightnessQuery.running = true } Timer { id: brightnessRefresh interval: 250 onTriggered: brightnessQuery.running = true } Process { id: wifiQuery command: ["nmcli", "-t", "-f", "IN-USE,SSID,SIGNAL", "device", "wifi", "list", "--rescan", "auto"] stdout: StdioCollector { onStreamFinished: { const networks = []; const seen = {}; for (let line of text.trim().split("\n")) { const fields = line.split(":"); if (fields.length < 3) continue; const active = fields.shift() === "*"; const signal = parseInt(fields.pop()); const ssid = fields.join(":").replace(/\\:/g, ":"); if (!ssid || seen[ssid]) continue; seen[ssid] = true; networks.push({ "ssid": ssid, "signal": signal, "active": active }); if (networks.length >= 8) break; } root.wifiNetworks = networks; } } } }