# Surfaces: Work and Glance

Canonical: https://plottypus.com/docs/surfaces

Last updated: 2026-09-23

> plottypus has two layouts. Work puts the machine beside the process table; Glance is one column of graphs for a small always-on window.

plottypus has two surfaces and nothing else. `v` cycles between them; the `layout` setting (`auto`, `work`, `glance`) picks the one it starts on.

## Work

The default in any window of at least **60 columns by 16 rows**. The machine sits on the left in a grid of panels, the process table on the right.

```text
╭ cpu  3%  42° … ───── 10% [↗]╮╭ gpu  3%  38° … ───── 10% [↗]╮ ╭ proc  22 ──────────────────────────────[↗]╮
│                             ││                             │ │ / search / to filter                       │
│                            ⣿││                            ⢀│ │     pid  name                user    cpu%↓ │
╰─−2m─────────────────────now─╯╰─−2m─────────────────────now─╯ │▌    412  WindowServer        _windows…   9.8│
╭ mem  12.7G/24.0G … ──────[↗]╮╭ heat  peak 45° … ────────[↗]╮ │    2240  Safari Web Content  dev         7.2│
```

- The process table takes 55% of the width by default. Drag the gutter to change it (35% to 72%); the new width is saved as `proc.ratio`.
- Panel order is fixed: cpu, gpu, mem, net, disk, heat, power, then the process table. `tab` and `shift-tab` walk it.
- `enter` or `e` on a focused panel expands it to fill the screen, with larger graphs, per-core bars and the related panels as small graphs on the side. `tab` inside an expanded panel hops to a related one (cpu ↔ gpu ↔ heat, net ↔ disk, mem ↔ processes). `esc` goes home.
- The power panel takes its own row when there is room.

## Glance

For a small window you leave open in a corner. Glance is chosen automatically below 60×16, or with `v`, `--surface glance` or `layout = glance`.

The cpu graph takes two fifths of the height. The other panels form an even grid of strips under it, and the power panel becomes the last strip. There is no process table. The cpu title adds each cluster's clock, for example `S 1.3G · P 1.0G`.

```text
╭ cpu    3%  S 1.3G · P 1.0G  1.3W  44° ──────────────────────────── 10% [↗]╮
│                                                                     ⣀⣀⣀⣀⣀⣀│
│                                                                     ⣿⣿⣿⣿⣿⣿│
╰─−2m──────────────────┴──────────────────┴─────────────────┴───────────now─╯
╭ gpu    2%   466MHz  0.4W  38° ─── 10% [↗]╮╭ mem  12.8G/24.0G  swap 820M ─[↗]╮
```

## `auto`

With `layout = auto` (the default), plottypus follows the window: Work at 60×16 and above, Glance below. Resizing the window switches it live. `v` overrides it for the rest of the session without touching your config.

## Zen mode

`Z` hides the footer and the scale labels on either surface and leaves only the graphs. It is saved as `zen = true`. The `ricer` preset (`5`) is Glance with zen on and every panel showing.

## Time on the graphs

Every compact graph on a surface shows the same two-minute window, so panels of any width line up in time. The bottom border carries the scale: `−2m ┴ … ┴ now`. `z` steps the zoom through 5 minutes, 15 minutes, 1 minute and back to the live two minutes. Expanded panels keep their own zoom, and open at 5 minutes.

Auto scales print their ceiling in the top border (`10%`, `500KB/s`, `35–50°`), computed over the time on screen, so the label matches what is drawn. A fixed 0–100% scale has no label.
