quickshell: fix wifi detection and battery parsing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
45275e29c9
commit
3f61cb6b09
1 changed files with 22 additions and 17 deletions
|
|
@ -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();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue