Libtmux.Operations
Construct typed tmux operations for a backend client. Observations are immutable, mutations use explicit targets, and no command retries a mutation against another connection generation. Construction performs no I/O; the descriptions below state what execution does.
Source and package
- Qualified name
-
Libtmux.Operations - Declared in
Libtmux- Package
- libtmux
- Source
- lib/libtmux.mli
-
Public owner:
Libtmux
Members49#
Common operations1#
- set_option function Validate the scope and scalar kind before admission. Array values require an index, or
append:true. Without an index, tmux splits appended text using the option's separator and fills the lowest unused indexes. Text is literal; tmux format expansion is disabled. Hooks use a separate operation.
Other members48#
- break_pane function Move the pane into a new window at an explicit session index. An occupied destination fails. The returned IDs describe the resulting context; the pane itself already existed.
- capture function Capture and validate the complete session/window-link/pane graph. The result records an acquisition interval, not an atomic server instant.
- capture_environment function Acquire a bounded table through a read-only command process. Its response must identify the bound daemon while the original pidfd remains live. Unsupported external variable names fail decoding; they are not omitted.
- capture_hooks function Capture locally configured built-in hooks. Command values are tmux's printed representation, retained as data.
- capture_options function Acquire one bounded option table, excluding hooks. The default includes only local entries. Inherited table enumeration includes built-ins; inherited user options require
read_optionwith their explicit name. Built-in descriptors cover every supported release from tmux 3.3a through 3.8; other versions returnError.Unsupported. - capture_text function Capture inclusive visible rows through an operation-owned temporary file. Require
0 <= start <= end_ < Pane.height pane; scrollback is excluded. Retained bytes survive client close. The scratch directory must share the daemon filesystem. - clear_history function Clear stored scrollback for this pane. The visible screen and running process remain; later captures cannot recover discarded history.
- clear_option_array function Set a local empty array, masking inheritance.
- create_session function Create a detached session on the bound daemon. Name collisions fail.
- create_window function Create detached, rejecting an occupied explicit index.
- cycle_layout function Select the next or previous tmux preset layout for this window.
- kill_pane function Destroy the target pane and its running process. tmux removes a window that becomes empty and may remove its now-empty sessions.
- kill_session function Remove the session and its window links. Windows with no other links and their panes are destroyed. Removing the last session may stop tmux.
- kill_window function Destroy the window, all its session links and every contained pane. This acts on the global window, not a single contextual link.
- link_window function Add a session-specific link to the global window at
index, rejecting an occupied index. The source window and its panes stay shared. - move_pane function Move the source pane beside another pane, optionally setting the split size. Both targets must belong to the same bound generation. An emptied source window is removed by tmux.
- move_window_at function Move the source session's current link at
from_index. Destination collisions fail. - read_hook function Read an exact hook name. Inheritance is included by default;
Nonemeans no entry under the selected policy. Missing targets remain errors. - read_option function Read one exact name, including user-option inheritance.
Nonemeans no entry under the selected policy. An invalid target remains an error. The default follows inheritance; this does not identify the defining parent scope. - refresh_client_at function Request a redraw; no terminal-rendering completion is implied.
- remove_environment function Store a removal marker, excluding the variable from future panes.
- remove_hook function Remove the local hook or one indexed array entry. An inherited hook may become effective again; this does not stop work it already started.
- rename_session function Set the session name, rejecting a conflicting existing name. Bound IDs remain usable; existing snapshots retain their captured names.
- rename_window function Set the global window name. Every session link observes the new name on its next capture; existing snapshots retain the old value.
- request_detach_client_at function Request detachment of the client currently bearing this name. Success confirms request processing, not peer exit. Detaching the library's own primary lane can lose the response and retire its generation.
- resize_control_client_at function Set a control client's reported size. tmux rejects terminal clients.
- resize_pane function Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. tmux can constrain the result to the available layout. Capture again to observe the actual dimensions.
- resize_window function Request positive cell dimensions, supplying at least one dimension. Omit either dimension to retain it. Client-size and window-size policies can affect subsequent sizing.
- respawn_pane function Start the supplied command in the existing pane. A running process causes failure unless
kill_running:trueexplicitly replaces it. The pane ID remains unchanged. - rotate_panes function Rotate pane positions in the selected direction. Pane identities and running processes remain attached to their panes.
- run_hook function Run the effective hook in an explicit session, window or pane context. A successful result follows completion of its synchronous command queue. Background work started by a hook has its own lifetime. A later hook failure returns an uncertain outcome; preceding effects remain. Named
@hooks returnUnsupportedbecause tmux can hide their parse failures in the server log. Configuration and inspection remain available. - select_layout function Apply a preset or validated custom layout to the window. Pane geometry follows tmux layout rules; capture again to observe the result.
- select_pane function Make the pane active in its containing window. This does not open or attach a terminal client.
- select_window_at function Operate on the session's current index at execution, not an old link incarnation.
- send_keys function Send named tmux keys in order, without an implicit Enter. Use
send_textfor literal bytes rather than key interpretation. - send_text function Literal bytes, without an implicit Enter. NUL is rejected at admission.
- set_environment function Set a local environment value for future pane processes.
hiddendefaults to false; hidden values remain internal to tmux. Existing processes keep their environment. - set_hook function Set a hook to a nonempty command list. Without an index, replace the whole hook array, or fill the lowest free index when appending. An explicit
@namecustom hook stores command text as a user option; it requires complete replacement and has no array indexes.read_hookreturns itsOptions.Textvalue; bulk hook capture includes built-ins. Commands may cause arbitrary tmux effects when triggered. Hooks that print output are outside the supported control transport contract. - set_pane_title function Set the pane title as literal text, without tmux format expansion. A running terminal application can subsequently replace the title.
- signal function Signal a named tmux semaphore, releasing a waiter or retaining the signal for a later
wait_for. This does not signal an OS process. - split_pane function Create a detached pane beside the target and return the IDs reported by tmux. Omitted
sizelets tmux choose the split; tmux rejects splits when no space remains. - swap_panes function Exchange pane positions without exchanging their identities or running processes. Both targets must belong to the same bound generation.
- switch_client_at function Switch the client currently bearing this name to the bound session. Environment updates are disabled by default. This can move either a terminal client or a control client; it does not open a new terminal.
- unlink_window_at function Without
allow_kill, tmux rejects removal of the last link to a window. - unset_environment function Remove the local entry, allowing a global value to apply to future panes.
- unset_option function Remove a local override or one array element. Global built-ins reset to their tmux defaults; this does not recursively unset child overrides.
- wait_for function Wait on a named tmux semaphore using a dedicated bound lane.
- zoom_pane function Toggle the window's zoom state around this pane.