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