# LibTmuxWorkspace.expand

- **Module:** LibTmuxWorkspace
- **Package:** LibTmuxWorkspace
- **Language:** Julia
- **Kind:** function
- **Source:** https://github.com/libtmux/libtmux-julia/blob/f3da513be1225d36d5854cd8db5972c01857578e/packages/LibTmuxWorkspace/src/plan.jl#L106
- **Page:** https://libtmux.org/en/julia/latest/workspace/reference/libtmuxworkspace-expand/

```
expand(
    config::LibTmuxWorkspace.WorkspaceConfig;
    env,
    home,
    base_directory,
    unknown_variables,
    limits
)
```

## Methods

Expand only the supplied environment (`$NAME` and `${NAME}`) and home directory. Absent variables remain literal by default; `:error` rejects them. Directories resolve lexically against their parent, starting at the supplied absolute base or the config file's directory. There is no implicit `ENV`, cwd, home lookup, filesystem traversal, shell expansion or command execution.

```julia
expand(config; env=Dict(), home=nothing, base_directory=nothing,
       unknown_variables=:preserve, limits=ConfigLimits()) -> ExpandedWorkspace
```



Before commands run in session, window, pane order before each pane's commands. A pane environment map replaces window overrides, while retaining session values, as in tmuxp. Commands stay inert, including `before_script`.

## Parameters

- `config` (`LibTmuxWorkspace.WorkspaceConfig`)
- `env` (`AbstractDict`)
  Default: `Dict{String, String}()`.
- `home`
  Default: `nothing`.
- `base_directory`
  Default: `nothing`.
- `unknown_variables` (`Symbol`)
  Default: `:preserve`.
- `limits` (`ConfigLimits`)
  Default: `ConfigLimits()`.
