1
1
mirror of https://github.com/wez/wezterm.git synced 2025-01-07 14:37:26 +03:00
wezterm/docs/config/lua/MuxWindow.md
Wez Furlong 2e9fe87e34 lua: expand mux api
Allow iterating all windows at the mux layer.
windows allow iterating tabs.
Tabs allow iterating panes.

Versions of iteration that report additional information (like index,
active and positioning) are also added.

Panes can now reference their containing tab and window objects.
Tabs can now reference their containing window object.

refs: https://github.com/wez/wezterm/issues/1598 (sort of)
refs: https://github.com/wez/wezterm/issues/225
2022-06-27 13:19:03 -07:00

115 lines
2.6 KiB
Markdown

# MuxWindow
*Since: 20220624-141144-bd1b7c5d*
`MuxWindow` represents a window that is managed by the multiplexer.
It has the following methods:
## `window:window_id()`
Returns the window id
## `window:get_workspace()`
Returns the name of the workspace to which the window belongs.
## `window:set_workspace("something")`
Changes the name of the workspace to which the window belongs.
## `window:spawn_tab{}`
Spawns a program into a new tab within this window, returning the
[MuxTab](MuxTab.md), [MuxPane](MuxPane.md) and
[MuxWindow](MuxWindow.md) objects associated with it:
```lua
local tab, pane, window = window:spawn_tab{}
```
When no arguments are passed, the default program is spawned.
The following parameters are supported:
### args
Specifies the argument array for the command that should be spawned.
If omitted the default program for the domain will be spawned.
```lua
window:spawn_tab{args={"top"}}
```
### cwd
Specify the current working directory that should be used for
the program.
If unspecified, follows the rules from [default_cwd](config/default_cwd.md)
```lua
window:spawn_tab{cwd="/tmp"}
```
### set_environment_variables
Sets additional environment variables in the environment for
this command invocation.
```lua
window:spawn_tab{set_environment_variables={"FOO"="BAR"}}
```
### domain
Specifies the multiplexer domain into which the program should
be spawned. The default value is assumed to be `"CurrentPaneDomain"`,
which causes the domain from the currently active pane to be used.
You may specify the name of one of the multiplexer domains
defined in your configuration using the following:
```lua
window:spawn_tab{domain={DomainName="my.name"}}
```
## window:get_title()
*Since: nightly builds only*
Returns the window title as set by `OSC 0`, `OSC 2` in a contained pane, or through
`window:set_title()`.
## window:set_title(TITLE)
*Since: nightly builds only*
Sets the window title to the provided string. Note that applications may
subsequently change the title via escape sequences.
```lua
window:set_title("my title")
```
## window:tabs()
*Since: nightly builds only*
Returns an array table holding each of the [MuxTab](MuxTab.md) objects
contained within this window.
## window:tabs_with_info()
*Since: nightly builds only*
Returns an array table holding an extended info entry for each of the tabs
contained within this window.
Each element is a lua table with the following fields:
* `index` - the 0-based tab index
* `is_active` - a boolean indicating whether this is the active tab within the window
* `tab` - the [MuxTab](MuxTab.md) object