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.45.x (Yet to be released)ΒΆ
Future release notes will be placed here
DevelopmentΒΆ
libtmux 0.44.2 (2025-02-17)ΒΆ
Bug fixΒΆ
DevelopmentΒΆ
Improved test organization and coverage in
test_common.py
(#570):Consolidated version-related tests into parametrized fixtures using NamedTuples
Added comprehensive test cases for various version formats (master, next, OpenBSD, dev, rc)
Improved test readability with clear test IDs and logical grouping
Consistent use of pytest parametrize convention across test suite
libtmux 0.44.1 (2025-02-17)ΒΆ
PackagingΒΆ
libtmux 0.44.0 (2025-02-16)ΒΆ
New FeaturesΒΆ
Context Managers support (#566)ΒΆ
Added context manager support for all major object types:
Server
: Automatically kills the server when exiting the contextSession
: Automatically kills the session when exiting the contextWindow
: Automatically kills the window when exiting the contextPane
: Automatically kills the pane when exiting the context
Example usage:
with Server() as server:
with server.new_session() as session:
with session.new_window() as window:
with window.split() as pane:
pane.send_keys('echo "Hello"')
# Do work with the pane
# Everything is cleaned up automatically when exiting contexts
This makes it easier to write clean, safe code that properly cleans up tmux resources.
libtmux 0.43.0 (2025-02-15)ΒΆ
New FeaturesΒΆ
Server Initialization CallbacksΒΆ
Server now accepts 2 new optional params, socket_name_factory
and on_init
callbacks (#565):
socket_name_factory
: Callable that generates unique socket names for new serverson_init
: Callback that runs after server initializationUseful for creating multiple servers with unique names and tracking server instances
Socket name factory is tried after socket_name, maintaining backward compatibility
New test fixture: TestServer
ΒΆ
Add TestServer
pytest fixture for creating temporary tmux servers (#565):
Creates servers with unique socket names that clean up after themselves
Useful for testing interactions between multiple tmux servers
Includes comprehensive test coverage and documentation
Available in doctest namespace
DocumentationΒΆ
libtmux 0.42.1 (2024-02-15)ΒΆ
Bug fixesΒΆ
DevelopmentΒΆ
libtmux 0.42.0 (2025-02-02)ΒΆ
Bug fixesΒΆ
libtmux 0.41.0 (2025-02-02)ΒΆ
FixesΒΆ
DocumentationΒΆ
DevelopmentΒΆ
chore: Implement PEP 563 deferred annotation resolution (#555)ΒΆ
Add
from __future__ import annotations
to defer annotation resolution and reduce unnecessary runtime computations during type checking.Enable Ruff checks for PEP-compliant annotations:
For more details on PEP 563, see: https://peps.python.org/pep-0563/
libtmux 0.40.1 (2024-12-24)ΒΆ
Bug fixΒΆ
libtmux 0.40.0 (2024-12-20)ΒΆ
Maintenance only, no bug fixes or new features
BreakingΒΆ
_global
renamed toglobal_
DevelopmentΒΆ
libtmux 0.39.0 (2024-11-26)ΒΆ
Maintenance only, no bug fixes or new features
Breaking changesΒΆ
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ΒΆ
Code quality: Use f-strings in more places (#540)
via ruff 0.4.2.
DocumentationΒΆ
Fix docstrings in
query_list
forMultipleObjectsReturned
andObjectDoesNotExist
.
libtmux 0.37.0 (04-21-2024)ΒΆ
Maintenance only, no bug fixes or new features
TestingΒΆ
DocumentationΒΆ
Automatically linkify links that were previously only text.
DevelopmentΒΆ
poetry: 1.8.1 -> 1.8.2
See also: https://github.com/python-poetry/poetry/blob/1.8.2/CHANGELOG.md
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ΒΆ
Server.attached_sessions
fix for when multiple clients attached, thank you @patrislav1 (#537)#538 fix to
QueryList
.
libtmux 0.35.0 (2024-03-17)ΒΆ
Breaking changesΒΆ
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)ΒΆ
Session.new_window()
:Learned
direction
, viaWindowDirection
).
Added
Window.new_window()
shorthand to create window based on that windowβs position.
Improved window splitting (#532)ΒΆ
Window.split_window()
toWindow.split()
Deprecate
Window.split_window()
Pane.split_window()
toPane.split()
Deprecate
Pane.split_window()
Learned
direction
, viaPaneDirection
).Deprecate
vertical
andhorizontal
in favor ofdirection
.
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ΒΆ
poetry: 1.7.1 -> 1.8.1
See also: https://github.com/python-poetry/poetry/blob/1.8.1/CHANGELOG.md
libtmux 0.32.0 (2024-03-01)ΒΆ
Maintenance only, no bug fixes or new features
PackagingΒΆ
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 positionalRemoved unused keyword arguments
**kwargs
Renamings (#527)ΒΆ
Session.attached_window
renamed toSession.active_window()
Session.attached_window
deprecated
Session.attached_pane
renamed toSession.active_pane()
Session.attached_pane
deprecated
Window.attached_pane
renamed toWindow.active_pane()
Window.attached_pane
deprecated
Improvements (#527)ΒΆ
Server.attached_windows
now usesQueryList
βs.filter()
Documentation (#527)ΒΆ
Document
.cmd
in README and quickstartAdd doctests and improve docstrings to
cmd()
methods across:
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ΒΆ
Introduced
Pane.kill()
method
ModificationsΒΆ
Window.select_window()
renamed toWindow.select()
Deprecated
Window.select_window()
Pane.select_pane()
renamed toPane.select()
Deprecated
Pane.pane_select()
Session.attach_session()
renamed toSession.attach()
Deprecated
Session.attach_session()
Server.kill_server()
renamed toServer.kill()
Deprecated
Server.kill_server()
Session.kill_session()
renamed toSession.kill()
Deprecated
Session.kill_session()
Window.kill_window()
renamed toWindow.kill()
Deprecated
Window.kill_window()
EnhancementsΒΆ
Server.new_session()
: Support environment variablesWindow.split_window()
: Supportsize
via-l
Supports columns/rows (
size=10
) and percentage (size='10%'
)
libtmux 0.29.0 (2024-02-16)ΒΆ
FixesΒΆ
Use
DeprecationWarning
for APIs set to be deprecated (#526)
TestingΒΆ
pytest: Ignore
DeprecationWarning
by default (#526)
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)ΒΆ
Breaking:
Pane.resize_pane()
renamed toPane.resize()
(#523)This convention will be more consistent with
Window.resize()
.Breaking:
Pane.resize()
βs params changed (#523)No longer accepts
-U
,-D
,-L
,-R
directly, instead acceptsResizeAdjustmentDirection
).
-
Accept adjustments via
adjustment_direction
w/ResizeAdjustmentDirection
+adjustment
.Learned to accept manual
height
and / orwidth
(columns/rows or percentage)Zoom (and unzoom)
Window.resize()
: Newly added
Tip: If Pane.resize()
was not taking affect <= 0.27.1, try to resize with
Window.resize()
first.
FixesΒΆ
Window.refresh()
andPane.refresh()
: Refresh more underlying state (#523)Obj._refresh()
: Allow passing args (#523)e.g.
-a
(all) tolist-panes
andlist-windows
Server.panes
: Fix listing of panes (#523)Would list only panes in attached session, rather than all in a server.
ImprovementΒΆ
TestsΒΆ
libtmux 0.27.1 (2024-02-07)ΒΆ
PackagingΒΆ
libtmux 0.27.0 (2024-02-07)ΒΆ
ImprovementΒΆ
libtmux 0.26.0 (2024-02-06)ΒΆ
Breaking changesΒΆ
DocumentationΒΆ
DevelopmentΒΆ
-
Add flake8-commas (COM)
Add flake8-builtins (A)
Add flake8-errmsg (EM)
CIΒΆ
Move CodeQL from advanced configuration file to GitHubβs default
libtmux 0.25.0 (2023-11-25)ΒΆ
ImprovementΒΆ
DevelopmentΒΆ
DocumentationΒΆ
libtmux 0.24.1 (2023-11-23)ΒΆ
PackagingΒΆ
libtmux 0.24.0 (2023-11-19)ΒΆ
Maintenance only, no bug fixes or new features
Breaking changesΒΆ
PackagingΒΆ
Poetry: 1.5.1 -> 1.6.1 (#497), 1.6.1 -> 1.7.0 (direct to trunk)
See also: https://github.com/python-poetry/poetry/blob/1.7.0/CHANGELOG.md
Packaging (poetry): Fix development dependencies
Per Poetryβs docs on managing dependencies and
poetry check
, we had it wrong: Instead of using extras, we should create these:[tool.poetry.group.group-name.dependencies] dev-dependency = "1.0.0"
Which we now do.
DevelopmentΒΆ
Move formatting from
black
toruff format
(#506)This retains the same formatting style of
black
while eliminating a dev dependency by using our existing rust-basedruff
linter.CI: Update action packages to fix warnings
dorny/paths-filter: 2.7.0 -> 2.11.1
codecov/codecov-action: 2 -> 3
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
pluginThis 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ΒΆ
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ΒΆ
libtmux 0.22.1 (2023-05-28)ΒΆ
Maintenance only, no bug fixes or new features
DevelopmentΒΆ
Add back
black
for formattingThis 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ΒΆ
libtmux 0.20.0 (2023-01-15)ΒΆ
Whatβs newΒΆ
libtmux 0.19.1 (2022-01-07)ΒΆ
FixesΒΆ
libtmux 0.19.0 (2022-01-07)ΒΆ
New featuresΒΆ
libtmux 0.18.3 (2023-01-07)ΒΆ
ImprovementΒΆ
libtmux 0.18.2 (2022-12-30)ΒΆ
FixesΒΆ
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 setsocket_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)ΒΆ
Finding objects / relations
0.16 and below:
session._windows()
,session.list_windows()
, etc.0.17 and after:
session.windows
0.16 and below:
session.find_where({'window_name': my_window})
0.17 and after:
session.windows.get(window_name=my_window, default=None)
If not found and not
default
, raisesObjectDoesNotExist
If multiple objects found, raises
MultipleObjectsReturned
0.16 and below:
session.where({'window_name': my_window})
0.17 and after:
session.windows.filter(window_name=my_window)
Accessing attributes
0.16 and below:
window['id']
0.17 and after:
window.id
0.16 and below:
window.get('id')
0.17 and after:
window.id
0.16 and below:
window.get('id', None)
0.17 and after:
getattr(window, 'id', None)
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ΒΆ
libtmux 0.16.0 (2022-12-10)ΒΆ
Breaking changesΒΆ
Fix
distutils
warning, vendorizeLegacyVersion
(#351)Removal of reliancy on
distutils.version.LooseVersion
, which does not supporttmux(1)
versions like3.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ΒΆ
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ΒΆ
libtmux 0.15.9 (2022-10-30)ΒΆ
Bug fixΒΆ
CIΒΆ
PackagingΒΆ
DevelopmentΒΆ
libtmux 0.15.8 (2022-10-02)ΒΆ
Bug fixΒΆ
libtmux 0.15.7 (2022-09-23)ΒΆ
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ΒΆ
PackagingΒΆ
libtmux 0.15.3 (2022-09-20)ΒΆ
Tests / docsΒΆ
Move conftest.py to root level (#440)
https://docs.pytest.org/en/stable/deprecations.html#pytest-plugins-in-non-top-level-conftest-files
Less conftest.py files
We can now run py.test for
README.md
without needing to proxy throughdocs/index.md
libtmux 0.15.2 (2022-09-17)ΒΆ
Maintenance release, no features or fixes
TestsΒΆ
PackagingΒΆ
pyproject.toml: Note pytest framework in trove classifiers
InfrastructureΒΆ
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ΒΆ
Added a pytest plugin, #411.
Breaking changesΒΆ
Remove
common.which()
in favor ofshutil.which()
, Credit: @rocksandska, via #407Fixes #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 usingPane.capture_pane()
. Credit: @rockandska, via #405.
DevelopmentΒΆ
TestsΒΆ
Test doctests in documentation via pytest-doctest-docutils (#410)
DocumentationΒΆ
Examples updated for correctness, #412 (cherry-picked from #410)
Render changelog in linkify_issues (#410)
Fix Table of contents rendering with sphinx autodoc with sphinx_toctree_autodoc_fix (#410)
libtmux 0.14.2 (2022-08-17)ΒΆ
FixesΒΆ
Server.new_session()
really works withoutsession_name
, #401 fixes #399. Improved tests and doctests added.
libtmux 0.14.1 (2022-08-17)ΒΆ
FixesΒΆ
Server.new_session()
works withoutsession_name
, #400 fixes #399This still passed
None
to the session name, this was fixed in v0.14.2.
libtmux 0.14.0 (2022-08-05)ΒΆ
Breaking changesΒΆ
Pane.send_keys()
:suppress_history
default value changed fromTrue
toFalse
, #395
Tests and docsΒΆ
libtmux 0.13.0 (2022-08-05)ΒΆ
Whatβs newΒΆ
Improved typings
Now
mypy --strict
compliant (#383)
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 adict
.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')
DevelopmentΒΆ
libtmux 0.12.0 (2022-07-13)ΒΆ
CompatibilityΒΆ
DevelopmentΒΆ
DocumentationΒΆ
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 returnsTrue
or times out. By default it will raiselibtmux.exc.WaitTimeout
, withraises=False
it will returnFalse
. 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 releaseFixes and security updates will go tov0.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
DevelopmentΒΆ
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ΒΆ
DevelopmentΒΆ
libtmux 0.10.2 (2021-10-30)ΒΆ
#324: Update poetry to 1.1
CI: Use poetry 1.1.7 and
install-poetry.py
installerRelock poetry.lock at 1.1 (w/ 1.1.7βs fix)
#339 (CI): Lock python at 3.9 to avoid poetry issue with
dataclasses
#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)ΒΆ
libtmux 0.10.0 (2021-06-16)ΒΆ
libtmux 0.9.0 (2021-06-14)ΒΆ
Python 2.7 support dropped.
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 passingpercent
, 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)ΒΆ
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
) inPane.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 forPane
#119
display_message
support forPane
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)ΒΆ
Port
retry
function from tmuxp (https://github.com/tmux-python/tmuxp/issues/354)
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 argsFix 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)ΒΆ
#65 Add session id to commands, thanks @askedrelic
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
Added
handle_option_error
for handling option errorsAdded
libtmux.exc.OptionError
base exceptionAdded
libtmux.exc.InvalidOption
andlibtmux.exc.AmbiguousOption
libtmux.exc.UnknownOption
now extendslibtmux.exc.OptionError
Overhaul version checking
has_version
has been renamed toget_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 tohas_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
andTMUX_MAX_VERSION
libtmux 0.6.5 (2017-04-02)ΒΆ
Fix
which
commandAdd
TmuxCommandNotFound
exceptionAdd
tmux_search_paths
andappend_env_path
kwargs totmux_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)ΒΆ
libtmux 0.6.1 (2016-12-20)ΒΆ
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 inServer.attach_session
andServer.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)ΒΆ
libtmux 0.4.1 (2016-05-23)ΒΆ
update
which()
to find tmux viaos.environ['PATH']
. https://redd.it/4laeut
libtmux 0.4.0 (2016-05-23)ΒΆ
attributes for formatters are now accessible via
Session
,Window
andPane
objects.session.name
is equivalent tosession.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
andattached_pane
are now properties._TMUX
metadata object changed to_info
..findWhere()
is nowfind_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.