Docs — layout, themes & power

Shape the office to the terminal it's in.

The same floor runs in a widescreen and in an ssh session half that wide. Layouts set the geometry, themes set the paint, and the power governor decides how hard the office renders when nothing on it is moving.

Layouts

Normal is the floor plan. Everything else is a slash command.

Out of the box the office boots into the normal layout: the full sidebar with spelled-out tab names and the full-height composer. This is the reference everything else narrows, widens or hides.

normal — the default layout, full sidebar, full composer
theboringfloor normal layout: full sidebar with spelled-out tab names next to the floor

/compact on narrows the sidebar to 30 columns, swaps the tab labels for short letters and drops the input to two rows — for narrow windows and side-by-side terminals. It holds for this session; if you want it to stick, /mode compact is the same choice persisted to brain.json (/mode normal walks back).

compact — 30-column sidebar, short tab letters, two-row input
theboringfloor compact layout: 30-column sidebar, short tab letters, two-row input

/wide <n> sets the sidebar width directly — 26 to 100 columns, 0 restores the default of 80 — and persists. /zen goes the other way: fullscreen floor, minimal chrome, the sidebar entirely out of the way, any key exits. /focus floor is its alias.

/wide 100 — the sidebar stretched past its 80-column default
theboringfloor wide layout: sidebar widened beyond the 80-column default
Themes

Five paints, previewed before you commit.

The office ships five themes. Pick one at launch with --theme noir|paper|mono|dracula|solarized, or in-app with /theme <name> — either way the choice persists to ~/.config/theboringfloor/theme. /themes lists them without leaving the chat.

The pleasant part is the try-on: arrowing through the slash popover's /theme matches applies each one as a live preview while you pass it. enter commits what you land on. You never switch a theme blind.

noirthe default — dim room, accent emberpaperlight, for daylight desksmonogreys only, no accentdraculathe classic purplesolarizedthe measured palette
theme dracula — the whole office, repainted live
theboringfloor dracula theme applied to the floor and sidebar
Power governor

The office goes cheap when nothing moves.

/power auto|performance|saver sets the render cadence and writes back to brain.json. Auto is the default and the one most people should keep: it reads whether anything is live — streaming, pending replies, walkers, open modals, ambient bubbles — and slows the tick the moment the floor goes quiet.

modebusyidledrift (1 min quiet)
auto (default)180ms ticks1s3s
performance150ms flat
saver400ms2s

What saver actually slows is the cadence the ambience rides: walk cycles, tea-machine steam, server LEDs, the typing pulse. It never drops events and never slows the boss — the backend keeps its own pace regardless. Underneath all three modes the renders are memoized (a frame digest on the app; (size, planGen, tick, renderRev) on the floor), and the agentmemory board poll backs off 2× after five quiet syncs, capped at 4× and reset on change. Battery on a laptop is a render problem, and performance is 150ms flat for when it isn't.

/power autoread the room, default/power saver400ms busy, 2s idle/power performance150ms flat
Ceilings

What this doesn't do yet.

  • /compact narrows the sidebar, not the floor. The office floor's own plan is fixed — resizing the building is not a command yet.
  • /zen is a view, not a screensaver. Any key exits, so it will not stay parked on your second monitor.
  • Saver changes cadence, not capability. The floor animates slower; the work behind it does not.

The desks are empty. Your agents are waiting.