import { App } from "astal/gtk3" import { Variable, GLib, bind } from "astal" import { Astal, Gtk, Gdk } from "astal/gtk3" import Hyprland from "gi://AstalHyprland" import Battery from "gi://AstalBattery" import Wp from "gi://AstalWp" import Network from "gi://AstalNetwork" import Tray from "gi://AstalTray" function SysTray() { const tray = Tray.get_default() return {bind(tray, "items").as(items => items.map(item => ( ["dbusmenu", ag])} menuModel={bind(item, "menuModel")}> )))} } function Wifi() { const network = Network.get_default() const wifi = bind(network, "wifi") return {wifi.as(wifi => wifi && ( ))} } function AudioSlider() { const speaker = Wp.get_default()?.audio.defaultSpeaker! return speaker.volume = value} value={bind(speaker, "volume")} /> } function BatteryLevel() { const bat = Battery.get_default() 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 => ( )) )} } function FocusedClient() { const hypr = Hyprland.get_default() const focused = bind(hypr, "focusedClient") return {focused.as(client => ( client && } function Time({ format = "%d.%m %H:%M" }) { const time = Variable("").poll(1000, () => GLib.DateTime.new_now_local().format(format)!) return