quickshell: fix wifi detection and battery parsing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
rope 2026-05-26 12:51:21 +01:00
parent 45275e29c9
commit 3f61cb6b09

View file

@ -534,9 +534,10 @@ in
width: 16
height: 30
property string netState: ""
property string netState: "disconnected"
property string netConn: ""
property string netIcon: "\u{f0b1}"
property string netType: ""
property string netIcon: "\u{f0b0}"
Timer {
interval: 5000
@ -552,18 +553,21 @@ in
stdout: SplitParser {
onRead: data => {
let fields = data.split(":");
if (fields.length >= 4 && fields[1] === "ethernet") {
if (fields.length < 4) return;
let type = fields[1];
let state = fields[2];
let conn = fields[3];
if (type !== "ethernet" && type !== "wifi") return;
if (state === "connected") {
netWidget.netState = "connected";
netWidget.netConn = conn;
netWidget.netIcon = "\u{f0200}";
} else {
netWidget.netType = type;
netWidget.netIcon = type === "wifi" ? "\u{f05a9}" : "\u{f0200}";
} else if (netWidget.netState !== "connected") {
netWidget.netState = "disconnected";
netWidget.netConn = "";
netWidget.netIcon = "\u{f0201}";
}
netWidget.netType = type;
netWidget.netIcon = type === "wifi" ? "\u{f05aa}" : "\u{f0201}";
}
}
}
@ -623,9 +627,10 @@ in
stdout: SplitParser {
onRead: data => {
let trimmed = data.trim();
if (/^\\d+$/.test(trimmed)) {
batteryWidget.batteryLevel = parseInt(trimmed);
} else {
let num = parseInt(trimmed);
if (!isNaN(num) && num >= 0 && num <= 100) {
batteryWidget.batteryLevel = num;
} else if (trimmed.length > 0) {
batteryWidget.charging = (trimmed === "Charging");
}
batteryWidget.updateIcon();