feat: add network widget

This commit is contained in:
tux
2025-06-09 05:08:26 +05:30
parent 9f7a23809e
commit 70936fabff
3 changed files with 25 additions and 0 deletions

View File

@@ -34,6 +34,7 @@
apps apps
battery battery
tray tray
network
]; ];
}; };
@@ -53,6 +54,7 @@
apps apps
battery battery
tray tray
network
]; ];
}) })
]; ];

View File

@@ -3,6 +3,7 @@ import { FocusedClient, WorkspaceButton } from "./workspace";
import { Battery } from "./battery"; import { Battery } from "./battery";
import { Tailscale } from "./tailscale"; import { Tailscale } from "./tailscale";
import { Time } from "./time"; import { Time } from "./time";
import { Network } from "./network";
export const WINDOW_NAME = "bar"; export const WINDOW_NAME = "bar";
@@ -43,6 +44,7 @@ const Center = () => {
const End = () => { const End = () => {
return ( return (
<box spacing={10}> <box spacing={10}>
<Network />
<Tailscale /> <Tailscale />
<Battery /> <Battery />
<Time /> <Time />

21
widgets/bar/network.tsx Normal file
View File

@@ -0,0 +1,21 @@
import { bind } from "astal";
import AstalNetwork from "gi://AstalNetwork";
export const Network = () => {
const network = AstalNetwork.get_default();
const wifi = bind(network, "wifi");
return (
<box cssClasses={["pill"]} visible={wifi.as(Boolean)}>
{wifi.as(
(wifi) =>
wifi && (
<box spacing={10}>
<image iconName={bind(wifi, "iconName")} />
<label label={bind(wifi, "ssid")} />
</box>
),
)}
</box>
);
};