Core LibraryTopics

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

Options and hooks

Use options to change tmux behavior, such as automatic-rename or the status-line format. Use hooks to run commands on events such as session-renamed or after-split-window. Choose the scope supported by the option or hook.

Reading and writing options

Read, set, or unset an option at its supported scope. Distinguish a local override from the effective value inherited from a parent scope.

Read all (this scope): pane.Options.GetAllAsync()

Read effective/inherited: pane.Options.GetAsync(new GetOptionRequest(name, includeInherited: true)): an explicit opt-in flag, mapped straight to tmux's own -A

Set: pane.Options.SetAsync(new SetOptionRequest(name, value))

Unset: pane.Options.UnsetAsync(...)

Examples

After a successful write completes, read the option to obtain its updated value. The following examples set, read, and unset an option:

await pane.Options.SetAsync(new SetOptionRequest("automatic-rename", "off"));
await pane.Options.GetAllAsync();
await pane.Options.UnsetAsync("automatic-rename");

Hooks

Set: pane.Hooks.SetAsync(new SetHookRequest(event, command))

Unset: pane.Hooks.UnsetAsync(...)

List: pane.Hooks.GetAllAsync()

Run now, without the event: pane.Hooks.RunAsync(...)

Examples

tmux stores hook commands in indexed arrays, such as after-new-window[0].

Set and list a session hook. The next section explains window and pane scope limitations:

await session.Hooks.SetAsync(new SetHookRequest("session-renamed", "display-message 'renamed'"));
await session.Hooks.GetAllAsync();

Supported hook scopes

tmux stores hooks globally or per session. Accepted set-hook -w or -p flags do not imply a separate window or pane hook table, and show-hooks does not provide a corresponding listing. Check the event's supported scope if a hook is accepted but never fires.

Options have window and pane tables of their own. The hook-scope limitation does not apply to ordinary options.

tmux version compatibility

Check the library's supported tmux versions before using a version-specific option or hook.

tmux manual and source

The tmux manual defines option scopes and inherited reads. Unsetting a local value restores inheritance. Hook programs run in tmux when their event occurs; see the hook implementation.

Esc

Type to search.