Sessions¶
- class libtmux.Session[source]¶
Bases:
Obj,EnvironmentMixin,OptionsMixin,HooksMixintmux(1) Session [session_manual].
Holds
Windowobjects.- Parameters:
server (
Server)
Examples
>>> session Session($1 ...)
>>> session.windows [Window(@1 ...:..., Session($1 ...)]
>>> session.active_window Window(@1 ...:..., Session($1 ...))
>>> session.active_pane Pane(%1 Window(@1 ...:..., Session($1 ...)))
The session can be used as a context manager to ensure proper cleanup:
>>> with server.new_session() as session: ... window = session.new_window() ... # Do work with the window ... # Session will be killed automatically when exiting the context
References
[session_manual]- tmux session. openbsd manpage for TMUX(1).
“When tmux is started it creates a new session with a single window and displays it on screen…”
“A session is a single collection of pseudo terminals under the management of tmux. Each session has one or more windows linked to it.”
https://man.openbsd.org/tmux.1#DESCRIPTION. Accessed April 1st, 2018.
When not a user (custom) option, scope can be implied.
- property windows: QueryList[Window]¶
Windows contained by session.
Can be accessed via
.windows.get()and.windows.filter()
- property panes: QueryList[Pane]¶
Panes contained by session’s windows.
Can be accessed via
.panes.get()and.panes.filter()
- cmd(cmd, *args, target=None)[source]¶
Execute tmux subcommand within session context.
Automatically binds target by adding
-tfor object’s session ID to the command. Passtargetto keyword arguments to override.Examples
>>> session.cmd('new-window', '-P').stdout[0] 'libtmux...:....0'
From raw output to an enriched Window object:
>>> Window.from_window_id(window_id=session.cmd( ... 'new-window', '-P', '-F#{window_id}').stdout[0], server=session.server) Window(@... ...:..., Session($1 libtmux_...))
- Parameters:
- Return type:
server.cmd()
Notes
Changed in version 0.34: Passing target by
-tis ignored. Usetargetkeyword argument instead.Changed in version 0.8: Renamed from
.tmuxto.cmd.
- select_window(target_window)[source]¶
Select window and return the selected window.
- Return type:
- Parameters:
- Return type:
Notes
- attach(exit_=None, flags_=None)[source]¶
Return
$ tmux attach-sessionaka alias:$ tmux attach.Examples
>>> session = server.new_session()
>>> session not in server.attached_sessions True
- kill(all_except=None, clear=None)[source]¶
Kill
Session, closes linked windows and detach all clients.$ tmux kill-session.- Return type:
- Parameters:
Examples
Kill a session:
>>> session_1 = server.new_session()
>>> session_1 in server.sessions True
>>> session_1.kill()
>>> session_1 not in server.sessions True
Kill all sessions except the current one:
>>> one_session_to_rule_them_all = server.new_session()
>>> other_sessions = server.new_session( ... ), server.new_session()
>>> all([w in server.sessions for w in other_sessions]) True
>>> one_session_to_rule_them_all.kill(all_except=True)
>>> all([w not in server.sessions for w in other_sessions]) True
>>> one_session_to_rule_them_all in server.sessions True
- rename_session(new_name)[source]¶
Rename session and return new
Sessionobject.- Return type:
- Parameters:
new_name (str) – new session name
- Raises:
- new_window(window_name=None, *, start_directory=None, attach=False, window_index='', window_shell=None, environment=None, direction=None, target_window=None)[source]¶
Create new window, returns new
Window.By default, this will make the window active. For the new window to be created and not set to current, pass in
attach=False.- Return type:
Window
- Parameters:
window_name (str, optional)
start_directory (str, optional) – working directory in which the new window is created.
attach (bool, optional) – make new window the current window after creating it, default True.
window_index (str) – create the new window at the given index position. Default is empty string which will create the window in the next available position.
window_shell (str, optional) –
execute a command on starting the window. The window will close when the command exits.
Note
When this command exits the window will close. This feature is useful for long-running processes where the closing of the window upon completion is desired.
direction (WindowDirection, optional) – Insert window before or after target window.
target_window (str, optional) – Used by
Window.new_window()to specify the target window.versionchanged: (..) – 0.28.0:
attachdefault changed fromTruetoFalse.
See also
Examples
>>> window_initial = session.new_window(window_name='Example') >>> window_initial Window(@... 2:Example, Session($1 libtmux_...)) >>> window_initial.window_index '2'
>>> window_before = session.new_window( ... window_name='Window before', direction=WindowDirection.Before) >>> window_initial.refresh() >>> window_before Window(@... 1:Window before, Session($1 libtmux_...)) >>> window_initial Window(@... 3:Example, Session($1 libtmux_...))
>>> window_after = session.new_window( ... window_name='Window after', direction=WindowDirection.After) >>> window_initial.refresh() >>> window_after.refresh() >>> window_after Window(@... 3:Window after, Session($1 libtmux_...)) >>> window_initial Window(@... 4:Example, Session($1 libtmux_...)) >>> window_before Window(@... 1:Window before, Session($1 libtmux_...))
- kill_window(target_window=None)[source]¶
Close a tmux window, and all panes inside it,
$ tmux kill-window.Kill the current window or the window at
target-window. removing it from any sessions to which it is linked.- Return type:
- Parameters:
target_window (str, optional) – Window to kill.
- Raises:
libtmux.exc.LibTmuxException – If tmux returns an error.
- property id: str | None¶
Alias of
Session.session_id.>>> session.id '$1'
>>> session.id == session.session_id True
- property name: str | None¶
Alias of
Session.session_name.>>> session.name 'libtmux_...'
>>> session.name == session.session_name True
- property attached_pane: Pane | None¶
Return the active
Paneobject.Notes
Deprecated since version 0.31: Deprecated in favor of
active_pane().
- property attached_window: Window¶
Return the active
Windowobject.Notes
Deprecated since version 0.31: Deprecated in favor of
active_window().
- attach_session()[source]¶
Return
$ tmux attach-sessionaka alias:$ tmux attach.- Return type:
Notes
Deprecated since version 0.30: Deprecated in favor of
attach().
- kill_session()[source]¶
Destroy session.
- Return type:
Notes
Deprecated since version 0.30: Deprecated in favor of
kill().
- get(key, default=None)[source]¶
Return key-based lookup. Deprecated by attributes.
Deprecated since version 0.17: Deprecated by attribute lookup.e.g.
session['session_name']is now accessed viasession.session_name.
- get_by_id(session_id)[source]¶
Return window by id. Deprecated in favor of
windows.get().Deprecated since version 0.16: Deprecated by
windows.get().
- where(kwargs)[source]¶
Filter through windows, return list of
Window.Deprecated since version 0.17: Deprecated by
windows.filter().
- find_where(kwargs)[source]¶
Filter through windows, return first
Window.Deprecated since version 0.17: Slated to be removed in favor of
windows.get().
- _list_windows()[source]¶
Return list of windows (deprecated in favor of
windows).Deprecated since version 0.17: Slated to be removed in favor of
windows.
- property _windows: list[dict[str, Any]]¶
Property / alias to return
Session._list_windows().Deprecated since version 0.17: Slated to be removed in favor of
windows.
- __init__(server, active_window_index=None, alternate_saved_x=None, alternate_saved_y=None, buffer_name=None, buffer_sample=None, buffer_size=None, client_cell_height=None, client_cell_width=None, client_discarded=None, client_flags=None, client_height=None, client_key_table=None, client_name=None, client_pid=None, client_termname=None, client_tty=None, client_uid=None, client_user=None, client_width=None, client_written=None, command_list_alias=None, command_list_name=None, command_list_usage=None, config_files=None, copy_cursor_line=None, copy_cursor_word=None, copy_cursor_x=None, copy_cursor_y=None, current_file=None, cursor_character=None, cursor_flag=None, cursor_x=None, cursor_y=None, history_bytes=None, history_limit=None, history_size=None, insert_flag=None, keypad_cursor_flag=None, keypad_flag=None, last_window_index=None, line=None, mouse_all_flag=None, mouse_any_flag=None, mouse_button_flag=None, mouse_sgr_flag=None, mouse_standard_flag=None, next_session_id=None, origin_flag=None, pane_active=None, pane_at_bottom=None, pane_at_left=None, pane_at_right=None, pane_at_top=None, pane_bg=None, pane_bottom=None, pane_current_command=None, pane_current_path=None, pane_dead_signal=None, pane_dead_status=None, pane_dead_time=None, pane_fg=None, pane_height=None, pane_id=None, pane_index=None, pane_left=None, pane_pid=None, pane_right=None, pane_search_string=None, pane_start_command=None, pane_start_path=None, pane_tabs=None, pane_top=None, pane_tty=None, pane_width=None, pid=None, scroll_position=None, scroll_region_lower=None, scroll_region_upper=None, search_match=None, selection_end_x=None, selection_end_y=None, selection_start_x=None, selection_start_y=None, session_activity=None, session_alerts=None, session_attached=None, session_attached_list=None, session_created=None, session_group=None, session_group_attached=None, session_group_list=None, session_group_size=None, session_id=None, session_last_attached=None, session_name=None, session_path=None, session_stack=None, session_windows=None, socket_path=None, start_time=None, uid=None, user=None, version=None, window_active=None, window_active_clients=None, window_active_sessions=None, window_activity=None, window_cell_height=None, window_cell_width=None, window_height=None, window_id=None, window_index=None, window_layout=None, window_linked=None, window_linked_sessions=None, window_linked_sessions_list=None, window_marked_flag=None, window_name=None, window_offset_x=None, window_offset_y=None, window_panes=None, window_raw_flags=None, window_stack_index=None, window_width=None, wrap_flag=None, default_option_scope=None, default_hook_scope=None)[source]¶
When not a user (custom) option, scope can be implied.
- Parameters:
server (Server)
active_window_index (str | None)
alternate_saved_x (str | None)
alternate_saved_y (str | None)
buffer_name (str | None)
buffer_sample (str | None)
buffer_size (str | None)
client_cell_height (str | None)
client_cell_width (str | None)
client_discarded (str | None)
client_flags (str | None)
client_height (str | None)
client_key_table (str | None)
client_name (str | None)
client_pid (str | None)
client_termname (str | None)
client_tty (str | None)
client_uid (str | None)
client_user (str | None)
client_width (str | None)
client_written (str | None)
command_list_alias (str | None)
command_list_name (str | None)
command_list_usage (str | None)
config_files (str | None)
copy_cursor_line (str | None)
copy_cursor_word (str | None)
copy_cursor_x (str | None)
copy_cursor_y (str | None)
current_file (str | None)
cursor_character (str | None)
cursor_flag (str | None)
cursor_x (str | None)
cursor_y (str | None)
history_bytes (str | None)
history_limit (str | None)
history_size (str | None)
insert_flag (str | None)
keypad_cursor_flag (str | None)
keypad_flag (str | None)
last_window_index (str | None)
line (str | None)
mouse_all_flag (str | None)
mouse_any_flag (str | None)
mouse_button_flag (str | None)
mouse_sgr_flag (str | None)
mouse_standard_flag (str | None)
next_session_id (str | None)
origin_flag (str | None)
pane_active (str | None)
pane_at_bottom (str | None)
pane_at_left (str | None)
pane_at_right (str | None)
pane_at_top (str | None)
pane_bg (str | None)
pane_bottom (str | None)
pane_current_command (str | None)
pane_current_path (str | None)
pane_dead_signal (str | None)
pane_dead_status (str | None)
pane_dead_time (str | None)
pane_fg (str | None)
pane_height (str | None)
pane_id (str | None)
pane_index (str | None)
pane_left (str | None)
pane_pid (str | None)
pane_right (str | None)
pane_search_string (str | None)
pane_start_command (str | None)
pane_start_path (str | None)
pane_tabs (str | None)
pane_top (str | None)
pane_tty (str | None)
pane_width (str | None)
pid (str | None)
scroll_position (str | None)
scroll_region_lower (str | None)
scroll_region_upper (str | None)
search_match (str | None)
selection_end_x (str | None)
selection_end_y (str | None)
selection_start_x (str | None)
selection_start_y (str | None)
session_activity (str | None)
session_alerts (str | None)
session_attached (str | None)
session_attached_list (str | None)
session_created (str | None)
session_group (str | None)
session_group_attached (str | None)
session_group_list (str | None)
session_group_size (str | None)
session_id (str | None)
session_last_attached (str | None)
session_name (str | None)
session_path (str | None)
session_stack (str | None)
session_windows (str | None)
socket_path (str | None)
start_time (str | None)
uid (str | None)
user (str | None)
version (str | None)
window_active (str | None)
window_active_clients (str | None)
window_active_sessions (str | None)
window_activity (str | None)
window_cell_height (str | None)
window_cell_width (str | None)
window_height (str | None)
window_id (str | None)
window_index (str | None)
window_layout (str | None)
window_linked (str | None)
window_linked_sessions (str | None)
window_linked_sessions_list (str | None)
window_marked_flag (str | None)
window_name (str | None)
window_offset_x (str | None)
window_offset_y (str | None)
window_panes (str | None)
window_raw_flags (str | None)
window_stack_index (str | None)
window_width (str | None)
wrap_flag (str | None)
default_option_scope (OptionScope | None)
default_hook_scope (OptionScope | None)
- Return type:
None
- _show_hook(hook, global_=False, scope=<libtmux.constants._DefaultOptionScope object>)[source]¶
Return value for the hook.
- Return type:
- Parameters:
hook (str)
global_ (bool)
scope (OptionScope | _DefaultOptionScope | None)
- Raises:
- _show_option(option, global_=False, g=False, scope=<libtmux.constants._DefaultOptionScope object>, ignore_errors=None, include_hooks=None, include_inherited=None)[source]¶
Return option value for the target.
todo: test and return True/False for on/off string
- Return type:
- Parameters:
- Raises:
Examples
>>> import typing as t >>> from libtmux.common import tmux_cmd >>> from libtmux.constants import OptionScope
>>> class MyServer(OptionsMixin): ... socket_name = server.socket_name ... def cmd(self, cmd: str, *args: object): ... cmd_args: t.List[t.Union[str, int]] = [cmd] ... if self.socket_name: ... cmd_args.insert(0, f"-L{self.socket_name}") ... cmd_args.insert(0, "-f/dev/null") ... return tmux_cmd(*cmd_args, *args) ... ... default_option_scope = OptionScope.Server
>>> MyServer().cmd('new-session', '-d') <libtmux.common.tmux_cmd object at ...>
>>> MyServer()._show_option('exit-unattached', global_=True) False
- _show_option_raw(option, global_=False, g=False, scope=<libtmux.constants._DefaultOptionScope object>, ignore_errors=None, include_hooks=None, include_inherited=None)[source]¶
Return raw option output for target.
- Return type:
tmux_cmd
- Parameters:
- Raises:
Examples
>>> import typing as t >>> from libtmux.common import tmux_cmd >>> from libtmux.constants import OptionScope
>>> class MyServer(OptionsMixin): ... socket_name = server.socket_name ... def cmd(self, cmd: str, *args: object): ... cmd_args: t.List[t.Union[str, int]] = [cmd] ... if self.socket_name: ... cmd_args.insert(0, f"-L{self.socket_name}") ... cmd_args.insert(0, "-f/dev/null") ... return tmux_cmd(*cmd_args, *args) ... ... default_option_scope = OptionScope.Server
>>> MyServer().cmd('new-session', '-d') <libtmux.common.tmux_cmd object at ...>
>>> MyServer()._show_option_raw('exit-unattached', global_=True) <libtmux.common.tmux_cmd object at ...>
>>> MyServer()._show_option_raw('exit-unattached', global_=True).stdout ['exit-unattached off']
>>> isinstance(MyServer()._show_option_raw('exit-unattached', global_=True).stdout, list) True
>>> isinstance(MyServer()._show_option_raw('exit-unattached', global_=True).stdout[0], str) True
- _show_options(g=False, global_=False, scope=<libtmux.constants._DefaultOptionScope object>, include_hooks=None, include_inherited=None)[source]¶
Return a dict of options for the target.
- Return type:
dict[str,str|int|list[str|int] |dict[str,list[str|int]] |SparseArray[str|int] |None]- Parameters:
g (bool, optional) –
Deprecated since version 0.50.0: Use
global_instead.global_ (bool | None)
scope (OptionScope | _DefaultOptionScope | None)
include_hooks (bool | None)
include_inherited (bool | None)
Examples
>>> import typing as t >>> from libtmux.common import tmux_cmd >>> from libtmux.constants import OptionScope
>>> class MyServer(OptionsMixin): ... socket_name = server.socket_name ... def cmd(self, cmd: str, *args: object): ... cmd_args: t.List[t.Union[str, int]] = [cmd] ... if self.socket_name: ... cmd_args.insert(0, f"-L{self.socket_name}") ... cmd_args.insert(0, "-f/dev/null") ... return tmux_cmd(*cmd_args, *args) ... ... default_option_scope = OptionScope.Server
>>> MyServer()._show_options() {...}
- _show_options_dict(g=False, global_=False, scope=<libtmux.constants._DefaultOptionScope object>, include_hooks=None, include_inherited=None)[source]¶
Return dict of options for the target.
- Return type:
- Parameters:
g (bool, optional) –
Deprecated since version 0.50.0: Use
global_instead.global_ (bool | None)
scope (OptionScope | _DefaultOptionScope | None)
include_hooks (bool | None)
include_inherited (bool | None)
Examples
>>> import typing as t >>> from libtmux.common import tmux_cmd >>> from libtmux.constants import OptionScope
>>> class MyServer(OptionsMixin): ... socket_name = server.socket_name ... def cmd(self, cmd: str, *args: object): ... cmd_args: t.List[t.Union[str, int]] = [cmd] ... if self.socket_name: ... cmd_args.insert(0, f"-L{self.socket_name}") ... cmd_args.insert(0, "-f/dev/null") ... return tmux_cmd(*cmd_args, *args) ... ... default_option_scope = OptionScope.Server
>>> MyServer()._show_options_dict() {...}
>>> isinstance(MyServer()._show_options_dict(), dict) True
- _show_options_raw(g=False, global_=False, scope=<libtmux.constants._DefaultOptionScope object>, include_hooks=None, include_inherited=None)[source]¶
Return a dict of options for the target.
- Return type:
tmux_cmd
- Parameters:
g (bool, optional) –
Deprecated since version 0.50.0: Use
global_instead.global_ (bool | None)
scope (OptionScope | _DefaultOptionScope | None)
include_hooks (bool | None)
include_inherited (bool | None)
Examples
>>> import typing as t >>> from libtmux.common import tmux_cmd >>> from libtmux.constants import OptionScope
>>> class MyServer(OptionsMixin): ... socket_name = server.socket_name ... def cmd(self, cmd: str, *args: object): ... cmd_args: t.List[t.Union[str, int]] = [cmd] ... if self.socket_name: ... cmd_args.insert(0, f"-L{self.socket_name}") ... cmd_args.insert(0, "-f/dev/null") ... return tmux_cmd(*cmd_args, *args) ... ... default_option_scope = OptionScope.Server
>>> MyServer()._show_options_raw() <libtmux.common.tmux_cmd object at ...>
>>> MyServer()._show_options_raw().stdout [...]
- getenv(name)[source]¶
Show environment variable
$ tmux show-environment -t [session] <name>.Return the value of a specific variable if the name is specified.
Added in version 0.13.
- list_windows()[source]¶
Return a list of
Windowfrom thetmux(1)session.Deprecated since version 0.17: Slated to be removed in favor of
windows.
- remove_environment(name)[source]¶
Remove environment variable
$ tmux set-environment -r <name>.- Return type:
- Parameters:
name (str) – The environment variable name, e.g. ‘PATH’.
- Raises:
ValueError – If tmux returns an error.
- run_hook(hook, global_=None, scope=<libtmux.constants._DefaultOptionScope object>)[source]¶
Run a hook immediately. Useful for testing.
- Return type:
Self
- Parameters:
hook (str)
global_ (bool | None)
scope (OptionScope | _DefaultOptionScope | None)
- set_environment(name, value)[source]¶
Set environment
$ tmux set-environment <name> <value>.- Return type:
- Parameters:
- Raises:
ValueError – If tmux returns an error.
- set_hook(hook, value, unset=None, run=None, append=None, g=None, global_=None, scope=<libtmux.constants._DefaultOptionScope object>)[source]¶
Set hook for tmux target.
Wraps
$ tmux set-hook <hook> <value>.- Return type:
Self
- Parameters:
- Raises:
- set_hooks(hook, values, *, clear_existing=False, global_=None, scope=<libtmux.constants._DefaultOptionScope object>)[source]¶
Set multiple indexed hooks at once.
- Return type:
Self
- Parameters:
hook (str) – Hook name, e.g. ‘session-renamed’
values (HookValues) – Values to set. Can be: - dict[int, str]: {0: ‘cmd1’, 1: ‘cmd2’} - explicit indices - SparseArray[str]: preserves indices from another hook - list[str]: [‘cmd1’, ‘cmd2’] - sequential indices starting at 0
clear_existing (bool) – If True, unset all existing hook values first
global (bool | None) – Use global hooks
scope (OptionScope | None) – Scope for the hook
global_ (bool | None)
- Returns:
Returns self for method chaining.
- Return type:
Self
Examples
Set hooks with explicit indices:
>>> session.set_hooks('session-renamed', { ... 0: 'display-message "hook 0"', ... 1: 'display-message "hook 1"', ... }) Session($...)
>>> hooks = session.show_hook('session-renamed') >>> sorted(hooks.keys()) [0, 1]
>>> session.unset_hook('session-renamed') Session($...)
Set hooks from a list (sequential indices):
>>> session.set_hooks('after-new-window', [ ... 'select-pane -t 0', ... 'send-keys "clear" Enter', ... ]) Session($...)
>>> hooks = session.show_hook('after-new-window') >>> sorted(hooks.keys()) [0, 1]
Replace all existing hooks with
clear_existing=True:>>> session.set_hooks( ... 'session-renamed', ... {0: 'display-message "new"'}, ... clear_existing=True, ... ) Session($...)
>>> hooks = session.show_hook('session-renamed') >>> sorted(hooks.keys()) [0]
>>> session.unset_hook('session-renamed') Session($...)
>>> session.unset_hook('after-new-window') Session($...)
- set_option(option, value, _format=None, prevent_overwrite=None, ignore_errors=None, suppress_warnings=None, append=None, g=None, global_=None, scope=<libtmux.constants._DefaultOptionScope object>)[source]¶
Set option for tmux target.
Wraps
$ tmux set-option <option> <value>.- Return type:
Self
- Parameters:
option (str) – option to set, e.g. ‘aggressive-resize’
value (str) – option value. True/False will turn in ‘on’ and ‘off’, also accepts string of ‘on’ or ‘off’ directly.
deprecated: (..) – 0.28: Deprecated by
gfor global, useglobal_instead._format (bool | None)
prevent_overwrite (bool | None)
ignore_errors (bool | None)
suppress_warnings (bool | None)
append (bool | None)
g (bool | None)
global_ (bool | None)
scope (OptionScope | _DefaultOptionScope | None)
- Raises:
Examples
>>> import typing as t >>> from libtmux.common import tmux_cmd >>> from libtmux.constants import OptionScope >>> from libtmux._internal.sparse_array import SparseArray
>>> class MyServer(OptionsMixin): ... socket_name = server.socket_name ... def cmd(self, cmd: str, *args: object): ... cmd_args: t.List[t.Union[str, int]] = [cmd] ... if self.socket_name: ... cmd_args.insert(0, f"-L{self.socket_name}") ... cmd_args.insert(0, "-f/dev/null") ... return tmux_cmd(*cmd_args, *args) ... ... default_option_scope = OptionScope.Server
>>> MyServer().set_option('escape-time', 1250) <libtmux.options.MyServer object at ...>
>>> MyServer()._show_option('escape-time') 1250
>>> MyServer().set_option('escape-time', 495) <libtmux.options.MyServer object at ...>
>>> MyServer()._show_option('escape-time') 495
- show_environment()[source]¶
Show environment
$ tmux show-environment -t [session].Return dict of environment variables for the session.
Changed in version 0.13: Removed per-item lookups. Use
libtmux.common.EnvironmentMixin.getenv().
- show_hook(hook, global_=False, scope=<libtmux.constants._DefaultOptionScope object>)[source]¶
Return value for a hook.
For array hooks (e.g.,
session-renamed), returns aSparseArraywith hook values at their original indices. Use.keys()for indices and.values()for values.- Return type:
str|int|SparseArray[str] |None- Parameters:
hook (str) – Hook name to query
global_ (bool)
scope (OptionScope | _DefaultOptionScope | None)
- Returns:
Hook value. For array hooks, returns SparseArray.
- Return type:
str | int | SparseArray[str] | None
- Raises:
Examples
>>> session.set_hook('session-renamed[0]', 'display-message "test"') Session($...)
>>> hooks = session.show_hook('session-renamed') >>> isinstance(hooks, SparseArray) True
>>> sorted(hooks.keys()) [0]
>>> session.unset_hook('session-renamed') Session($...)
- show_hooks(global_=False, scope=<libtmux.constants._DefaultOptionScope object>)[source]¶
Return a dict of hooks for the target.
- Return type:
- Parameters:
global (bool, optional) – Pass
-gflag for global hooks, default False.scope (OptionScope | _DefaultOptionScope | None, optional) – Hook scope (Server/Session/Window/Pane), defaults to object’s scope.
global_ (bool | None)
- Returns:
Dictionary mapping hook names to their values.
- Return type:
HookDict
Examples
>>> session.set_hook('session-renamed[0]', 'display-message "test"') Session($...)
>>> hooks = session.show_hooks() >>> isinstance(hooks, dict) True
>>> 'session-renamed[0]' in hooks True
>>> session.unset_hook('session-renamed') Session($...)
- show_option(option, global_=False, g=False, scope=<libtmux.constants._DefaultOptionScope object>, ignore_errors=None, include_hooks=None, include_inherited=None)[source]¶
Return option value for the target.
- Return type:
- Parameters:
- Raises:
Examples
>>> import typing as t >>> from libtmux.common import tmux_cmd >>> from libtmux.constants import OptionScope
>>> class MyServer(OptionsMixin): ... socket_name = server.socket_name ... def cmd(self, cmd: str, *args: object): ... cmd_args: t.List[t.Union[str, int]] = [cmd] ... if self.socket_name: ... cmd_args.insert(0, f"-L{self.socket_name}") ... cmd_args.insert(0, "-f/dev/null") ... return tmux_cmd(*cmd_args, *args) ... ... default_option_scope = OptionScope.Server
>>> MyServer().cmd('new-session', '-d') <libtmux.common.tmux_cmd object at ...>
>>> MyServer().show_option('exit-unattached', global_=True) False
- show_options(global_=False, scope=<libtmux.constants._DefaultOptionScope object>, include_hooks=None, include_inherited=None)[source]¶
Return all options for the target.
- Return type:
dict[str,str|int|list[str|int] |dict[str,list[str|int]] |SparseArray[str|int] |None]- Parameters:
global (bool, optional) – Pass
-gflag for global options, default False.scope (OptionScope | _DefaultOptionScope | None, optional) – Option scope (Server/Session/Window/Pane), defaults to object’s scope.
include_hooks (bool, optional) – Include hook options (
-Hflag).include_inherited (bool, optional) – Include inherited options (
-Aflag).global_ (bool)
- Returns:
Dictionary with all options, arrays exploded and values converted.
- Return type:
ExplodedComplexUntypedOptionsDict
- Raises:
Examples
>>> options = server.show_options() >>> isinstance(options, dict) True
>>> 'buffer-limit' in options True
- unset_environment(name)[source]¶
Unset environment variable
$ tmux set-environment -u <name>.- Return type:
- Parameters:
name (str) – The environment variable name, e.g. ‘PATH’.
- Raises:
ValueError – If tmux returns an error.
- unset_hook(hook, global_=None, scope=<libtmux.constants._DefaultOptionScope object>)[source]¶
Unset hook for tmux target.
Wraps
$ tmux set-hook -u <hook>/$ tmux set-hook -U <hook>- Return type:
Self
- Parameters:
hook (str) – hook to unset, e.g. ‘after-show-environment’
global_ (bool | None)
scope (OptionScope | _DefaultOptionScope | None)
- Raises:
- unset_option(option, unset_panes=None, global_=None, ignore_errors=None, scope=<libtmux.constants._DefaultOptionScope object>)[source]¶
Unset option for tmux target.
Wraps
$ tmux set-option -u <option>/$ tmux set-option -U <option>- Return type:
Self
- Parameters:
option (str) – option to unset, e.g. ‘aggressive-resize’
unset_panes (bool | None)
global_ (bool | None)
ignore_errors (bool | None)
scope (OptionScope | _DefaultOptionScope | None)
- Raises:
Examples
>>> import typing as t >>> from libtmux.common import tmux_cmd >>> from libtmux.constants import OptionScope
>>> class MyServer(OptionsMixin): ... socket_name = server.socket_name ... def cmd(self, cmd: str, *args: object): ... cmd_args: t.List[t.Union[str, int]] = [cmd] ... if self.socket_name: ... cmd_args.insert(0, f"-L{self.socket_name}") ... cmd_args.insert(0, "-f/dev/null") ... return tmux_cmd(*cmd_args, *args) ... ... default_option_scope = OptionScope.Server
>>> MyServer().set_option('escape-time', 1250) <libtmux.options.MyServer object at ...>
>>> MyServer()._show_option('escape-time') 1250
>>> MyServer().unset_option('escape-time') <libtmux.options.MyServer object at ...>
>>> isinstance(MyServer()._show_option('escape-time'), int) True