import { Astal, Gtk, Gdk } from "astal/gtk4"; import { Variable, GLib, bind } from "astal"; import Battery from "gi://AstalBattery"; import Wp from "gi://AstalWp"; import Network from "gi://AstalNetwork"; import Hyprland from "gi://AstalHyprland"; function Wifi() { const network = Network.get_default(); const wifi = bind(network, "wifi"); return ( {wifi.as( (wifi) => wifi && ( ), )} ); } function Audio() { const speaker = Wp.get_default()?.audio.defaultSpeaker!; return ( ); } function BatteryLevel() { const bat = Battery.get_default(); return ( ); } function Time({ format = "%H:%M - %A %e." }) { const time = Variable("").poll( 1000, () => GLib.DateTime.new_now_local().format(format)!, ); return ( ); } function QuickSettings() { return ( ); } function Workspaces() { const hypr = Hyprland.get_default(); return ( {bind(hypr, "workspaces").as((wss) => wss .filter((ws) => !(ws.id >= -99 && ws.id <= -2)) // filter out special workspaces .sort((a, b) => a.id - b.id) .map((ws) => ( )), )} ); } export default function Bar(monitor: Gdk.Monitor) { const { TOP, LEFT, RIGHT } = Astal.WindowAnchor; return ( ); }