Skip to main content

Manage and build tmux workspaces.

Project description

`tmuxp` solves the panes / pains of managing workspaces.

.. image:: https://travis-ci.org/tony/tmuxp.png?branch=master
:target: https://travis-ci.org/tony/tmuxp

.. image:: https://badge.fury.io/py/tmuxp.png
:target: http://badge.fury.io/py/tmuxp

tmuxp, a novel approach to managing `tmux(1)`_ workspaces through
python objects. Features:

- resume session from config file, if already built.
- load configs + build workspace + switching to new session even when
inside tmux
- bash / zsh / tcsh completion
- JSON, YAML and py dict config
- Support for pre-commands with ``shell_command_before`` to load
virtualenv / rvm / any other commands
- Load sessions from directory with ``$ tmuxp .`` to load ``.tmuxp.py`` /
``.tmuxp.yaml`` / ``.tmuxp.json`` and ``$ tmuxp configfile.yaml`` when
inside same directory.
- Have a feature suggestion, bug, or need help? `Post an issue`_.

.. figure:: https://raw.github.com/tony/tmuxp/master/doc/_static/tmuxp-dev-screenshot.png
:scale: 100%
:width: 65%
:align: center

tmuxp works in 3 ways:

- a pythonic `abstraction layer`_ on top of tmux' CLI commands
- an `ORM`_ that internally orchestrates relations between servers,
sessions, windows and panes for good and evil purposes.
- CLI tmux session manager, similar to `teamocil`_ and `tmuxinator`_, with
support for YAML, JSON and python dicts.

Get started now, make sure:

1.) have ``tmux`` installed.
2.) is at least version 1.8 ``$ tmux -V``.
3.) libyaml is installed for your distribution.

.. code-block:: bash

$ pip install tmuxp

``$ mkdir ~/.tmuxp`` and make a file ``~/.tmuxp/test.yaml``.

.. code-block:: yaml

session_name: my session
windows:
- window_name: my test window
panes:
- pwd
- pwd

Now with ``tmuxp``:

.. code-block:: bash

$ tmuxp test.yaml

Check out our `Examples`_, `Quickstart`_ and `bash completion`_ support.

Advanced tmux workflow:

.. code-block:: yaml

session_name: tmuxp
windows:
- window_name: tmuxp
layout: main-horizontal
options:
main-pane-height: 50
start_directory: ./
shell_command_before:
- '[ -d .env -a -f .env/bin/activate ] && source .env/bin/activate || virtualenv .env'
panes:
- shell_command:
- vim
- :Ex
focus: true
- shell_command:
- echo hi
- shell_command:
- '[ -d .env -a -f .env/bin/activate ] || virtualenv .env'
- command -v tmuxp >/dev/null 2>&1 || { pip install -e .; }
- command -v watching_testrunner >/dev/null 2>&1 || { pip install watching_testrunner; }
- watching_testrunner --basepath ./ --pattern="*.py" python run_tests.py
- window_name: docs
layout: main-horizontal
options:
main-pane-height: 50
start_directory: ./
automatic_rename: true
shell_command_before:
- '[ -d .env -a -f .env/bin/activate ] && source .env/bin/activate || virtualenv .env'
- command -v tmuxp >/dev/null 2>&1 || { pip install -e .; }
- cd ./doc
panes:
- shell_command:
- vim
focus: true
- pwd
- echo 'docs built to <http://0.0.0.0:8000/_build/html>'; python -m SimpleHTTPServer
- shell_command:
- command -v sphinx-quickstart >/dev/null 2>&1 || { pip install -r requirements.pip; }
- command -v watching_testrunner >/dev/null 2>&1 || { pip install watching_testrunner; }
- watching_testrunner --basepath ./ --pattern="*.rst" 'make html'

see this in the `Developing and Testing`_ documentation page.

============== ==========================================================
tmux support 1.8, 1.9-dev
config support yaml, json, python dict
Travis http://travis-ci.org/tony/tmuxp
Docs http://tmuxp.rtfd.org
API http://tmuxp.readthedocs.org/en/latest/api.html
Changelog http://tmuxp.readthedocs.org/en/latest/changes.html
Issues https://github.com/tony/tmuxp/issues
Source https://github.com/tony/tmuxp
pypi https://pypi-hypernode.com/pypi/tmuxp
License `BSD`_.
git repo .. code-block:: bash

$ git clone https://github.com/tony/tmuxp.git
install dev .. code-block:: bash

$ git clone https://github.com/tony/tmuxp.git tmuxp
$ cd ./tmuxp
$ virtualenv .env
$ source .env/bin/activate
$ pip install -e .

See the `developing and testing`_ page in the docs for
more.
tests .. code-block:: bash

$ python ./run_tests.py
============== ==========================================================

.. _BSD: http://opensource.org/licenses/BSD-3-Clause
.. _developing and testing: http://tmuxp.readthedocs.org/en/latest/developing.html
.. _Examples: http://tmuxp.readthedocs.org/en/latest/examples.html
.. _Quickstart: http://tmuxp.readthedocs.org/en/latest/quickstart.html
.. _bash completion: http://tmuxp.readthedocs.org/en/latest/quickstart.html#bash-completion
.. _Developing and Testing: http://tmuxp.readthedocs.org/en/latest/developing.html
.. _tmuxinator: https://github.com/aziz/tmuxinator
.. _teamocil: https://github.com/remiprev/teamocil
.. _abstraction layer: http://en.wikipedia.org/wiki/Abstraction_layer
.. _ORM: http://en.wikipedia.org/wiki/Object-relational_mapping
.. _tmux(1): http://tmux.sourceforge.net/
.. _Post an issue: https://github.com/tony/tmuxp/issues

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tmuxp-0.0.7-dev.tar.gz (45.9 kB view details)

Uploaded Source

File details

Details for the file tmuxp-0.0.7-dev.tar.gz.

File metadata

  • Download URL: tmuxp-0.0.7-dev.tar.gz
  • Upload date:
  • Size: 45.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for tmuxp-0.0.7-dev.tar.gz
Algorithm Hash digest
SHA256 79a52d71f0fdb5f8c2e14729d63bb2c1c5e65ba20961004c4fa47ab3c553418c
MD5 e5b75bb178d72064ec3b220daa1c1956
BLAKE2b-256 1b675d02a113da1cce2c52db0298148c0c602a866c5161370cc62634bf0e87e8

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page