Skip to content

Per-workspace/per-tab badge: scroll-fixed watermark in the terminal area (like iTerm2 badges) #3607

Description

@thloesche

Problem

When working across multiple mux workspaces — and multiple tabs within each workspace — it's easy to lose track of which workspace and which tab a given surface belongs to. The workspace name in the sidebar helps, but it isn't visible from within the terminal area, and it doesn't tell you which tab you're in — especially when a long command produces hundreds of lines of output and you're scrolling through them.

Request

A configurable, scroll-fixed identifier rendered as an overlay in the terminal surface (not part of the scrollback), similar to iTerm2's "badge" feature:

  • Visible in every tab/surface of a workspace (shell, agent, editor, build logs, …)
  • Content reflects both the workspace and the tab/surface — e.g. a template that can include the workspace name and the tab name/index (something like {workspace} · {tab})
  • Stays fixed regardless of output volume or scroll position
  • Configurable text/template, position, opacity, and color/size

Why current options fall short

  • Shell prompt markers scroll away with output.
  • The agent status line is per-agent-tab only.
  • Ghostty's background-image is scroll-fixed but global (same image for all tabs — can't distinguish workspace A vs. B, let alone tab vs. tab). (mux renders terminals via ghostty-web, so this Ghostty limitation applies here too.)
  • OSC 0/1/2 title sequences are honored by mux — they update the tab label in the sidebar chrome — but that label is not visible from within the terminal viewport while scrolling output, and it can't combine workspace + tab into a persistent in-terminal marker.

A native badge that can render both the workspace and the tab identifier would close this gap.


Edit: corrected the fourth bullet — mux does honor OSC 0/1/2 (titles drive sidebar tab labels); the gap is the lack of a scroll-fixed in-terminal overlay, not OSC handling.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions