Core Library0.xAPI Reference

Choose documentation 3

latest

Current version

latest
English

Early release libtmux is released, and its APIs may still change between releases. This site's structure and URLs may change too.

Python API

class libtmux latest

Hooks

tmux hooks data structure.

Source and package
Qualified name
libtmux._internal.constants.Hooks
Module
libtmux._internal.constants
Package
libtmux
Source
src/libtmux/_internal/constants.py
class libtmux._internal.constants.Hooks

Description#

Parses tmux hook output into typed SparseArray fields, preserving array indices for hooks that can have multiple commands at different indices. A field holds an empty SparseArray when tmux reports no commands for that hook.

Examples#

Parse raw tmux hook output:

>>> from libtmux._internal.constants import Hooks
>>> raw = [
... "session-renamed[0] set-option -g status-left-style bg=red",
... "session-renamed[1] display-message 'session renamed'",
... ]
>>> hooks = Hooks.from_stdout(raw)

Access individual hook commands by index:

>>> hooks.session_renamed[0]
'set-option -g status-left-style bg=red'
>>> hooks.session_renamed[1]
"display-message 'session renamed'"

Get all commands as a list (sorted by index):

>>> hooks.session_renamed.as_list()
['set-option -g status-left-style bg=red', "display-message 'session renamed'"]

Sparse indices are preserved (gaps in index numbers):

>>> raw_sparse = [
... "pane-focus-in[0] refresh-client",
... "pane-focus-in[5] display-message 'focus'",
... ]
>>> hooks_sparse = Hooks.from_stdout(raw_sparse)
>>> 0 in hooks_sparse.pane_focus_in
True
>>> 5 in hooks_sparse.pane_focus_in
True
>>> 3 in hooks_sparse.pane_focus_in
False
>>> sorted(hooks_sparse.pane_focus_in.keys())
[0, 5]

Iterate over values in index order:

>>> for cmd in hooks_sparse.pane_focus_in.iter_values():
... print(cmd)
refresh-client
display-message 'focus'

Multiple hook types in one parse:

>>> raw_multi = [
... "after-new-window[0] select-pane -t 0",
... "after-new-window[1] send-keys 'clear' Enter",
... "window-renamed[0] refresh-client -S",
... ]
>>> hooks_multi = Hooks.from_stdout(raw_multi)
>>> len(hooks_multi.after_new_window)
2
>>> len(hooks_multi.window_renamed)
1

Members91#

Common operations1#

  • from_stdout method Parse raw tmux hook output into a Hooks instance.

Other members90#

Inherited members1 member#

Reached through libtmux._internal.dataclasses.SkipDefaultFieldsReprMixin.

tmux hooks#

Events that run tmux commands, with the scope each hook belongs to and where tmux fires it.

Esc

Type to search.

Reference previewOpen reference