import { App, Astal, Gtk, Gdk, Widget, astalify } from "astal/gtk4" import { GLib, Variable } from "astal" import Hyprland from "gi://AstalHyprland" import Tray from "gi://AstalTray" import Battery from "gi://AstalBattery" import Network from "gi://AstalNetwork" import AstalTray from "gi://AstalTray?version=0.1" type Workspace = { id: number focus: () => void } type Hyprland = { workspaces: Workspace[] focusedWorkspace: Workspace | null } function Bat() { const bat = Battery.get_default() return Battery: {bat.get_percentage() * 100}% } function Net() { const network = Network.get_default() return {network.wifi.enabled} } function Workspaces() { const hypr = Hyprland.get_default() return { hypr.workspaces.filter(ws => !(ws.id >= -99 && ws.id < -2)) .sort((a, b) => a.id - b.id) .map(ws => ( )) } } function SysTray() { const tray = AstalTray.get_default() print(tray.get_items.length) return {tray.get_items().map(item => ( ))} } function Time({ }) { const time = Variable("").poll(1000, () => GLib.DateTime.new_now_local().format("%H:%M")!) return