Examples
Complete configs from examples/, recorded as they run. Copy any of them into your config folder and change what you like.
DemoFive widgets on one display: a top bar, a desktop clock, an app launcher strip, an OSD that hides itself, and a load-average sparkline (poll, computed, reactive lists) split into its own file.SignalsThe reactive core on its own: a counter, derived values, a 20 Hz progress bar and a list rebuilt from a signal.
AeroSpaceA bar with live AeroSpace workspaces. aerospace.ts builds them from halo trigger events and aerospace queries; copy it into your config. The main.tsx header has the aerospace.toml lines it needs.
LauncherInput: a keyboard-focused app launcher (<Input>, arrows/Enter/Esc, hover, click, enter/exit animation) toggled with halo toggle launcher, plus a corner button with a popup attached to it.Shapes<Shape>: a CPU progress ring (ring(), track, strokeEnd with a spring) with its percentage overlaid (position: "absolute"), a CPU history sparkline, and a plain SVG path.IOFiles and processes: a click counter saved across reloads (readFile/writeFile), a note followed with watchFile (edit it from a terminal), and live latency from a long-running ping (spawn).
ServicesEvery built-in service: a status strip (front app, CPU, memory, network, volume, battery) and a volume OSD that appears on changes; scroll the volume chip to adjust it.AnimationEvery animation layer, on timers: style transitions with springs, keyframes, enter/exit on list items and on a surface, layout transitions, and a JS tween.