Changelog

For instructions on installing the development version of libtmux, refer to development releases.

To install via pip, use:

$ pip install --user --upgrade --pre libtmux

libtmux 0.41.x (Yet to be released)

  • Future release notes will be placed here

libtmux 0.40.0 (2024-12-20)

Maintenance only, no bug fixes or new features

Breaking

  • _global renamed to global_

Development

  • Aggressive automated lint fixes via ruff (#550)

    via ruff v0.8.4, all automated lint fixes, including unsafe and previews were applied for Python 3.9:

    ruff check --select ALL . --fix --unsafe-fixes --preview --show-fixes; ruff format .
    
  • Tests: Stability fixes for legacy test_select_pane test (#552)

libtmux 0.39.0 (2024-11-26)

Maintenance only, no bug fixes or new features

Breaking changes

  • Drop Python 3.8. end of life was October 7th, 2024 (#548)

    tmuxp 1.48.0 was the last release for Python 3.8.

    The minimum python for tmuxp as of 1.49.0 is Python 3.9

libtmux 0.38.1 (2024-11-26)

  • Keep minimum Python version at 3.8 for now.

libtmux 0.38.0 (2024-11-26)

Breaking changes

Project and package management: poetry to uv (#547)

uv is the new package and project manager for the project, replacing Poetry.

Build system: poetry to hatchling (#547)

Build system moved from poetry to hatchling.

Development

Documentation

  • Fix docstrings in query_list for MultipleObjectsReturned and ObjectDoesNotExist.

libtmux 0.37.0 (04-21-2024)

Maintenance only, no bug fixes or new features

Testing

  • Add pytest-xdist (PyPI, GitHub) for parallel testing (#522).

    pytest:

    py.test -n auto
    

    pytest-watcher:

    env PYTEST_ADDOPTS='-n auto' make start
    

    entr(1):

    make watch_test test="-n auto"
    
  • Improve flakey tests:

    • retry_until() tests: Relax clock in assert (#522).

    • tests/test_pane.py::test_capture_pane_start: Use retry_until() to poll, improve correctness of test (#522).

Documentation

  • Automatically linkify links that were previously only text.

Development

libtmux 0.36.0 (2024-03-24)

Maintenance only, no bug fixes or new features

Development

  • Aggressive automated lint fixes via ruff (#539)

    via ruff v0.3.4, all automated lint fixes, including unsafe and previews were applied:

    ruff check --select ALL . --fix --unsafe-fixes --preview --show-fixes; ruff format .
    

    Branches were treated with:

    git rebase \
        --strategy-option=theirs \
        --exec 'poetry run ruff check --select ALL . --fix --unsafe-fixes --preview --show-fixes; poetry run ruff format .; git add src tests; git commit --amend --no-edit' \
        origin/master
    

libtmux 0.35.1 (2024-03-23)

Bug fix

libtmux 0.35.0 (2024-03-17)

Breaking changes

  • Eliminate redundant targets / window_index’s across codebase (#536).

libtmux 0.34.0 (2024-03-17)

Breaking changes

Command target change (#535)

Commands: All cmd() methods using custom or overridden targets must use the keyword argument target. This avoids entanglement with inner shell values that include -t for other purposes. These methods include:

libtmux 0.33.0 (2024-03-17)

Breaking changes

Improved new sessions (#532)

Improved window splitting (#532)

  • Window.split_window() to Window.split()

    • Deprecate Window.split_window()

  • Pane.split_window() to Pane.split()

    • Deprecate Pane.split_window()

    • Learned direction, via PaneDirection).

      • Deprecate vertical and horizontal in favor of direction.

    • Learned zoom

Tweak: Pane position (#532)

It’s now possible to retrieve the position of a pane in a window via a bool helper::

Development

libtmux 0.32.0 (2024-03-01)

Maintenance only, no bug fixes or new features

Packaging

  • Add implicit imports to __init__.py (#531), thank you @ssbarnea.

Development

  • ruff 0.2.2 -> 0.3.0

libtmux 0.31.0 (2024-02-17)

Cleanups (#527)

  • Streamline {Server,Session,Window,Pane}.cmd(), across all usages to:

    • Use cmd: str as first positional

    • Removed unused keyword arguments **kwargs

Renamings (#527)

Improvements (#527)

  • Server.attached_windows now uses QueryList’s .filter()

Documentation (#527)

Post-release: v0.31.0post0 (2024-02-17)

  • Documentation updates

libtmux 0.30.2 (2024-02-16)

Development

  • Updated TMUX_MAX_VERSION from 3.3 to 3.4

libtmux 0.30.1 (2024-02-16)

Fixes

  • Adjusted pytest plugin and test module: Updated to use renamed methods from version 0.30.0.

libtmux 0.30.0 (2024-02-16)

Additions

Modifications

  • Window.select_window() renamed to Window.select()

    • Deprecated Window.select_window()

  • Pane.select_pane() renamed to Pane.select()

    • Deprecated Pane.pane_select()

  • Session.attach_session() renamed to Session.attach()

    • Deprecated Session.attach_session()

  • Server.kill_server() renamed to Server.kill()

    • Deprecated Server.kill_server()

  • Session.kill_session() renamed to Session.kill()

    • Deprecated Session.kill_session()

  • Window.kill_window() renamed to Window.kill()

    • Deprecated Window.kill_window()

Enhancements

libtmux 0.29.0 (2024-02-16)

Fixes

Testing

libtmux 0.28.1 (2024-02-15)

Maintenance only, no bug fixes or new features

Testing

  • CI: Bump actions to node 20+ versions

Documentation

  • Refine docs and add migration for v0.28.0

libtmux 0.28.0 (2024-02-14)

Breaking changes

Detached / unselected by default (#523)

To ensure consistency and principle of least surprise, keep these set to not use -a unless explicitly specified.

Breaking: Session.new_window() + Window.split_window() no longer attaches by default.

  • 0.28.0 and greater: Defaults to attach=False.

  • 0.27.1 and below: Defaults to attach=True.

To keep the old behavior in 0.28.0 and beyond, pass attach=True explicitly.

Improved resizing (#523)

Tip: If Pane.resize() was not taking affect <= 0.27.1, try to resize with Window.resize() first.

Fixes

  • Window.refresh() and Pane.refresh(): Refresh more underlying state (#523)

  • Obj._refresh(): Allow passing args (#523)

    e.g. -a (all) to list-panes and list-windows

  • Server.panes: Fix listing of panes (#523)

    Would list only panes in attached session, rather than all in a server.

Improvement

  • Pane, Window: Improve parsing of option values that return numbers (#520)

  • Obj._refresh: Allow passing list_extra_args to ensure list-windows and list-panes can return more than the target (#523)

Tests

  • pytest: Fix usefixture warning (#519)

  • ci: Add tmux 3.4 to test matrix (#909)

libtmux 0.27.1 (2024-02-07)

Packaging

  • Include MIGRATION in source distribution tarball (#517, for #508)

libtmux 0.27.0 (2024-02-07)

Improvement

  • QueryList typings (#515)

    • This improves the annotations in descendant objects such as:

      • Server.sessions

      • Session.windows

      • Window.panes

    • Bolster tests (ported from libvcs): doctests and pytests

libtmux 0.26.0 (2024-02-06)

Breaking changes

  • get_by_id() (already deprecated) keyword argument renamed from id to Server.get_by_id(session_id), Session.get_by_id(window_id), and Window.get_by_id(pane_id) (#514)

Documentation

  • Various docstring fixes and tweaks (#514)

Development

CI

  • Move CodeQL from advanced configuration file to GitHub’s default

libtmux 0.25.0 (2023-11-25)

Improvement

  • Server.__eq__, Session.__eq__, Window.__eq__, Pane.__eq__ now returns False instead of raising AssertionError when type mismatches (#505, #510)

    Thank you @m1guelperez for Window.__eq__! (#505)

Development

  • ci: Add pydocstyle rule to ruff (#509)

Documentation

  • Add docstrings to functions, methods, classes, and packages (#509)

libtmux 0.24.1 (2023-11-23)

Packaging

  • Remove requirements/ folder, which was unused and deprecated by pyproject.toml (#507)

  • pyproject: Add gp-libs to test dependency group

libtmux 0.24.0 (2023-11-19)

Maintenance only, no bug fixes or new features

Breaking changes

  • Python 3.7 Dropped (#497)

Packaging

Development

  • Move formatting from black to ruff format (#506)

    This retains the same formatting style of black while eliminating a dev dependency by using our existing rust-based ruff linter.

  • CI: Update action packages to fix warnings

libtmux 0.23.2 (2023-09-09)

Maintenance only, no bug fixes or new features

Breaking changes

  • Cut last python 3.7 release (EOL was June 27th, 2023)

    For security updates, a 0.23.x branch can be maintained for a limited time, if necessary.

libtmux 0.23.1 (2023-09-02)

Maintenance only, no bug fixes or new features

Development

  • Automated typo fixes from typos-cli:

    typos --format brief --write-changes
    
  • ruff: Remove ERA / eradicate plugin

    This rule had too many false positives to trust. Other ruff rules have been beneficial.

libtmux 0.23.0 (2023-08-20)

Maintenance only, no bug fixes or new features

Development

  • Code quality improved via ruff rules (#488)

    This includes fixes made by hand, and with ruff’s automated fixes. Despite selecting additional rules, which include import sorting, ruff runs nearly instantaneously when checking the whole codebase.

Post-release: v0.23.0post0 (2023-08-20)

  • Fixes code comments cleaned up by ruff, but missed in QA. In the future, even when using an automated tool, we will review more thoroughly.

Post-release: v0.23.0post1 (2023-08-26)

  • Fixes for more ERA001 issues.

Post-release: v0.23.0post2 (2023-08-28)

  • Yet more ERA001 fixes.

libtmux 0.22.2 (2023-08-20)

Development

  • build system: Remove setuptools requirement (#495, in related to #493, #494)

libtmux 0.22.1 (2023-05-28)

Maintenance only, no bug fixes or new features

Development

  • Add back black for formatting

    This is still necessary to accompany ruff, until it replaces black.

libtmux 0.22.0 (2023-05-27)

Maintenance only, no bug fixes or new features

Internal improvements

  • Move formatting, import sorting, and linting to ruff.

    This rust-based checker has dramatically improved performance. Linting and formatting can be done almost instantly.

    This change replaces black, isort, flake8 and flake8 plugins.

  • poetry: 1.4.0 -> 1.5.0

    See also: https://github.com/python-poetry/poetry/releases/tag/1.5.0

libtmux 0.21.1 (2023-04-07)

Development

  • Update mypy to 1.2.0

Fixes

  • SkipDefaultFieldsReprMixin: Fix typing for mypy 1.2.0

libtmux 0.21.0 (2023-01-29)

Breaking internal change

  • Default format separator (LIBTMUX_TMUX_FORMAT_SEPARATOR): | -> (#475, in re: #471, #472)

    Fixes buffer_sample with pipes causing fetch_objs()-powered listings to fail unexpectedly.

libtmux 0.20.0 (2023-01-15)

What’s new

  • Server.new_session: Accept x and y, thanks @rockandska (#469)

  • New test fixture: session_params. The dict is used directly in the session pytest fixture (#470)

libtmux 0.19.1 (2022-01-07)

Fixes

libtmux 0.19.0 (2022-01-07)

New features

  • pane.capture_pane() learned to accept start and end line numbers (#465)

libtmux 0.18.3 (2023-01-07)

Improvement

  • fetch_objs now raises ObjectDoesNotExist with detailed information on lookup that failed (#466)

libtmux 0.18.2 (2022-12-30)

Fixes

  • Server: Launching of new session with default socket (#857)

libtmux 0.18.1 (2022-12-28)

Fixes

  • Window.panes: Fix docstring

  • Remove unused code documentation

libtmux 0.18.0 (2022-12-27)

Breaking

  • Server: Add __repr__ and set socket_path if none set.

    Before (0.17 and below):

    <libtmux.server.Server object at ...>
    

    New __repr__ (0.18+):

    Server(socket_name=test)
    
    Server(socket_path=/tmp/tmux-1000/default)
    

libtmux 0.17.2 (2022-12-27)

  • Server: Move _list_panes and _update_panes to deprecated

libtmux 0.17.1 (2022-12-27)

Fixes

  • Documentation fixes

  • Add deprecation warning to Server.children, Session.children, Window.children.

libtmux 0.17.0 (2022-12-26)

Breaking changes (#426)

New features

Detect if server active (#448)

  • Server.is_alive()

  • Server.raise_if_dead()

Internal

  • Remove unused sphinx-click development dependency

libtmux 0.16.1 (2022-12-12)

Fixes

  • Remove reliance on packaging.version.Version (#461)

    This is too critical of a package to pin a dependency as it may interfere with other packages the user relies on. In addition, libtmux doesn’t need strict compatibility with packaging.

libtmux 0.16.0 (2022-12-10)

Breaking changes

  • Fix distutils warning, vendorize LegacyVersion (#351)

    Removal of reliancy on distutils.version.LooseVersion, which does not support tmux(1) versions like 3.1a.

    Fixes warning:

    DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.

    The temporary workaround, before 0.16.0 (assuming setup.cfg):

    [tool:pytest]
    filterwarnings =
        ignore:.* Use packaging.version.*:DeprecationWarning::
        ignore:The frontend.Option(Parser)? class.*:DeprecationWarning::
    

Features

  • Window.split_window() and Session.new_window() now support an optional dictionary of environmental variables, via (#453), credit @zappolowski.

libtmux 0.15.10 (2022-11-05)

There will be more improvements over the coming weeks and months to shore up flakiness across shells and environments.

Tests

  • Compatibility improvement for test_capture_pane and env (#452), credit: @zappolowski!

  • Remove more BASHisms from tests (#455)

libtmux 0.15.9 (2022-10-30)

Bug fix

  • tmux_cmd(): Fix raise of TmuxCommandNotFound (#450)

CI

  • Use python 3.11 (#451)

Packaging

  • Add python 3.11 to trove classifiers (#451)

Development

  • Add python 3.11 to asdf and pyenv configurations (#451)

libtmux 0.15.8 (2022-10-02)

Bug fix

  • Session.new_window(): Improve support for window_name: '' downstream in tmuxp (#444, credit: @trankchung)

libtmux 0.15.7 (2022-09-23)

  • Move .coveragerc -> pyproject.toml (#443)

libtmux 0.15.6 (2022-09-23)

Maintenance only, no bug fixes or new features

Packaging

  • Remove MANIFEST.in

    This is handled by poetry’s include in pyproject.toml.

libtmux 0.15.5 (2022-09-23)

Maintenance only, no bug fixes or new features

Packaging

  • Remove .tmuxp-before-script.sh from .tmuxp.yaml

libtmux 0.15.4 (2022-09-21)

Fixes

  • Use stable pytest API imports where possible to fix issues in downstream packaging on Arch (#441, via #442)

Packaging

  • Add .tmuxp-before-script.sh (used by .tmuxp.yaml) and conftest.py to source distributoins (#441, via #442)

libtmux 0.15.3 (2022-09-20)

Tests / docs

libtmux 0.15.2 (2022-09-17)

Maintenance release, no features or fixes

Tests

  • pytest plugin: Initial tests (for testing the plugin itself, #423)

Packaging

  • pyproject.toml: Note pytest framework in trove classifiers

Infrastructure

  • CI speedups (#428)

    • Avoid fetching unused apt package

    • Split out release to separate job so the PyPI Upload docker image isn’t pulled on normal runs

libtmux 0.15.1 (2022-09-11)

Packaging

  • pyproject.toml: Drop old issues package, remove anther package from grouping

Documentation

  • Cleanup quickstart page

libtmux 0.15.0 (2022-09-10)

New features

Breaking changes

  • Remove common.which() in favor of shutil.which(), Credit: @rocksandska, via #407

  • Fixes #402: common.tmux_cmd() will only strip trailing empty lines. Before this change, all empty lines were filtered out. This will lead to a more accurate behavior when using Pane.capture_pane(). Credit: @rockandska, via #405.

  • Source files for libtmux modules moved to src/, via #414.

Development

Tests

Documentation

libtmux 0.14.2 (2022-08-17)

Fixes

libtmux 0.14.1 (2022-08-17)

Fixes

libtmux 0.14.0 (2022-08-05)

Breaking changes

Tests and docs

  • Initial doctests examples stubbed out #394

  • Fix bug in temp_window() context manager, #394

  • Pytest configuration conftest.py moved to libtmux/conftest.py, so doctest can detect the fixtures #394

libtmux 0.13.0 (2022-08-05)

What’s new

Breaking changes

  • Deprecated individual item lookups (#390)

    • Removed key lookups from libtmux.common.EnvironmentMixin.show_environment()

      Only EnvironmentMixin.show_environment() (without an argument) exists, and it still returns a dict.

    • Add key lookups via libtmux.common.EnvironmentMixin.getenv()

      # Before
      server.show_environment('DISPLAY')
      
      # After
      server.getenv('DISPLAY')
      
      # Before
      session.show_environment('DISPLAY')
      
      # After
      session.getenv('DISPLAY')
      
    • Removed key lookups from Session.show_options()

      session.show_options()  # still returns dict, without an argument
      
      # Old
      session.show_options('DISPLAY')
      
      # Now
      session.show_option('DISPLAY')
      
    • Removed key lookups from Window.show_window_options()

      window.show_window_options()  # still returns dict, without an argument
      
      # Old
      window.show_window_options('DISPLAY')
      
      # Now
      window.show_window_option('DISPLAY')
      
  • Remove libtmux.test.retry(), deprecated since 0.12.x (#393)

Development

  • Fix incorrect function name findWhere() (#391)

libtmux 0.12.0 (2022-07-13)

Compatibility

  • Brought back python 3.7 and 3.8 support (#375)

  • Support for tmux 3.3a

    • Add to CI

    • Bump TMUX_MAX_VERSION from 2.4 -> 3.3

      2.4 to 3.3a already worked, this is just the constant being updated.

Development

  • Remove tox and tox-poetry-installer

    This created issues with running poetry while inside the virtualenv.

  • Typings: Core relations, e.g. Pane.window, Pane.session, Pane.server, Window.server #385

Documentation

  • Renewed logo

  • Try out sphinx-autoapi for its table of contents generation (#367)

  • Break up API documentations for utilities, exception, and test helpers and remove duplicate docs from API page. Server, session, window, and pane docs are in the Reference section now.

Testing

  • retry(): Add deprecation warning. This will be removed in 0.13.x (#368, #372)

  • New function retry_until(): Polls a callback function for a set period of time until it returns True or times out. By default it will raise libtmux.exc.WaitTimeout, with raises=False it will return False. Thank you @categulario! (#368, #372)

  • #384 Chore: Use absolute modules rather than root-level to avoid cyclic imports.

    # Bad / Old
    from libtmux import Server
    
    # Good / New
    from libtmux.server import Server
    

Internals

  • #382 [mypy] support added:

    • Basic mypy tests now pass

libtmux 0.11.0 (2022-03-10)

Compatibility

  • Python 3.7 and 3.8 returns in 0.12.0

    Final python 3.7 and 3.8 release

    Fixes and security updates will go to v0.11.x

  • Internal: Use new separator to split tmux(1) formatting information (#289, #343)

    The separator is configurable via LIBTMUX_TMUX_FORMAT_SEPARATOR. If you ever have compatibility issues in the future let us know which default works best across versions.

    Credit: @JonathanRaiman and @jagguli

  • Basic type annotations (#359, #361) via @otherJL0

Development

  • Code cleanup (#362) from @otherJL0

  • Format with black w/ string normalization. This is a one-time diff (#354)

Documentation

  • Sidebar reorganized into sections

  • Added documentation on fetching developmental releases of libtmux

libtmux 0.10.3 (2022-01-10)

Packaging

First experimental release using poetry build (#347). If you are packaging and run across any difficulty please see #346.

Compatibility

  • Drop python 3.6 (#344)

  • Add python 3.10, though still packaging.version issues remain (#344)

    A compat module and version constraints will need to be added for this

Development

  • poetry: 1.1.7 -> 1.1.12 (#344)

  • Add .pre-commit-config.yaml (#344)

libtmux 0.10.2 (2021-10-30)

  • #324: Update poetry to 1.1

    • CI: Use poetry 1.1.7 and install-poetry.py installer

    • Relock poetry.lock at 1.1 (w/ 1.1.7’s fix)

  • #339 (CI): Lock python at 3.9 to avoid poetry issue with dataclasses

  • ci: Fix publishing docs (similar to #339)

  • #341 #342: Server.attached_sessions() now supports multiple attached sessions.

    Remove attached sessions limitation to not detect multiple attached clients, thank you @timoses

libtmux 0.10.1 (2021-06-16)

  • Update Window.select_window() for #271

libtmux 0.10.0 (2021-06-16)

  • #321: Convert to markdown

  • #271: Fix select_window() by providing the session ID as argument to -t. Thanks @Flowdalic

  • Drop python 3.5 support

libtmux 0.9.0 (2021-06-14)

Python 2.7 support dropped.

  • #306: chore: Remove python 2.7 support

  • #314: chore: Python 3.x syntax tweaks

  • #312: ci: Add tmux 3.2a to CI

  • chore: Update black to 21.6b0

  • #271: Fix select_window() by providing the session ID as argument to -t.

libtmux 0.8.5 (2020-10-25)

  • #297: Enchance subprocess interaction std[in|out|err]. Needed for interact with big buffer, fixes #251, thank you @gil-obradors!

  • #303 Add common.get_libtmux_version which gives the tmux version as a loose constraint. Fix linking to terms inside docs, and duplicate description of module which sphinx warned about in api.rst.

  • #266 Fix issue on local tests where env variables would cause show-environment to pause tests indefinitely.

libtmux 0.8.4 (2020-10-25)

  • #234: Window.split_window: Allow passing percent, Thank you @jinankjain!

  • #289: Fix warning due to invalid escape sequences, Thank you @tirkarthi!

  • #295: Publish docs via our own action

  • #295: Move more packaging over to poetry, though we’ll keep setup.py for the moment to ensure compatibility package maintainers.

  • #295: New development instructions

  • #295: Move doc/ to docs/

  • #296: CI: Test python 2.7, cache python packages, prevent running internal PRs twice

libtmux 0.8.3 (2020-08-16)

  • #278: Fix Python deprecation warnings, thanks @d1618033

    Also thanks Flowdalic for a similar PR at #294

  • Add project_urls to setup.py

  • #293 Move from Pipfile to poetry

  • Fix show_option test in tmux 3.0

  • Clean up handle_option_error comments

  • Move CI to a GitHub action

libtmux 0.8.2 (2019-06-02)

  • CHANGES updated to plain reStructuredText

  • Add project_urls to setup.py for pypi.

  • Looser Pipfile versions, add Pipfile.lock

libtmux 0.8.1 (2019-01-26)

  • #117 Fix issue with renaming clients with tmux 2.7 on BSD/macOS machines.

  • #121 Support literal=True (-l) in Pane.send_keys from @ritiek

  • #131 Fix for unicode commands in Python 2, thanks @myw

  • #172 Support for next-X.Y versions from @sloria

  • #120 capture_pane support for Pane

  • #119 display_message support for Pane

  • Sort imports with isort

  • Add sphinxcontrib-napoleon package for documentation

  • Move docstrings over to numpy’s style

libtmux 0.8.0 (2018-03-11)

  • #46 Change license from BSD to MIT

  • Move to new organization, tmux-python

  • Support package updates to pytest, sphinx, etc.

  • Travis/CI: Limit tests to Python 2.7 and 3.6 (removed 3.3 to 3.5)

  • Travis/CI: Update pypy veersions

  • #103 Server.new_session learned how to run commands in window on session start, thanks @grimpy!

  • #68 Make Server.has_session() use returncode, thanks @jlargentaye! This should make has_session more robust.

libtmux 0.7.8 (2018-03-04)

libtmux 0.7.7 (2017-11-10)

  • Don’t add -x/-y in tmux >= 2.6 if running tmuxp from inside client.

libtmux 0.7.6 (2017-11-09)

  • Allow Window.select_layout with no args

  • Fix test where bell- was no longer ambiguous as of tmux 2.6

libtmux 0.7.5 (2017-10-07)

  • Hotfix to support tmux 2.6 session creation

libtmux 0.7.4 (2017-08-19)

libtmux 0.7.3 (2017-05-29)

  • Exact matches only supported on 2.1 and up

libtmux 0.7.2 (2017-05-29)

  • Support exact matching in Server.has_session

libtmux 0.7.1 (2017-04-28)

  • #37 Improve support for formatted options like pane-border-status. Thanks @kaushalmodi.

libtmux 0.7.0 (2017-04-27)

  • Support for python 2.6 dropped. New minimum version is 2.7

  • Add support for tmux 2.4, pypy and pypy3

  • Overhaul error handling when setting and showing options

  • Overhaul version checking

    • has_version has been renamed to get_version

    • get_version will return tmux built from git master as the latest version supported by the libtmux version with -master at the end, e.g. 2.4-master

    • get_version will return tmux on openbsd base system as the latest version supported by the libtmux version with -openbsd at the end, e.g. 2.4-openbsd

    • has_required_tmux_version has been renamed to has_minimum_version

    • added has_gt_version, has_gte_version, has_lt_version, has_lte_version,

  • Fixed up documentation in some session methods

  • Added pydoc exception info to option methods in window and sessions.

  • Added TMUX_MIN_VERSION and TMUX_MAX_VERSION

libtmux 0.6.5 (2017-04-02)

  • Fix which command

  • Add TmuxCommandNotFound exception

  • Add tmux_search_paths and append_env_path kwargs to tmux_cmd.

libtmux 0.6.4 (2017-03-25)

  • #32 support for OpenBSD’s tmux

libtmux 0.6.3 (2017-02-08)

  • #25 support for working with tmux master, thanks @sloria.

libtmux 0.6.2 (2017-01-19)

  • #197 use LooseVersion instead of StrictVersion for version checks. Thanks @minijackson.

  • Pin packages with pyup.io

  • #21 Readme fix from @huwenchao.

libtmux 0.6.1 (2016-12-20)

  • #18 Fix logger, courtesy of @geekli

  • #19 Add support for start_directory in new sessions and panes, courtesy of @gandelman-a.

  • Fix tests and add official support for 2.3

libtmux 0.6.0 (2016-09-16)

  • Raise exception for invalid session names. tmux does not allow names that are empty, contain periods or colons.

  • Remove unused target_session param in Server.attach_session and Server.switch_client.

libtmux 0.5.1 (2016-08-18)

  • #12 - fix logger message when tmux doesn’t exist in PATH

libtmux 0.5 (2016-06-15)

  • #8 new exception UnknownOption

  • #8 return None for options that are valid tmux options, but unset at that scope.

  • #6 major documentation overhaul

libtmux 0.4.1 (2016-05-23)

libtmux 0.4.0 (2016-05-23)

  • attributes for formatters are now accessible via Session, Window and Pane objects. session.name is equivalent to session.get('session_name'), you can do the same with other properties in _info. window.name, pane.current_path, session.id, window.id, pane.id, session.index, window.index, pane.index, etc.

  • attached_sessions, attached_window and attached_pane are now properties.

  • _TMUX metadata object changed to _info.

  • .findWhere() is now find_where.

  • README and usage fixes

libtmux 0.3.0 (2016-05-23)

  • switch to pytest

libtmux 0.1.0 (2016-05-22)

  • libtmux forked from tmuxp.