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

Go workspace internals

Edit this page on GitHub

github.com/libtmux/libtmux-go/workspace · Source

These pages document the in-development workspace builder for contributors and applications that call its APIs. For workspace loading from a terminal, see tmuxp.

Builder pipelineLink to section

Parse validates the YAML before tmux construction begins. Build creates the session and owns a temporary control connection for construction; BuildInto uses an existing session connection. The caller supplies file reading, deadlines, command-line handling, and attachment.

Read the implementationLink to section

  • Guides show builder setup and application code.
  • Topics explain configuration, behavior, and failures.
  • Examples exercise the builder through the language API.
  • API links the configuration and construction interfaces.

Implementation scopeLink to section

The workspace module parses tmuxp-style YAML and builds a session through libtmux’s Go API. It is a separate module, so applications using only the core client do not acquire a YAML dependency.

Parsing validates the whole document before construction. Building returns the created session, including a session handle alongside an error when later operations fail and leave a partial workspace.

Package and runtimeLink to section

Import github.com/libtmux/libtmux-go/workspace together with the core tmux package. Building requires tmux on the host. Parsing and configuration validation do not start a tmux server.

The module supports tmuxp field names for windows, panes, commands, options, environment variables, and working directories. Python plugins and before_script are rejected. Inspect the supported subset when moving an existing Python workspace to Go.

Workspace module documentation

Esc

Type to search.