import type { Monitor } from "@/services/monitors"; import { bind, idle, register, Variable } from "astal"; import { App, Astal, Gdk, Gtk, Widget } from "astal/gtk3"; import { sidebar as config } from "config"; import Alerts from "./alerts"; import Audio from "./audio"; import Connectivity from "./connectivity"; import Dashboard from "./dashboard"; import Packages from "./packages"; import Time from "./time"; export const paneNames = ["dashboard", "audio", "connectivity", "packages", "alerts", "time"] as const; export type PaneName = (typeof paneNames)[number]; export const switchPane = (monitor: Monitor, name: PaneName) => { const sidebar = App.get_window(`sidebar${monitor.id}`) as SideBar | null; if (sidebar) { if (sidebar.visible && sidebar.shown.get() === name) sidebar.hide(); else sidebar.show(); sidebar.shown.set(name); } }; export const awaitSidebar = (monitor: Monitor) => new Promise(resolve => { let sidebar: SideBar | null = null; const awaitSidebar = () => { sidebar = App.get_window(`sidebar${monitor.id}`) as SideBar | null; if (sidebar) resolve(sidebar); else idle(awaitSidebar); }; idle(awaitSidebar); }); const getPane = (name: PaneName) => { if (name === "dashboard") return ; if (name === "audio") return