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