Skip to content

Commit 54d9dec

Browse files
committed
feat(constants): add missing tmux 3.5+ options and hooks
why: Ensure libtmux constants cover latest tmux features for complete API support what: - Add ServerOptions: default_client_command, extended_keys_format - Add WindowOptions: tiled_layout_max_columns - Add PaneOptions: pane_scrollbars, pane_scrollbars_style - Add Hooks: pane_title_changed, client_light_theme, client_dark_theme
1 parent d6cfbfc commit 54d9dec

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

src/libtmux/_internal/constants.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@ class ServerOptions(
4444
terminal_features: TerminalFeatures = field(default_factory=dict)
4545
terminal_overrides: SparseArray[str] = field(default_factory=SparseArray)
4646
user_keys: SparseArray[str] = field(default_factory=SparseArray)
47+
# tmux 3.5+ options
48+
default_client_command: str | None = field(default=None)
49+
extended_keys_format: t.Literal["csi-u", "xterm"] | None = field(default=None)
4750

4851
def __init__(self, **kwargs: object) -> None:
4952
# Convert hyphenated keys to underscored attribute names and assign values
@@ -180,6 +183,8 @@ class WindowOptions(
180183
default=None,
181184
)
182185
wrap_search: t.Literal["on", "off"] | None = field(default=None)
186+
# tmux 3.5+ options
187+
tiled_layout_max_columns: int | None = field(default=None)
183188

184189
def __init__(self, **kwargs: object) -> None:
185190
# Convert hyphenated keys to underscored attribute names and assign values
@@ -215,6 +220,9 @@ class PaneOptions(
215220
synchronize_panes: t.Literal["on", "off"] | None = field(default=None)
216221
window_active_style: str | None = field(default=None)
217222
window_style: str | None = field(default=None)
223+
# tmux 3.5+ options
224+
pane_scrollbars: t.Literal["off", "modal", "on"] | None = field(default=None)
225+
pane_scrollbars_style: str | None = field(default=None)
218226

219227
def __init__(self, **kwargs: object) -> None:
220228
# Convert hyphenated keys to underscored attribute names and assign values
@@ -292,6 +300,12 @@ class Hooks(
292300
window_resized: SparseArray[str] = field(default_factory=SparseArray)
293301
# Run when a window is unlinked from a session.
294302
window_unlinked: SparseArray[str] = field(default_factory=SparseArray)
303+
# Run when a pane title changes (tmux 3.5+)
304+
pane_title_changed: SparseArray[str] = field(default_factory=SparseArray)
305+
# Run when terminal reports a light theme (tmux 3.5+)
306+
client_light_theme: SparseArray[str] = field(default_factory=SparseArray)
307+
# Run when terminal reports a dark theme (tmux 3.5+)
308+
client_dark_theme: SparseArray[str] = field(default_factory=SparseArray)
295309

296310
# --- Tmux control mode hooks ---
297311
# The client has detached.

0 commit comments

Comments
 (0)