Changelog#
To install the unreleased tmuxp version, see developmental releases.
pip:
$ pip install --user --upgrade --pre tmuxp
pipx:
$ pipx install --suffix=@next 'tmuxp' --pip-args '\--pre' --force
// Usage: tmuxp@next load yoursession
tmuxp 1.35.x (unreleased)#
tmuxp 1.34.0 (2023-12-21)#
Maintenance only, no bug fixes or new features
Breaking changes#
Documentation#
tmuxp 1.33.0 (2023-12-21)#
Maintenance only, no bug fixes or new features
CI#
Documentation#
tmuxp 1.32.1 (2023-11-23)#
Packaging#
- pypoetry: Add - gp-libto- testdependency group
Development#
- libtmux: 0.24.0 -> 0.24.1 (maintenance release) 
Tests#
tmuxp 1.32.0 (2023-11-19)#
Maintenance only, no bug fixes or new features
Packaging#
- Poetry: 1.6.1 -> 1.7.0 - See also: https://github.com/python-poetry/poetry/blob/1.7.0/CHANGELOG.md 
- Add Python 3.12 to trove classifiers 
- 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#
- libtmux: 0.23.0 -> 0.24.0 (maintenance release) 
- Move formatting from - blackto- ruff format(#890)- This retains the same formatting style of - blackwhile eliminating a dev dependency by using our existing rust-based- rufflinter.
- CI: Update action packages to fix warnings - dorny/paths-filter: 2.7.0 -> 2.11.1 
 
tmuxp 1.31.0 (2023-09-23)#
Breaking changes#
Development#
- Improved typings - Now - mypy --strictcompliant (#859)
tmuxp 1.30.1 (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 1.30.x branch can be maintained for a limited time, if necessary. 
tmuxp 1.30.0 (2023-09-04)#
Maintenance only, no bug fixes or new features
Development#
Packaging#
- libtmux: v0.23.1 -> v0.23.2 - Final Python 3.7 release of libtmux 
Documentation#
tmuxp 1.29.1 (2023-09-02)#
Maintenance only, no bug fixes or new features
Development#
- libtmux: v0.23.0 -> v0.23.1 - Typo fixes inside libtmux 
Docs#
tmuxp 1.29.0 (2023-08-20)#
Maintenance only, no bug fixes or new features
Development#
Post-release: v1.29.0post0 (2023-09-02)#
- libtmux post-release bumps - Re-add comments that went missing from - ruffformatter.
tmuxp 1.28.2 (2023-08-20)#
Maintenance only, no bug fixes or new features
Packaging#
- libtmux v0.22.1 -> v0.22.2 - Removes - setuptoolsfrom- build-systemrequirements
tmuxp 1.28.1 (2023-05-28)#
Maintenance only, no bug fixes or new features
Development#
- Add back - blackfor formatting- This is still necessary to accompany - ruff, until it replaces black.
tmuxp 1.28.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. 
- libtmux: 0.21.1 -> 0.22.0 (Moved to ruff as well) 
- poetry: 1.4.0 -> 1.5.0 - See also: https://github.com/python-poetry/poetry/releases/tag/1.5.0 
tmuxp 1.27.1 (2022-04-07)#
Maintenance only, no bug fixes or new features
Development#
- Update mypy to 1.2.0 
- libtmux 0.21.0 -> 0.21.1 (mypy / typing updates only) 
tmuxp 1.27.0 (2022-01-29)#
Maintenance only, no bug fixes or new features
Internal improvements#
- libtmux 0.20.0 -> 0.21.0 (#865) - This updates the separator uses from libtmux to be a rarer character. See libtmux#475. 
tmuxp 1.26.0 (2023-01-15)#
Maintenance only, no bug fixes or new features
Internal improvements#
tmuxp 1.25.0 (2023-01-07)#
Internal improvements#
tmuxp 1.24.1 (2023-01-07)#
Internal improvements#
- libtmux: 0.18.2 -> 0.18.3 (#861) - via libtmux#466 
- tests(test_pane_order): Improve reliability of - pane_current_pathtest.
tmuxp 1.24.0 (2022-12-30)#
Maintenance only, no bug fixes or new features
Internal improvements#
- libtmux: 0.18.1 -> 0.18.2 - Fix for starting new sessions at default socket / temporary directory (libtmux#464) 
- CLI Tests: Refactor - tests/cli(#858)- Fix resolution of directories 
 
tmuxp 1.23.0 (yanked, 2022-12-28)#
Yanked release: tmuxp load issues, see #856
Internal improvements#
Maintenance only, no bug fixes or new features
tmuxp 1.22.1 (2022-12-27)#
Maintenance only, no bug fixes or new features
- Update libtmux 0.18.0 -> 0.18.1 - Only code documentation fixes 
tmuxp 1.22.0 (2022-12-27)#
Improvement#
tmuxp 1.21.0 (2022-12-27)#
Maintenance only, no bug fixes or new features
- libtmux 0.17.2 -> 0.18.0 - Server: Improved - __repr__
tmuxp 1.20.3 (2022-12-27)#
- Fix warnings for - _update_panes()in builder
tmuxp 1.20.2 (2022-12-27)#
Internal update only
- libtmux 0.17.1 -> 0.17.2 - More deprecation warnings 
tmuxp 1.20.1 (2022-12-27)#
Internal update only
- libtmux 0.17.0 -> ~0.17.1 - Deprecation warning updates, doc fixes 
Development#
- Poetry 1.2.2 -> 1.3.1 
tmuxp 1.20.0 (2022-12-26)#
Breaking change#
- 
This includes the API overhaul from libtmux#426. 
Development#
tmuxp 1.19.1 (2022-12-12)#
Fixes#
- Update libtmux 0.16.0 -> 0.16.1 - This removes the underlying dependency on - packaging
tmuxp 1.19.0 (2022-12-10)#
What’s new#
- Environment variables for windows / panes (#845) - Requires tmux 3.0 - Allow to configure window and pane specific environment variables - Having a setup like: - session_name: env-demo environment: DATABASE_URL: "sqlite3:///default.db" windows: - window_name: dev environment: DATABASE_URL: "sqlite3:///dev-1.db" panes: - pane - environment: DATABASE_URL: "sqlite3:///dev-2.db" - will result in a window with two panes. In the first pane - $DATABASE_URLis- sqlite3:///dev-1.db, while in the second pane it is- sqlite3://dev-2.db. Any freshly created window gets- sqlite3:///default.dbas this is what was defined for the session.- Credit: @zappolowski 
Internal#
tmuxp 1.18.2 (2022-11-06)#
Maintenance release, no features or fixes
Development#
- Bump libtmux from 0.15.9 -> 0.15.10 (only test tweaks) 
- Poetry no longer forces - in-project: true
tmuxp 1.18.1 (2022-10-31)#
Bug fix#
tmuxp 1.18.0 (2022-10-30)#
We now refer to configs as workspaces. Other than just, just maintenance.
Internal refactoring (#840)#
Rename config to workspace#
Reference to “config” are now “workspace”
Organize files#
- cli/utils.pyfunctions moved to- workspace/finders.py
- config.pysplit between:- workspace/finders.py
- workspace/freezer.py
- workspace/importers.py
- workspace/validation.py
 
- workspacebuilder.pysplit into:- workspace/builder.py
- workspace/freezer.py- config.inlinemoved to freezer
 
Tests#
- tests/fixtures/{workspacebuilder,workspacefreezer}->- tests/fixtures/workspace/{builder,freezer}
- tests/test_import_{teamocil,tmuxinator}.py->- tests/workspace/test_import_{teamocil,tmuxinator}.py
tmuxp 1.17.3 (2022-10-30)#
Maintenance release, no features or fixes
Development#
Packaging#
- Add python 3.11 to classifiers 
tmuxp 1.17.2 (2022-10-29)#
Bug fix#
tmuxp 1.17.1 (2022-10-15)#
Minor completion improvements#
Internal#
tmuxp 1.17.0 (2022-10-09)#
Breaking changes#
Packages#
- Remove - clickdependency
tmuxp 1.16.2 (2022-10-08)#
Packaging#
tmuxp 1.16.1 (2022-10-02)#
Bug fix#
- Update libtmux 0.15.7 -> 0.15.8 - Includes an improvement for blank window names, e.g. - window_name: ''- See also: https://github.com/tmux-python/libtmux/pull/444 
tmuxp 1.16.0 (2022-10-01)#
Maintenance release, no features or fixes
Internal#
Packaging#
tmuxp 1.15.3 (2022-10-01)#
Bug fixes#
tmuxp 1.15.2 (2022-09-24)#
Maintenance release, no features or fixes
Packaging#
tmuxp 1.15.1 (2022-09-23)#
Maintenance release, no features or fixes
Infrastructure#
- 
- Split out release to separate job so the PyPI Upload docker image isn’t pulled on normal runs 
- Clean up CodeQL 
 
- Bump poetry 1.1.x -> 1.2.x 
- Bump libtmux 0.15.1 -> 0.15.7 
Packaging#
- Remove - MANIFEST.in- This is handled by poetry’s - includein pyproject.toml.
- Remove - .tmuxp-before-script.shfrom- .tmuxp.yaml
tmuxp 1.15.0 (2022-09-11)#
Maintenance release, no features or fixes
Development#
tmuxp 1.14.0 (2022-09-11)#
Maintenance release, no features or fixes
There will be several of these releases as infrastructure and APIs are upgraded to facilitate fixes for layout issues and general contributions.
Development#
- libtmux bumped to v0.15.1 - This includes a major retooling underneath, including - src/layout and testing of- doctestin documentation.
Documentation#
- Render changelog in - linkify_issues(#812)
- Fix Table of contents rendering with sphinx autodoc with - sphinx_toctree_autodoc_fix(#812)
- Test doctests in our docs via - pytest_doctest_docutils(built on- doctest_docutils) (#812)
tmuxp 1.13.3 (2022-09-10)#
tmuxp 1.13.2 (2022-09-10)#
Bug fixes#
- Layout size has been bumped for those experiencing layout spacing issues (#809, fixes #800) - If you encounter issues with pane spacing, consider passing an - optionlike so:- session_name: main-pane-height start_directory: "~" options: default-size: 999x999 windows: - window_name: my window name layout: main-horizontal options: main-pane-height: 30 panes: - shell_command: top - shell_command: top - shell_command: top - shell_command: echo "hey" - shell_command: echo "moo" 
Development#
tmuxp 1.13.1 (2022-08-21)#
Bug fixes#
tmuxp 1.13.0 (2022-08-14)#
Internal#
tmuxp 1.12.1 (2022-08-04)#
Bug fix#
tmuxp 1.12.0 (2022-07-31)#
Mostly internal cleanups, no features
Tests#
tmuxp 1.11.1 (2022-05-02)#
Bug fix#
- #775: Assure click 8+ - tmuxp 1.10 supports click 7.x. 
tmuxp 1.11.0 (2022-04-24)#
Compatibility#
Maintenance#
Development#
- Remove tox and tox-poetry-installer - This created issues with running poetry while inside the virtualenv. 
- Publish packages to PyPI via github action by setting git tag. 
tmuxp 1.10.1 (2022-04-17)#
Compatibility#
- #773 (backport): Allow click 8.1.x 
tmuxp 1.10.0 (2022-03-19)#
Compatibility#
- Final python 3.7 and 3.8 release - Bug fixes and security updates will go to - v1.10.x
What’s new#
- #747: Skip execution via - enter: false- Note - Experimental setting: behavior and api is subject to change until stable. - session_name: Should not execute windows: - panes: - shell_command: - echo "this sends" - cmd: echo "___$((1 + 3))___" enter: false # pane-wide skip - shell_command: - echo "___$((1 + 3))___" enter: false 
- #750: Pause execution via - sleep_before: [int]and- sleep_after: [int]- See Pausing commands. - Note - Experimental setting: behavior and api is subject to change until stable. - session_name: Pause / skip command execution (command-level) windows: - panes: - shell_command: # Executes immediately - echo "___$((11 + 1))___" # Delays before sending 2 seconds - cmd: echo "___$((1 + 3))___" sleep_before: 2 # Executes immediately - cmd: echo "___$((1 + 3))___" # Pauses 2 seconds after - cmd: echo "Stuff rendering here!" sleep_after: 2 # Executes after earlier commands (after 2 sec) - cmd: echo "2 seconds later" 
- #701: - tmuxp freezenow accepts- --quietand- --yesalong with the- --config-formatand filename (- --save-to). This means you can do it all in one command:- tmuxp freeze -yqo .tmuxp.yaml- Or bind it to - .tmux.confitself:- bind -T root C-s run-shell "tmuxp freeze -yqo .tmuxp.yaml"- Credit: @davidatbu 
- #672: Panes now accept - shellfor their initial command.- Equivalent to - tmux split-windows’s- [shell-command]- session_name: Pane shell example windows: - window_name: first window_shell: /usr/bin/python2 layout: even-vertical suppress_history: false options: remain-on-exit: true panes: - shell: /usr/bin/python3 shell_command: - print('This is python 3') - shell: /usr/bin/vim -u none shell_command: - iAll panes have the `remain-on-exit` setting on. - When you exit out of the shell or application, the panes will remain. - Use tmux command `:kill-pane` to remove the pane. - Use tmux command `:respawn-pane` to restart the shell in the pane. - Use <Escape> and then `:q!` to get out of this vim window. :-) - shell_command: - print('Hello World 2') - shell: /usr/bin/top - Credit: @jerri 
Improvements#
Bugs#
Internal API#
- #752: Command structure (internal API) - To pave the way for per-command options such as - enter: false(#53), commands are now a different format:- Before, - str:- "echo hello"- After, - dict:- { "cmd": "echo hello" } - This is purely internal. Normal usage should be the same since the configuration emits the equivalent result. 
- #752: Configuration parsing refactorings 
Development#
Documentation#
- Move to - furosphinx theme
- Reorganize documentation into sections 
- Added examples for - enter: falseand- sleep: [second]
tmuxp 1.9.4 (2022-01-10)#
Packaging#
- poetry buildused to package in place of- python setup.py build(#729)- Package maintainers: If you run into any issues check in at #625 and file an issue. - Additionally, - libtmuxhas been pinned to a similar release at 0.10.3 which has used the new build process.
- poetry publishinstead of- twine upload dist/*(#729)- Similar to the above, reach out to the #625 issue if you bump into problems. 
What’s new#
Removed support#
Development#
tmuxp 1.9.3 (2021-10-30)#
tmuxp 1.9.2 (2021-06-17)#
- #686: Allow click 8.0.x 
- Remove - manual/, move to https://github.com/tmux-python/tmux-manuals
tmuxp 1.9.1 (2021-06-16)#
- libtmux: Update to 0.10.1+ to include - Window.select_window()fix- https://github.com/tmux-python/libtmux/pull/271 
tmuxp 1.9.0 (2021-06-16)#
- libtmux: Update to 0.10.x 
tmuxp 1.8.2 (2021-06-15)#
- #474 Re-release with - python setup.py sdist bdist_wheelto fix missing test files
tmuxp 1.8.1 (2021-06-14)#
- #681 Bump version to make homebrew release easier 
tmuxp 1.8.0.post0 (2021-06-14)#
- #681 tmuxp is now available on homebrew! Thank you @jvcarli! 
tmuxp 1.8.0 (2021-06-14)#
tmuxp 1.7.2 (2021-02-03)#
tmuxp 1.7.1 (2021-02-03)#
tmuxp 1.6.5 (2021-02-03)#
tmuxp 1.7.0 (2021-01-09)#
This will be the last Python 2.7 release of tmuxp. Bug fixes for python 2.7 will live in the 1.7.x branch.
- #530 New feature: Plugin system - Add plugin system for user customization of tmuxp 
- Add tests for the plugin system 
- Update existing tests for the plugin system 
- Add the plugin interface to the tmuxp package 
- Add in depth documentation for the plugin system 
 - Thank you @joseph-flinn! 
- #656 New feature: Ability to append windows to a session - tmuxp load -a configfilewill append a configuration to your current tmux session.- Thank you @will-ockmore! 
- #647 Improvement: Logging to file: - tmuxp load <filename> --log-level outputfile.log
- #643 New command: Debug information - Port - tmuxp debug-infofrom via v1.6.2
tmuxp 1.7.0a4 (2021-01-06)#
- Port click package fix from 1.6.4 
tmuxp 1.7.0a3 (2020-11-22)#
- Port - tmuxp load <filename> --log-level outputfile.logfrom 1.6.3
tmuxp 1.7.0a2 (2020-11-08)#
tmuxp 1.7.0a1 (2020-11-07)#
- #530 Plugin system - Add plugin system for user customization of tmuxp 
- Add tests for the plugin system 
- Update existing tests for the plugin system 
- Add the plugin interface to the tmuxp package 
- Add in depth documentation for the plugin system 
 - Thank you @joseph-flinn! 
tmuxp 1.6.4 (2021-01-06)#
tmuxp 1.6.3 (2020-11-22)#
- #647 Adding option to dump - loadoutput to log file, thank you @joseph-flinn!- tmuxp load file.yaml --log-file yourfile.txt- Adjust log levels: - tmuxp --log-level DEBUG load file.yaml --log-file yourfile.txt
tmuxp 1.6.2 (2020-11-08)#
tmuxp 1.6.1 (2020-11-07)#
- #641 Improvements to - shell- Thanks django-extensions (licensed MIT) for the shell detection abstraction. - Deprecate - shell_plus
- tmuxp shellnow detects the best shell available by default
- Python 3.7+ with - PYTHONBREAKPOINTset in env will drop into- pdbby default
- Drop into - code.interactby default instead of- pdbif no third party shells found
- New options, override: 
 
tmuxp 1.6.0 (2020-11-06)#
- #636 + #638 New command: - tmuxp shell- Automatically preloads session, window, and pane via libtmux API objects and makes them available in a python console.   - As of 1.6.1 (above), - tmuxp shellwill find the most feature-rich shell available. If you have ipython, or bpython available, it will be selected automatically. Pass- --pdbto use standard library pdb, or- --codeto use- code.interact.- In python 3.7+, supports - PYTHONBREAKPOINT:- $ pip install --user ipdb $ env PYTHONBREAKPOINT=ipdb.set_trace tmuxp shell - You can execute python directly via - -c:- $ tmuxp shell -c 'print(session.name); print(window.name)' my_server my_window $ tmuxp shell my_server -c 'print(session.name); print(window.name)' my_server my_window $ tmuxp shell my_server my_window -c 'print(session.name); print(window.name)' my_server my_window $ tmuxp shell my_server my_window -c 'print(window.name.upper())' MY_WINDOW 
tmuxp 1.5.8 (2020-10-31)#
tmuxp 1.5.7 (2020-10-31)#
tmuxp 1.5.6 (2020-10-12)#
- #618: allow passing - --overwriteto- tmuxp freeze. Thank you @betoSolares!
- #589 added option for the the confirm command to auto-confirm the prompt. Thank you @aRkedos! 
- #626 Add new session name option to cli. Thank you @joseph-flinn! 
- #626 Add test for new session name option 
- #626 Update docs for new session name option 
- #623 Move docs from RTD to self-serve site 
- #623 Modernize Makefiles 
- #623 New development docs 
- #623 Move doc -> docs 
- #623 Move tests to GitHub Actions 
- #623 Update pyproject.toml to experiment with poetry packaging 
- #619 isort 5 
- #629 Update black from 19.10b0 to 20.08b1 
tmuxp 1.5.5 (2020-07-26)#
- #616 (via: #599) New command: - tmuxp ls- List commands available via config directory. If the config is printed, it’s loadable via - tmuxp load configfilenamewithout needing to type the full filepath. Thank you @pythops!
- #480 Fix typo, thanks @jstoja 
- #578 Fix typo, thanks @mauroporras 
- #519 Fix typo, thanks @timgates42 
- #506 Fix Makefile typo, thanks @wolfgangpfnuer 
- #619 Update isort to 5.x 
- Travis: Only run on master and PRs one time 
- Travis: Add caching for tmux builds 
- Travis: Test 2.9 and 3.0a 
- #613: Move from Pipenv to Poetry 
tmuxp 1.5.4 (2019-11-06)#
- #500: Fix window focus 
- Fix travis CI builds for python 3.7 
tmuxp 1.5.3 (2019-06-06)#
- #377: Include examples in source distribution package 
tmuxp 1.5.2 (2019-06-02)#
tmuxp 1.5.1 (2019-02-18)#
- Add tests/*.sh scripts to MANIFEST.in to include them in Pypi package. 
- Include twine to dev packages on requirements and Pipfile files. 
tmuxp 1.5.0 (2018-10-02)#
- Support Click 7.0 
- Remove unused - __future__imports
- #471 Update libtmux 0.8.0 -> 0.8.1 
- #404 from @anddam, support XDG base directory 
- Sort imports 
- Add configuration and make command for isort. 
- Add sphinxcontrib-napoleon. 
- Assure requirements/dev.txt dependencies are in Pipfile 
- Update sphinx, releases to latest version 
- Sync requirements/.txt* dependencies with *Pipfile*. 
- Update docstring style to use numpy-style documentation. This enhances readability and plays nicely with sphinx documentation. 
- Documentation overhaul. - Areas like - tmuxp.cli.load_workspace()are now documented verbosely. This is so contributors helping on the project can more quickly gain situational awareness in this tricky area of code.
 
tmuxp 1.4.2 (2018-09-30)#
- #431 Include tests in source distribution 
tmuxp 1.4.1 (2018-09-26)#
- Loosen click restraint to <7 
tmuxp 1.4.0 (2018-03-11)#
- Bump libtmux to 0.8.0 
- #264 Update license from BSD to MIT 
- #348 Continuous integration updates and fixes for Travis CI - Update builds to use trusty 
- Remove older python 3 versions (before 3.6) 
- Update pypy versions 
 
- #349 flake8 via continuous integration 
- Improve reliability of time-sensitive tests by using - while Truewith a timeout.
- Update sphinx to 1.7.1 
- Update alagitpull (sphinx theme) to 0.0.19. External websites open in new window. 
- Update pytest to 3.4.1 
tmuxp 1.3.5 (2017-11-10)#
- #312 Support for tmux 2.6 layout setting (via hooks) in the following scenarios: - loading outside tmux 
- loading inside tmux, via switch-client 
- loading inside tmux, with session in background (with -d), and reattaching/switching to after 
- loading session outside tmux in background with -d, and reattaching/switching after 
 
- #308 Fix bug where layouts don’t correctly set on tmux 2.6 
- Upgrade libtmux to 0.7.7 
tmuxp 1.3.4 (2017-10-12)#
- before_scriptnow respects- start_directoryin the session root. This makes it easier to run things like- pipenv installas a- before_script.
tmuxp 1.3.3 (2017-10-07)#
- Update libtmux to 0.7.5 for tmux 2.6 hotfix 
tmuxp 1.3.2 (2017-08-20)#
- #184 - update libtmux to fix environmental variables in the session scope 
- Update libtmux to 0.7.4 
- Updates to pytest and pytest-rerunfailures 
tmuxp 1.3.1 (2017-05-29)#
- #252 Fix bug where loading a session with a name matching a subset of current session causes undesired behavior. 
- Update libtmux to 0.7.3 
- Switch theme to alagitpull (alabaster subtheme) 
- Remove unneeded doc dependency packages 
tmuxp 1.3.0 (2017-04-27)#
- #239 Improve support for formatted options when freezing and using configs with them. 
- #236 Support for symlinked directories, thanks @rafi. 
- #235 Support for - options_after, for setting options like- synchronize-panes. Thanks @sebastianst.
- #248 Drop python 2.6 support 
- #248 Upgrade libtmux to 0.7.1 
- Upgrade colorama from 0.3.7 to 0.3.9 
tmuxp 1.2.8 (2017-04-02)#
- #229 More helpful error message on systems missing tmux. 
- Update libtmux from 0.6.4 to 0.6.5. 
tmuxp 1.2.7 (2017-03-25)#
- Support for OpenBSD. 
tmuxp 1.2.6 (2017-02-24)#
- #218 Fix pane ordering by running - select-layoutbefore splits.
tmuxp 1.2.5 (2017-02-08)#
tmuxp 1.2.4 (2017-01-13)#
tmuxp 1.2.3 (2016-12-21)#
tmuxp 1.2.2 (2016-09-16)#
- #181 Support tmux 2.3 
tmuxp 1.2.1 (2016-09-16)#
- #132 Handle cases with invalid session names 
- update libtmux from 0.5.0 to 0.6.0 
tmuxp 1.2.0 (2016-06-16)#
- #65 Ability to specify - optionsand- global_optionsvia configuration. Also you can specify environment variables via that.- Include tests and add example. 
tmuxp 1.1.1 (2016-06-02)#
tmuxp 1.1.0 (2016-06-01)#
tmuxp 1.0.2 (2016-05-25)#
tmuxp 1.0.1 (2016-05-25)#
- switch to readthedocs.io for docs 
- #157 bump libtmux to 0.4.1 
tmuxp 1.0.0-rc1 (2016-05-25)#
- version jump 0.11.1 to 1.0 
- tests moved to py.test framework 
- libtmux core split into its own project 
- #145 Add new-window command functionality, @ikirudennis 
- #146 Optionally disable shell history suppression, @kmactavish 
- #147 Patching unittest timing for shell history suppression 
- move doc building, tests and watcher to Makefile 
- update .tmuxp.yaml and .tmuxp.json for Makefile change 
- overhaul README 
tmuxp 0.11.0 (2016-02-29)#
tmuxp 0.10.0 (2016-01-30)#
tmuxp 0.9.3 (2016-01-06)#
- switch to - .venvfor virtualenv directory to not conflict with- .env(used by autoenv).
- #130 move to entr(1) for file watching in tests. update docs. 
- [compatibility] Support Anaconda Python 2 and 3 
tmuxp 0.9.2 (2015-10-21)#
tmuxp 0.9.1 (2015-08-23)#
- #119 Add fix python 3 for sysutils/pytmuxp on FreeBSD ports. See GH issue 119 and #201564 @ FreeBSD Bugzilla. Thanks Ruslan Makhmatkhanov. 
tmuxp 0.9.0 (2015-07-08)#
- Renamed - config.expandpathto- config.expandshell.
- compat 2.7/3.3 wrapper for - EnvironmentVarGuardfor testing.
- You can now use environment variables inside of - start_directory,- before_script,- shell_command_before,- session_nameand- window_name.
- [examples]: add example for environmental variables, - examples/env-variables.jsonand- examples/env-variables.yaml.
- #109 fix failure of test_pane_order on fedora machines from @marbu 
- #105 append - .txtextension to manuals (repo only) from @yegortimoshenko.
- #107 Fix Server.attached_sessions return type by @thomasballinger. 
- update travis to use new tmux git repository. 
tmuxp 0.8.1 (2015-05-09)#
- [testing]: fix sniffer test runner in python 3 
- new animated image demo for RTD and README 
tmuxp 0.8.0 (2015-05-07)#
- version bump 0.1.13 -> 0.8.0 
- tmux 2.0 support 
- Fix documentation for :meth: - Session.switch_client().
- Add - --log-levelargument.
- Refactor - {Server,Session,Window,Pane}.tmuxinto:- Server.cmd()
- Session.cmd()
- Window.cmd()
- Pane.cmd()
 - (See conversation at https://github.com/bitprophet/dotfiles/issues/5) 
- Refactor - util.tmuxinto- util.tmux_cmd().
tmuxp 0.1.13 (2015-03-25)#
- Remove - package_metadata.pyin favor of- __about__.py.
- scent.pyfor building docs
- docutils from 0.11 to 0.12 
- bootstrap_env.pywill check for linux, darwin (OS X) and windows and install the correct sniffer file watcher plugin.
- testsuite for cli uses - tempfile.mkdtemp()instead- TMP_DIR(which resolved to- .tmuxpin the testsuite directory.
- replace watchingtestrunner in examples. - .tmuxp.confand- .tmux.jsonupdated
- updates to doc links 
- make checkbuildfor verifying internal / intersphinx doc references.
- Add Warning tmux versions less than 1.4 from @techtonik. 
- Add documentation on leading space in - send_keysfrom @thomasballinger.
- Update about page from teamocil and erb support from @raine. 
tmuxp 0.1.12 (2014-08-06)#
- [config] - config.expand()now resolves directories in configuration via- os.path.expanduser()and- os.path.expandvars().
- [config] - config.expandpath()for helping resolve paths.
- improved support for loading tmuxp project files from outside current working directory. e.g. - $ tmuxp load /path/to/my/project/.tmuxp.yaml - Will behave better with relative directories. 
tmuxp 0.1.11 (2014-04-06)#
- before_scriptnow loads relative to project directory with- ./.
- Use - bootstrap_env.pyin tmuxp’s- .tmuxp.yamland- .tmuxp.jsonproject files.
- Improvements to - util.run_before_script(),- exc.BeforeLoadScriptFailedbehavior to print- stdoutand return- stderris a non-zero exit is returned.
- run_script_beforehas moved to- util.
- BeforeLoadScriptFailedand- BeforeLoadScriptNotExistshas moved to the- excmodule.
- Tests for - run_script_beforerefactored.
tmuxp 0.1.10 (2014-04-02)#
- 2 bug fixes and allow panes with no shell commands to accept options, thanks for these 3 patches, @ThiefMaster: 
- #73 Fix an error caused by spaces in - start_directory.
- #77 Fix bug where having a - -in a- shell_commandwould cauesd a build error.
- #76 Don’t require - shell_commandto pass options to panes (like- focus: true).
tmuxp 0.1.9 (2014-04-01)#
- The - --forcewas not with us.
tmuxp 0.1.8 (2014-03-30)#
- #72 Create destination directory if it doesn’t exist. Thanks @ThiefMaster. 
- New context manager for tests, - temp_session.
- New testsuite, - testsuite.test_utilsfor testing testsuite tools.
- New command, - before_script, which is a file to be executed with a return code. It can be a bash, perl, python etc. script.
tmuxp 0.1.7 (2014-02-25)#
- #55 where tmuxp would crash with letter numbers in version. Write tests. 
tmuxp 0.1.6 (2014-02-08)#
- Window.split_window()now allows- -c start_directory.
- #35 Builder will now use - -c start_directoryto create new windows and panes.- This removes a hack where - default-pathwould be set for new pane and window creations. This would bleed into tmux user sessions after creations.
tmuxp 0.1.5-1 (2014-02-05)#
- #49 bug where - package_manifest.pymissing from- MANIFEST.inwould cause error installing.
tmuxp 0.1.5 (2014-02-05)#
- section heading normalization. 
- tao of tmux section now treated as a chatper. tao of tmux may be split off into its own project. 
- use conventions from tony/cookiecutter-pypackage. 
tmuxp 0.1.4 (2014-02-02)#
- Fix - $ tmuxp freezeCLI output.
- Update - _compatsupport module.
- Fix extra space in PEP 263. 
tmuxp 0.1.3 (2014-01-29)#
tmuxp 0.1.2 (2014-01-08)#
tmuxp 0.1.1 (2013-12-25)#
- #32 Fix bug where special characters caused unicode caused unexpected outcomes loading and freezing sessions. 
tmuxp 0.1.0 (2013-12-18)#
- fix duplicate print out of filename with using - tmuxp load ..
- version to 0.1. No - --preneeded. Future versions will not use rc.
tmuxp 0.1-rc8 (2013-12-17)#
- unicode_literals
- Move py2/py3 compliance code to - _compat.
tmuxp 0.1-rc7 (2013-12-07)#
- #33 Partial rewrite of - config.expand().
- tmuxp will exit silently with - Ctrl-c.
tmuxp 0.1-rc6 (2013-12-06)#
- #31 [examples] from stratoukos add - window_indexoption, and example.
tmuxp 0.1-rc5 (2013-12-04)#
tmuxp 0.1-rc4 (2013-12-03)#
- fix bug were - focus: truewould not launch sessions when using- $ tmuxp loadin a tmux session.
tmuxp 0.1-rc3 (2013-12-03)#
- #25 - focus: truenot working in panes. Add tests for focusing panes in config.
- Pane.select_pane().
- add new example for - focus: true.
tmuxp 0.1-rc2 (2013-11-23)#
- #23 fix bug where workspace would not build with pane-base-index set to 1. Update tests to fix if - pane-base-indexis not 0.
- removed - $ tmuxp load --listfunctionality. Update Quickstart accordingly.
tmuxp 0.1-rc1 (2013-11-23)#
tmuxp 0.1-dev (2013-11-21)#
- Session.show_options(),- Session.show_option()now accept- gto pass in- -g.
tmuxp 0.1-dev (2013-11-20)#
- Window.show_window_options(),- Window.show_window_option()now accept- gto pass in- -g.
- #15 Behavioral changes in the WorkspaceBuilder to fix pane ordering. 
- #21 Error with unit testing python 2.6 python configuration tests. Use - tempfileinstead.
- WorkspaceBuilder tests have been improved to use async better. 
tmuxp 0.1-dev (2013-11-17)#
- fix a bug where missing tmux didn’t show correct warning. 
tmuxp 0.1-dev (2013-11-15)#
- Travis now tests python 2.6 as requirement and not allowed to fail. 
tmuxp 0.1-dev (2013-11-13)#
- #19 accept - -yargument to answer yes to questions.
- cli.SessionCompleter()no longer allows a duplicate session after one is added.
- ongoing work on The Tao of tmux. 
tmuxp 0.1-dev (2013-11-09)#
- [translation] documentation in Chinese. 
- More work done on the The Tao of tmux page. 
- Pane.split_window()for splitting- Windowat- target-panelocation.
tmuxp 0.1-dev (2013-11-08)#
- [freeze] - - $ tmuxp freezewill now freeze a window with a- start_directorywhen all panes in a window are inside the same directory.
- [config] - config.inline()will now turn panes with no other attributes and 1 command into a single item value.- - panes: - shell_command: top # will now inline to: - panes - top This will improve ``$ tmuxp freeze`` 
tmuxp 0.1-dev (2013-11-07)#
- Remove old logger (based on tornado’s log.py), replace with new, simpler one. 
- fix teamocil import. 
- support import teamocil - rootto- start_directory.
tmuxp 0.1-dev (2013-11-06)#
- tagged v0.0.37. Many fixes. Python 2.6 support. Will switch to per-version changelog after 0.1 release. 
- support for blank panes (null, - pane,- blank) and panes with empty strings.
- tmuxp freeze supports exporting to blank panes. 
- tmuxp freeze will now return a blank pane for panes that would previously return a duplicate shell command, or generic python, node interpreter. 
tmuxp 0.1-dev (2013-11-05)#
- Support for - [-L socket-name]and- [-S socket-path]in autocompletion and when loading. Note, switching client into another socket may cause an error.
- Documentation tweaking to API Reference, The Tao of tmux. 
tmuxp 0.1-dev (2013-11-04)#
- tagged version - v0.0.36.
tmuxp 0.1-dev (2013-11-02)#
- Many documentation, pep257 fixes 
- move old - Servermethods- __list_panes(),- __list_windowsand- __list_sessionsinto the single underscore.
- #12 fix for - $ tmuxp freezeby @finder.
- Support for spaces in - $ tmuxp attach-sessionand- $ tmuxp kill-session, and- $ tmuxp freeze.
- [config] support for relative paths of - start_directory. Add an update config in Start Directory on Examples.
tmuxp 0.1-dev (2013-11-01)#
- New servers for - Serverarguments- socket_name,- socket_path,- config_file.
- Serversupport for- -2with- colors=256and- colors=8.
- $ tmuxp -2for forcing 256 colors and- tmuxp -8for forcing 88.
- [config] Concatenation with - start_directoryvia- config.trickle()if window- start_directoryis alphanumeric / relative (doesn’t start with- /). See Examples in start directory.
- Fix bug with import teamocil and tmuxinator 
- Improve quality of tmuxinator imports. Especially - session_nameand- start_directory.
- Allow saving with - ~in file destination.
tmuxp 0.1-dev (2013-10-31)#
- util.is_version()
- correctly - config.trickle()the- start_directory.
- get - start_directoryworking for configs
- fix :meth: - Window.kill_window()target to- session_id:window_indexfor compatibility and pass tests.
- [examples]: Example for - start_directory.
- fix bug where first and second window would load in mixed order 
- Window.move_window()for moving window.
- doc overhaul. front page, renamed orm_al.rst to internals.rst. 
tmuxp 0.1-dev (2013-10-30)#
- fix bug where if inside tmux, loading a workspace via switch_client wouldn’t work. 
- fix bug where - tmuxp load .would return an error instead of a notice.
- tmuxp freeze <filename>experimental
- tmuxp now has experimental support for freezing live sessions. 
- Window.kill_window()
- support for - start_directory(work in progress)
tmuxp 0.1-dev (2013-10-29)#
- Window.select_pane()now accepts- -l,- -U,- -D,- -L,- -R.
- support for - automatic-renameoption.
- 3 new Examples, ‘main-pane-height’, ‘automatic-rename’, and ‘shorthands’. 
- enhancements to prompts 
- tmuxp importfor teamocil and tmuxinator now has a wizard and offers to save in JSON or YAML format.
- [b6c2e84] Fix bug where tmuxp load w/ session already loaded would switch/attach even if no was entered 
- when workspace loader crashes, give option to kill session, attach it or detach it. 
- tmux 1.8 - set-option/- set-window-optionscommand- target-windowfix.
- WorkspaceBuildernow has- .sessionattribute accessible publicly.
- tmux will now use - Session.switch_client()and- Session.attach_session()to open new sessions instead of- os.exec.
- [config] tmuxp now allows a new shorter form for panes. Panes can just be a string. See the shorthand form in the Examples section. 
- [config] support loading - .yml.
tmuxp 0.1-dev (2013-10-28)#
- fix - tmuxp load .fixed
- fix - tmuxp convert <file>fixed.
- pep257 fixes. 
- Panenow has- Pane.set_width()and- Pane.set_height().
- ./run_tests.py --testsnow automatically prepends- tmuxp.testsuiteto names.
- Window.tmux()and- Pane.tmux()will automatically add their- {window/pane}_idif one isn’t specific.
tmuxp 0.1-dev (2013-10-27)#
- argcomplete overhaul for CLI bash completion. 
- tmuxp load,- tmuxp convertand- tmuxp importnow support relative and full filenames in addition to searching the config directory.
tmuxp 0.1-dev (2013-10-26)#
- initial version of tmuxinator config importer. it does not support all options and it not guaranteed to fully convert window/pane size and state. 
- config.in_dir()supports a list of- extensionsfor filetypes to search, i.e.- ['.yaml', '.json'].
- config.is_config_file()now supports- extensionsargument as a string also.
- fix - $ tmuxp load -lto work correctly alongside- $ tmuxp load filename.
tmuxp 0.1-dev (2013-10-25)#
- fix bug where - -vand- --versionwouldn’t print version.
- property handle case where no tmux server exists when - attach-sessionor- kill-sessionis used.
- test fixtures and initial work for importing tmuxinator configs 
tmuxp 0.1-dev (2013-10-24)#
- clean out old code for - automatic-renameoption. it will be reimplemented fresh.
- check for - oh-my-zshwhen using- $SHELL- zsh. Prompt if- DISABLE_AUTO_TITLEis unset or set to- true.
- tmuxp can now - $ tmuxp convert <file>from JSON <=> YAML, back and forth.
- New examples in JSON. Update the Examples page in the docs. 
- [dev] - .tmuxp.jsonnow exists as a config for tmuxp development and as an example.
- Fix bug where - tmuxp kill-sessionwould give bad output
- Fix bug in tab completion for listing sessions with no tmux server is active. 
tmuxp 0.1-dev (2013-10-23)#
- zsh/bash/tcsh completion improvements for tab-completion options 
- tmuxp - kill-sessionwith tab-completion.
- tmuxp - attach-sessionwith tab-completion. Attach session will- switch-clientfor you if you are inside of of a tmux client.
- tmuxp - loadfor loading configs.
- unit test fixes. 
tmuxp 0.1-dev (2013-10-21)#
- Make 1.8 the official minimym version, give warning notice to upgrade tmux if out of date 
- Fix regression causing unexpected build behavior due to unremoved code supporting old tmux versions. 
- Added 2 new examples to the Examples page. 
- Examples now have graphics 
- $ tmuxp -vwill print the version info.
tmuxp 0.1-dev (2013-10-19)#
- tmuxp will now give warning and sys.exit() with a message if - tmuxnot found in system PATH
- internal overhaul of - Server,- Session,- Window, and- Panecontinues.- Serverhas @property- Server.sessions(), which is forward to- Server.list_sessions()(kept to keep tmux commands in serendipty with api),- Server._list_sessions()returns dict object from- Server.__list_sessions()tmux command.- Server.__list_sessions()exists to keep the command layered so it can be tested against in a matrix with travis and compatibility methods can be made.
- Sessionnow has @property- Session.windows()returning a list of- Windowobjects via- Session.list_windows(). @property- Session._windows()to- Session._list_windows()to return a list of dicts without making objects.
- Windownow has @property- Window.panes()returning a list of- Paneobjects via- Window.list_panes(). @property- Window._panes()to- Window._list_panes()to return a list of dicts without making objects.
 
tmuxp 0.1-dev (2013-10-18)#
- internal overhaul of - Server,- Session,- Window, and- Pane.- Session,- Windowand- Panenow refer to a data object in- Serverinternally and always pull the freshest data.
- A lot of code and complexity regarding setting new data for objects has been reduced since objects use their unique key identifier to filter their objects through the windows and panes in - Serverobject.
- Serverobject is what does the updating now.
 
- [project] some research into supporting legacy tmux versions. tmux 1.6 and 1.7 support seem likely eventually if there is enough demand. 
- python 3 support 
tmuxp 0.1-dev (2013-10-17)#
- updated README docs with new project details, screenshots 
- new example - .tmuxp.yamlfile updated to include development workflow. Removed nodemon as the tool for checking files for now.
- Support for switching sessions from within tmux. In both cases after the the session is built and if session already exists. 
tmuxp 0.1-dev (2013-10-16)#
- use - util.which()from salt.util to find tmux binary.
- add MANIFEST.in, fix issue where package would not install because missing file 
- bash / zsh completion. 
- New page on Internals. 
- Updates to The Tao of tmux page. 
- add vim modeline for rst to bottom of this page 
- Server is now a subclass of - util.TmuxObject.
- subclasses of - util.TmuxRelationalObject,- Server,- Session,- Window,- Panenow have- util.TmuxRelationalObject.getById()(similar to .get() in backbone.js collection),- util.TmuxRelationalObject.where()and- util.TmuxRelationalObject.findWhere()(.where() and .findWhere()), to easily find child objects.
- tmux object mapping has been split into - util.TmuxMappingObject. The mapping and the relational has been decoupled to allow- Serverto have children while not being a dict-like object.
- Server,- Session,- Window,- Panenow explicitly mixin subclasses.
tmuxp 0.1-dev (2013-10-15)#
- new theme 
- initial examples, misc. updates, front page update. 
- support for - $ tmux .to load- .tmuxp.{yaml/json/py}in current working directory.
- support for - socket-name(- -L) and- socket-path(- socket-path)
- [config] Support for 1-command pane items. - session_name: my session windows: - window_name: hi panes: - bash - htop 
- If session name is already exists, prompt to attach. 
tmuxp 0.1-dev (2013-10-14)#
- can now -l to list configs in current directory and $HOME/.tmuxp 
- tmuxp can now launch configs and build sessions 
- new exceptions 
- config.check_consistency()to verify and diagnose issues with config files.
- cli.startup()
- config.is_config_file()
- config.in_dir()
- config.in_cwd()
tmuxp 0.1-dev (2013-10-13)#
- config.inline()to produce far far better looking config exports and tests.
- Pane.resize_pane()and tests
- documentation fixes and updates 
- Session.refresh(),- Window.refresh(),- Pane.refresh().
- Server.find(),- Session.find(),- Window.find().
tmuxp 0.1-dev (2013-10-12)#
- Test documentation updates 
- Builder is now - WorkspaceBuilder+ tests.- WorkspaceBuilder can build panes 
- WorkspaceBuilder can build windows and set options 
 
- Window.show_window_options(),- Window.show_window_option(),- Window.set_window_option()
- Session.show_options(),- Session.show_option(),- Session.set_option()
tmuxp 0.1-dev (2013-10-11)#
- More preparation for builder / session maker utility. 
- test runner and test suite overhaul. 
- Documentation for development environment and test runner updated. 
- Travis now tests against tmux 1.8 and latest source. Door open for future testing against python 3 and earlier tmux versions in the future. 
- Quiet logger down in some areas 
- future imports for future python 3 compatibility 
- setup.py import version via regex from tmuxp package 
- move beginnings of cli to - tmuxp.cli
tmuxp 0.1-dev (2013-10-09)#
- New logging module 
- Removed dependency logutils 
- Removed dependency sh 
tmuxp 0.1-dev (2013-10-08)#
- switch to semver