Utilities¶
Helper methods and mixins for libtmux.
libtmux.common¶
-
libtmux.common.TMUX_MIN_VERSION = '3.2a'¶libtmux.common.TMUX_MIN_VERSION = '3.2a'¶
Minimum version of tmux required to run libtmux
-
libtmux.common.TMUX_MAX_VERSION = '3.7'¶libtmux.common.TMUX_MAX_VERSION = '3.7'¶
Most recent version of tmux supported
-
class libtmux.common.CmdProtocol¶class libtmux.common.CmdProtocol¶
Bases:
ProtocolCommand protocol for tmux command.
-
class libtmux.common.CmdMixin¶class libtmux.common.CmdMixin¶
Bases:
objectCommand mixin for tmux command.
-
class libtmux.common.EnvironmentMixin¶class libtmux.common.EnvironmentMixin¶
Bases:
objectMixin for manager session and server level environment variables in tmux.
-
libtmux.common.raise_if_stderr(proc, subcommand)¶libtmux.common.raise_if_stderr(proc, subcommand)¶
Raise
LibTmuxExceptiontagged with the tmux subcommand on stderr.Centralizes the
if proc.stderr: raise exc.LibTmuxException(proc.stderr)pattern scattered across the wrappers. Tags the exception with the originating tmux subcommand so downstream consumers (e.g. libtmux-mcp’shandle_tool_errors) keep the “which tmux command failed” context.- Parameters:
proc (
tmux_cmd) – Result of aServer.cmd()/Session.cmd()/ etc. call.subcommand (
str) – The tmux subcommand the wrapper invoked, e.g."last-window","swap-pane". Surfaces instr(exc)as a"<subcommand>: …"prefix.
- Raises:
LibTmuxException– Whenproc.stderris non-empty.- Return type:
Examples
>>> from libtmux.common import raise_if_stderr >>> from libtmux import exc >>> proc = session.cmd("display-message", "-p", "#{session_id}") >>> raise_if_stderr(proc, "display-message") # no stderr → no raise
Added in version 0.57.
-
class libtmux.common.tmux_cmd¶class libtmux.common.tmux_cmd¶
Bases:
objectRun any tmux(1) command through
subprocess.Examples
Create a new session, check for error:
>>> proc = tmux_cmd(f'-L{server.socket_name}', 'new-session', '-d', '-P', '-F#S') >>> if proc.stderr: ... raise exc.LibTmuxException( ... 'Command: %s returned error: %s' % (proc.cmd, proc.stderr) ... ) ...
>>> print(f'tmux command returned {" ".join(proc.stdout)}') tmux command returned 2
Equivalent to:
$ tmux new-session -s my session
Notes
Changed in version 0.8: Renamed from
tmuxtotmux_cmd.
-
libtmux.common.get_version(tmux_bin=None)¶libtmux.common.get_version(tmux_bin=None)¶
Return tmux version.
If tmux is built from git master, the version returned will be the latest version appended with -master, e.g.
2.4-master.If using OpenBSD’s base system tmux, the version will have
-openbsdappended to the latest version, e.g.2.4-openbsd.- Parameters:
tmux_bin (
str,optional) – Path to tmux binary. If None, uses the system tmux fromshutil.which().- Returns:
tmux version according to tmux_bin if provided, otherwise the system tmux from
shutil.which()- Return type:
distutils.version.LooseVersion
Notes
Memoized via
functools.cache(), keyed on the tmux_bin argument (Noneis a distinct key from any explicit path). The cache is sticky acrossPATHchanges and on-disk binary swaps when tmux_bin isNoneor the same path string — callget_version.cache_clear()to invalidate. Tests that monkey-patchtmux_cmdshould callcache_clear()before asserting parsed-version behavior.
-
libtmux.common.has_version(version, tmux_bin=None)¶libtmux.common.has_version(version, tmux_bin=None)¶
Return True if tmux version installed.
-
libtmux.common.has_gt_version(min_version, tmux_bin=None)¶libtmux.common.has_gt_version(min_version, tmux_bin=None)¶
Return True if tmux version greater than minimum.
-
libtmux.common.has_gte_version(min_version, tmux_bin=None)¶libtmux.common.has_gte_version(min_version, tmux_bin=None)¶
Return True if tmux version greater or equal to minimum.
-
libtmux.common.has_lte_version(max_version, tmux_bin=None)¶libtmux.common.has_lte_version(max_version, tmux_bin=None)¶
Return True if tmux version less or equal to minimum.
-
libtmux.common.has_lt_version(max_version, tmux_bin=None)¶libtmux.common.has_lt_version(max_version, tmux_bin=None)¶
Return True if tmux version less than minimum.
-
libtmux.common.has_minimum_version(raises=True, tmux_bin=None)¶libtmux.common.has_minimum_version(raises=True, tmux_bin=None)¶
Return True if tmux meets version requirement. Version >= 3.2a.
- Parameters:
- Returns:
True if tmux meets minimum required version.
- Return type:
- Raises:
libtmux.exc.VersionTooLow– tmux version below minimum required for libtmux
Notes
Changed in version 0.49.0: Minimum version bumped to 3.2a. For older tmux, use libtmux v0.48.x.
Changed in version 0.7.0: No longer returns version, returns True or False
Changed in version 0.1.7: Versions will now remove trailing letters per Issue 55.
-
libtmux.common.session_check_name(session_name)¶libtmux.common.session_check_name(session_name)¶
Raise exception session name invalid, modeled after tmux function.
tmux(1) session names may not be empty, or include periods or colons. These delimiters are reserved for noting session, window and pane.
- Parameters:
session_name (
str) – Name of session.- Raises:
exc.BadSessionName– Invalid session name.- Return type: