Workspace ManagerGuides

Choose documentation 3

latest

Current version

latest
English

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

Edit this page on GitHub

Install and load a workspace

LibTmux.Workspace 0.0.0-alpha.20 · Source

Build the documented tmux-workspace revision, then load a small session on a private socket. Use a Unix shell with tmux 3.2a or newer on PATH.

Build the command

Fetch the documented source revision, then build from its repository root. Keep the exported PATH in this shell for the rest of the walkthrough.

Terminal window
$ git clone --filter=blob:none https://github.com/libtmux/libtmux-dotnet.git
Terminal window
$ cd libtmux-dotnet
Terminal window
$ git fetch --depth=1 origin f77fe776ba67a04abb20ddbbc26cf4a000d63b74
Terminal window
$ git checkout --detach FETCH_HEAD

Use the .NET 10 SDK to build the command:

Terminal window
$ dotnet build src/LibTmux.Workspace.Cli/LibTmux.Workspace.Cli.csproj --configuration Release
Terminal window
$ WORKSPACE_BIN="$(mktemp -d)"
Terminal window
$ ln -s "$PWD/src/LibTmux.Workspace.Cli/bin/Release/net10.0/LibTmux.Workspace.Cli" "$WORKSPACE_BIN/tmux-workspace"
Terminal window
$ export PATH="$WORKSPACE_BIN:$PATH"

Keep the build directory and the matching .NET runtime available when using this launcher.

Terminal window
$ tmux-workspace --help

Create the input

Keep this shell open. Create a temporary working directory on a filesystem that supports Unix sockets, then enter it:

Terminal window
$ WORKSPACE_TMP="$(mktemp -d)"
Terminal window
$ cd "$WORKSPACE_TMP"

Save this as workspace.yaml:

workspace.yaml
session_name: workspace-guide
windows:
- window_name: editor
layout: even-horizontal
panes: [null, null]

Load and inspect

Terminal window
$ tmux-workspace load \
-S "$WORKSPACE_TMP/tmux.sock" \
-f /dev/null \
-d \
--json \
workspace.yaml

-d leaves the session detached. Inspect its panes using the same socket:

Terminal window
$ tmux -S "$WORKSPACE_TMP/tmux.sock" list-panes -t '=workspace-guide:editor'

Attach interactively with tmux -S "$WORKSPACE_TMP/tmux.sock" attach-session -t '=workspace-guide'. Detach with your tmux detach binding before continuing.

Capture and clean up

Terminal window
$ tmux-workspace freeze -S "$WORKSPACE_TMP/tmux.sock" --json workspace-guide

Try export and reload before cleanup. Capture cannot recover original scripts, command history or application state.

Remove only the session created by this walkthrough when finished:

Terminal window
$ tmux -S "$WORKSPACE_TMP/tmux.sock" kill-session -t '=workspace-guide'

The configuration remains in the temporary directory. Keep the session running when following guides that continue this example.

Continue

Configuration describes execution fields; discovery finds saved files. Read the load reference and automation for attachment, output and failure handling.

CLI source.

Esc

Type to search.