1
1
mirror of https://github.com/wez/wezterm.git synced 2025-01-06 04:57:21 +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

2.6 KiB

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, MuxPane and MuxWindow objects associated with it:

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.

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

window:spawn_tab{cwd="/tmp"}

set_environment_variables

Sets additional environment variables in the environment for this command invocation.

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:

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.

window:set_title("my title")

window:tabs()

Since: nightly builds only

Returns an array table holding each of the MuxTab 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 object