package dependency: network-manager This service is somewhat incomplete,
feel free to open a PR to improve it
connectivity: "unknown" | "none" | "portal" | "limited" | "full"primary: "wifi" | "wired"wired: Wiredwifi: Wifivpn: VpntoggleWifi: () => voidssid: stringstrength: number 0..100frequency: numberinternet: "connected" | "connecting" | "disconnected"enabled: booleanaccess-points: AccessPointicon-name: stringstate: string:
NM.DeviceState as
lowercase stringscan: () => voidaccess points are not a GObjects, just a regular js objects meaning you can't bind to it or use notify::prop signal
bssid: stringaddress: stringlastSeen: numberssid: stringactive: booleanstrength: numberfrequency: numbericonName: string icon name representing its signal strengthinternet: "connected" | "connecting" | "disconnected"state: "enabled" | "disabled" | "unknown"state: string:
NM.DeviceState as
lowercase stringicon-name: stringconnection-added: (uuid: string)connection-removed: (uuid: string)connections: VpnConnection[]activated-connections: VpnConnection[]getConnection: (uuid: string) => VpnConnectionuuid: stringid: string: The unique name of the connectionstate: "connected" | "connecting" | "disconnecting" | "disconnected"vpn-state:
"unknown" | "prepare" | "needs_auth" | "connect" | "ip_config" | "activated" | "failed" | "disconnected"icon-name: stringsetConnection: (connect: boolean) => voidconst network = await Service.import("network");
const WifiIndicator = () =>
Widget.Box({
children: [
Widget.Icon({
icon: network.wifi.bind("icon_name"),
}),
Widget.Label({
label: network.wifi.bind("ssid")
.as((ssid) => ssid || "Unknown"),
}),
],
});
const WiredIndicator = () =>
Widget.Icon({
icon: network.wired.bind("icon_name"),
});
const NetworkIndicator = () =>
Widget.Stack({
children: {
wifi: WifiIndicator(),
wired: WiredIndicator(),
},
shown: network.bind("primary").as((p) => p || "wifi"),
});