Examples
Complete configs from examples/, recorded as they run. Copy any of them into your config folder and change what you like.
DemoFive widgets in one halo.json: a top bar, a desktop clock (defineWidget props: formats and corner), an app dock (apps from props), an OSD that hides itself, and a load-average sparkline (poll, computed, reactive lists); colors shared through theme.ts.SignalsThe reactive core on its own: a counter, derived values, a 20 Hz progress bar and a list rebuilt from a signal.
AeroSpaceAeroSpace spaces: each display's workspaces, the focused one highlighted, updated on every workspace change. aerospace.ts builds them from halo trigger events and aerospace queries; copy it into your config. The README 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.