per-group borders, workspace hover, battery notifications, richer network tooltip
This commit is contained in:
parent
b8ec39f2c9
commit
0eda2c71c9
7 changed files with 69 additions and 16 deletions
|
|
@ -6,33 +6,44 @@ M.BarSection {
|
|||
id: root
|
||||
spacing: M.Theme.moduleSpacing
|
||||
tooltip: {
|
||||
if (root.state === "wifi")
|
||||
return "WiFi: " + root.essid + (root.ifname ? "\nInterface: " + root.ifname : "");
|
||||
if (root.state === "eth")
|
||||
return "Ethernet: " + root.ifname;
|
||||
if (root.state === "linked")
|
||||
return "Linked: " + root.ifname;
|
||||
return "Disconnected";
|
||||
const parts = [];
|
||||
if (root.state === "wifi") {
|
||||
parts.push("WiFi: " + root.essid);
|
||||
if (root.signal) parts.push("Signal: " + root.signal + "%");
|
||||
} else if (root.state === "eth") {
|
||||
parts.push("Ethernet");
|
||||
} else if (root.state === "linked") {
|
||||
parts.push("Linked");
|
||||
} else {
|
||||
return "Disconnected";
|
||||
}
|
||||
if (root.ipAddr) parts.push("IP: " + root.ipAddr);
|
||||
if (root.ifname) parts.push("Interface: " + root.ifname);
|
||||
return parts.join("\n");
|
||||
}
|
||||
|
||||
property string ifname: ""
|
||||
property string essid: ""
|
||||
property string state: "disconnected"
|
||||
property string ipAddr: ""
|
||||
property string signal: ""
|
||||
|
||||
Process {
|
||||
id: proc
|
||||
running: true
|
||||
command: ["sh", "-c", "line=$(nmcli -t -f NAME,TYPE,DEVICE connection show --active 2>/dev/null | head -1); if [ -n \"$line\" ]; then echo \"$line\"; else dev=$(nmcli -t -f DEVICE,STATE device 2>/dev/null | grep ':connected' | grep -v ':unmanaged\\|:unavailable\\|:disconnected\\|:connecting' | head -1 | cut -d: -f1); if [ -n \"$dev\" ]; then echo \"linked:linked:$dev\"; fi; fi"]
|
||||
command: ["sh", "-c", "line=$(nmcli -t -f NAME,TYPE,DEVICE connection show --active 2>/dev/null | head -1); if [ -z \"$line\" ]; then dev=$(nmcli -t -f DEVICE,STATE device 2>/dev/null | grep ':connected' | grep -v ':unmanaged\\|:unavailable\\|:disconnected\\|:connecting' | head -1 | cut -d: -f1); [ -n \"$dev\" ] && line=\"linked:linked:$dev\"; fi; [ -z \"$line\" ] && exit 0; echo \"$line\"; dev=$(echo \"$line\" | cut -d: -f3); ip=$(nmcli -t -f IP4.ADDRESS device show \"$dev\" 2>/dev/null | head -1 | cut -d: -f2); echo \"ip:${ip:-}\"; sig=$(nmcli -t -f GENERAL.SIGNAL device show \"$dev\" 2>/dev/null | head -1 | cut -d: -f2); echo \"sig:${sig:-}\""]
|
||||
stdout: StdioCollector {
|
||||
onStreamFinished: {
|
||||
const line = text.trim();
|
||||
if (!line) {
|
||||
const lines = text.trim().split("\n");
|
||||
if (!lines[0]) {
|
||||
root.state = "disconnected";
|
||||
root.essid = "";
|
||||
root.ifname = "";
|
||||
root.ipAddr = "";
|
||||
root.signal = "";
|
||||
return;
|
||||
}
|
||||
const parts = line.split(":");
|
||||
const parts = lines[0].split(":");
|
||||
root.essid = parts[0] || "";
|
||||
root.ifname = parts[2] || "";
|
||||
if ((parts[1] || "").includes("wireless"))
|
||||
|
|
@ -41,6 +52,15 @@ M.BarSection {
|
|||
root.state = "linked";
|
||||
else
|
||||
root.state = "eth";
|
||||
// Parse extra info lines
|
||||
root.ipAddr = "";
|
||||
root.signal = "";
|
||||
for (let i = 1; i < lines.length; i++) {
|
||||
if (lines[i].startsWith("ip:"))
|
||||
root.ipAddr = lines[i].slice(3);
|
||||
else if (lines[i].startsWith("sig:"))
|
||||
root.signal = lines[i].slice(4);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -70,4 +90,5 @@ M.BarSection {
|
|||
color: root.state === "disconnected" ? M.Theme.base08 : M.Theme.base0C
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue