diff --git a/astal/widget/Bar.tsx b/astal/widget/Bar.tsx index ca01e12..7df0482 100644 --- a/astal/widget/Bar.tsx +++ b/astal/widget/Bar.tsx @@ -1,40 +1,43 @@ -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 - - - - + return ( + + + + + + + - - - - - - - + + + + + + ); } diff --git a/astal/widget/network.tsx b/astal/widget/network.tsx index 4623a66..f5c8f0b 100644 --- a/astal/widget/network.tsx +++ b/astal/widget/network.tsx @@ -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) => { - if (primary === AstalNetwork.Primary.WIRED) { - return { label: `🖧 Wired ${wired.device.interface}` } - } - if (wifi.active_access_point !== null) { - return { label: `${ssid} (${strength}%) ` } - } - return { label: `Disconnected ⚠` } - }) +function create_label( + primary: AstalNetwork.Primary, + wired: AstalNetwork.Wired, + wifi?: AstalNetwork.Wifi, +) { + if (primary === AstalNetwork.Primary.WIRED) { + return { label: `🖧 Wired ${wired.device.interface}` }; + } + if (!wifi) { + return disconnected_label; + } + if (wifi.active_access_point !== null) { + 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 ( - - ) + ); } - diff --git a/nix/flake.lock b/nix/flake.lock index 8056122..cbe2af2 100644 --- a/nix/flake.lock +++ b/nix/flake.lock @@ -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": {