STATUS BARS · AUTOMATIONS · SMART HOME · DATA DASHBOARDS
Describe your workspace once.
tauler runs it live.
Unlike a dotfile manager, tauler doesn't just template config files — it holds live state across the programs it drives, and keeps them matching your layout on every change.
Linux · X11 or Wayland · Rust 1.95+ · MIT / Apache-2.0
layout.op.mdx
WORKSPACE BAR
const time = useStringStream("/usr/bin/bash",
'while true; do date +"%H:%M"; sleep 1; done');
<panel anchor="top" height={24} width={ctx.screen_width}>
<Module bin="~/.cargo/bin/tauler-i3">
{(data, events) => (
<div class="flex items-center gap-3">
{/* ...surface styling */}
<WorkspaceList workspaces={data?.workspaces} events={events} />
<span class="ml-auto">{time}</span>
</div>
)}
</Module>
</panel>const kitchen = useHomeAssistant("light.kitchen");
<panel anchor="right" width={64} height={ctx.screen_height}>
<div class="flex flex-col items-center gap-4">
{/* ...surface styling */}
<Toggle bind={kitchen.on} onChange={kitchen.set} />
<span>{kitchen.on ? "ON" : "OFF"}</span>
</div>
</panel>const top = useJson(
"https://hn.algolia.com/api/v1/search?tags=front_page");
<panel anchor="left" width={320} height={ctx.screen_height}>
<div class="flex flex-col gap-2">
{/* ...surface styling */}
<List items={top.hits.slice(0, 5)} />
</div>
</panel>