Prerelease This site documents an alpha of libtmux. Its structure, URLs and APIs are subject to change.

Swift workspace builder API

Edit this page on GitHub

TmuxWorkspace 0.1.0-alpha.5 · Source

Import TmuxWorkspace for the configuration and builder, and LibTmux for the server and returned session value.

Configuration valuesLink to section

Workspace contains the session name, optional working directory, and ordered windows. WindowPlan contains its name, directory, layout, and panes. PanePlan contains its directory and commands. The values conform to Sendable, Hashable, and Codable.

Workspace.decode(json:) reads JSON data. Workspace.decode(yaml:) reads a string only when YAMLWorkspaces is enabled. Encoding these values writes the existing description; it does not query tmux for a live export.

BuilderLink to section

WorkspaceBuilder exposes the async build(_:on:) operation. It creates a new session on the supplied server and returns a Session. Keep using the server for live observation; session properties do not refresh themselves.

Typed errorsLink to section

WorkspaceBuilderError distinguishes an empty window list, an existing session name, a vanished session, underlying tmux errors, and failure of rollback.

rollbackFailed(original:cleanup:) preserves both causes. The caller can report the initiating problem and separately inspect whether cleanup left objects behind. The supplied server remains owned by the caller.

Value and decoding contracts; Builder contract.

API declarations

Follow a declaration for its signature, members, documentation, and source.

Exports

PanePlan
One pane, and what to run in it.
TmuxShellCommand
A command to put in a pane, and whether to run it.
WindowPlan
One window, and the panes in it.
Workspace
A tmux layout described as data, in tmuxp's vocabulary.
WorkspaceBuilder
Builds a workspace on a tmux server.
WorkspaceBuilderError
Why a workspace could not be built, including what happened while undoing.
Esc

Type to search.