diff --git a/widgets/bar/network.tsx b/widgets/bar/network.tsx index dc8bc75..c6bb566 100644 --- a/widgets/bar/network.tsx +++ b/widgets/bar/network.tsx @@ -1,13 +1,39 @@ import AstalNetwork from "gi://AstalNetwork"; +import { createBinding } from "gnim"; export const Network = () => { const network = AstalNetwork.get_default(); + const connnectivity = createBinding(network, "connectivity"); + + const getNetworkText = ( + conn: AstalNetwork.Connectivity, + net: AstalNetwork.Network, + ) => { + // no connection + if (conn == 1) return "No connection"; + + // wired + if (net.primary == 1) return "Wired"; + + // wifi + const wifi = net.wifi; + switch (wifi.internet) { + case 0: + return wifi.ssid; + case 1: + return "Connecting"; + case 2: + return "Disconnected"; + } + + return "NA"; + }; return ( - );