fix: having no wifi crashes network module
This commit is contained in:
@@ -1,23 +1,25 @@
|
||||
import { App, Astal, Gtk, Gdk } from "astal/gtk3"
|
||||
import Workspaces from "./workspaces"
|
||||
import Audio from "./audio"
|
||||
import NetworkModule from "./network"
|
||||
import Cpu from "./cpu-widget"
|
||||
import Ram from "./ram"
|
||||
import Disk from "./disk"
|
||||
import Battery from "./battery"
|
||||
import Time from "./time"
|
||||
import { App, Astal, Gtk, Gdk } from "astal/gtk3";
|
||||
import Workspaces from "./workspaces";
|
||||
import Audio from "./audio";
|
||||
import NetworkModule from "./network";
|
||||
import Cpu from "./cpu-widget";
|
||||
import Ram from "./ram";
|
||||
import Disk from "./disk";
|
||||
import Battery from "./battery";
|
||||
import Time from "./time";
|
||||
|
||||
export default function Bar(gdkmonitor: Gdk.Monitor) {
|
||||
const { BOTTOM, LEFT, RIGHT } = Astal.WindowAnchor
|
||||
const { BOTTOM, LEFT, RIGHT } = Astal.WindowAnchor;
|
||||
|
||||
//@ts-ignore
|
||||
return <window
|
||||
return (
|
||||
<window
|
||||
className="Bar"
|
||||
gdkmonitor={gdkmonitor}
|
||||
exclusivity={Astal.Exclusivity.EXCLUSIVE}
|
||||
anchor={BOTTOM | LEFT | RIGHT}
|
||||
application={App}>
|
||||
application={App}
|
||||
>
|
||||
<centerbox>
|
||||
<box hexpand halign={Gtk.Align.START}>
|
||||
<box className="nix-icon">
|
||||
@@ -37,4 +39,5 @@ export default function Bar(gdkmonitor: Gdk.Monitor) {
|
||||
</box>
|
||||
</centerbox>
|
||||
</window>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,26 +1,47 @@
|
||||
import { bind, Variable } from "astal";
|
||||
import AstalNetwork from "gi://AstalNetwork?version=0.1";
|
||||
|
||||
export default function NetworkModule() {
|
||||
const network = AstalNetwork.get_default()
|
||||
const wifi = network.wifi;
|
||||
const wired = network.wired
|
||||
const disconnected_label = { label: `Disconnected ⚠` };
|
||||
|
||||
const derived = Variable.derive([bind(network, "primary"), bind(wifi, "ssid"), bind(wifi, "strength")], (primary, ssid, strength) => {
|
||||
function create_label(
|
||||
primary: AstalNetwork.Primary,
|
||||
wired: AstalNetwork.Wired,
|
||||
wifi?: AstalNetwork.Wifi,
|
||||
) {
|
||||
if (primary === AstalNetwork.Primary.WIRED) {
|
||||
return { label: `🖧 Wired ${wired.device.interface}` }
|
||||
return { label: `🖧 Wired ${wired.device.interface}` };
|
||||
}
|
||||
if (!wifi) {
|
||||
return disconnected_label;
|
||||
}
|
||||
if (wifi.active_access_point !== null) {
|
||||
return { label: `${ssid} (${strength}%) ` }
|
||||
return { label: `${wifi.ssid} (${wifi.strength}%) ` };
|
||||
}
|
||||
return disconnected_label;
|
||||
}
|
||||
|
||||
export default function NetworkModule() {
|
||||
const network = AstalNetwork.get_default();
|
||||
const wifi = network.wifi;
|
||||
const wired = network.wired;
|
||||
|
||||
let derived;
|
||||
if (!wifi) {
|
||||
derived = Variable.derive([bind(network, "primary")], (primary) => {
|
||||
return create_label(primary, wired);
|
||||
});
|
||||
} else {
|
||||
derived = Variable.derive(
|
||||
[bind(network, "primary"), bind(wifi, "ssid"), bind(wifi, "strength")],
|
||||
(primary) => {
|
||||
return create_label(primary, wired, wifi);
|
||||
},
|
||||
);
|
||||
}
|
||||
return { label: `Disconnected ⚠` }
|
||||
})
|
||||
|
||||
return (
|
||||
<box className="status-box">
|
||||
<label
|
||||
label={derived((v) => v.label)} />
|
||||
<label label={derived((v) => v.label)} />
|
||||
</box>
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
24
nix/flake.lock
generated
24
nix/flake.lock
generated
@@ -83,11 +83,19 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
<<<<<<< Updated upstream
|
||||
"lastModified": 1752780124,
|
||||
"narHash": "sha256-5dn97vIYxn6VozKePOQSDxVCsrl38nDdMJXx86KIJH0=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "c718918222bdb104397762dea67e6b397a7927fe",
|
||||
=======
|
||||
"lastModified": 1751990210,
|
||||
"narHash": "sha256-krWErNDl9ggMLSfK00Q2BcoSk3+IRTSON/DiDgUzzMw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "218da00bfa73f2a61682417efe74549416c16ba6",
|
||||
>>>>>>> Stashed changes
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -155,11 +163,19 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
<<<<<<< Updated upstream
|
||||
"lastModified": 1752620740,
|
||||
"narHash": "sha256-f3pO+9lg66mV7IMmmIqG4PL3223TYMlnlw+pnpelbss=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "32a4e87942101f1c9f9865e04dc3ddb175f5f32e",
|
||||
=======
|
||||
"lastModified": 1751792365,
|
||||
"narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
|
||||
>>>>>>> Stashed changes
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -229,11 +245,19 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
<<<<<<< Updated upstream
|
||||
"lastModified": 1752544651,
|
||||
"narHash": "sha256-GllP7cmQu7zLZTs9z0J2gIL42IZHa9CBEXwBY9szT0U=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "2c8def626f54708a9c38a5861866660395bb3461",
|
||||
=======
|
||||
"lastModified": 1751606940,
|
||||
"narHash": "sha256-KrDPXobG7DFKTOteqdSVeL1bMVitDcy7otpVZWDE6MA=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "3633fc4acf03f43b260244d94c71e9e14a2f6e0d",
|
||||
>>>>>>> Stashed changes
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
Reference in New Issue
Block a user