ags-config/widget/workspaces.tsx
2025-04-21 18:40:29 +02:00

24 lines
648 B
TypeScript

import Hyprland from "gi://AstalHyprland"
import { bind, } from "astal"
export default function Workspaces() {
const hypr = Hyprland.get_default()
return <box cssClasses={["Workspaces"]}>
{bind(hypr, "workspaces").as((workspaces) =>
workspaces
.filter(ws => !(ws.id >= -99 && ws.id < -2))
.sort((a, b) => a.id - b.id)
.map((ws) => (
<button
onClicked={() => ws.focus()}
cssClasses={bind(hypr, "focusedWorkspace").as((active) =>
ws === active ? ["focused"] : [],
)}
>
{ws.id}
</button>
)),
)}
</box >
}