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

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

Open to testers
---------------

tmuxp is still **alpha** code and needs a few more weeks until stable.
See the `Issues tracker`_ to see known issues and for any other concerns.

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

- Load + switch to new session from inside tmux.
- bash / zsh / tcsh completion
- JSON, YAML and `python dict`_ configuration.
- Support for pre-commands with ``shell_command_before`` to load
virtualenv / rvm / any other commands.
- Session resuming from config file if already running.
- Per-project tmux sessions
- uses tmux 1.8's ``pane_id``, ``window_id`` and ``session_id`` to build
create python objects to build workspaces with the freshest data.

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
-----------

Get the prerequisites:

1. installed ``tmux``, at least version **1.8**
2. libyaml is installed for your distribution.

Install ``tmuxp``:

.. 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/
.. _Issues tracker: https://github.com/tony/tmuxp/issues
.. _python dict: http://docs.python.org/2/library/stdtypes.html#dict

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.9-dev.tar.gz (47.3 kB view details)

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for tmuxp-0.0.9-dev.tar.gz
Algorithm Hash digest
SHA256 cffe5ef75f896a62cb40113cc8eab51caebeed71eafd946122af52c63c896f87
MD5 df758da149ec21d371d47d202f8b6be8
BLAKE2b-256 524d6631ce8c6939f57c72d9e2bce010390ec6dd2d018b969de7de3d8cbf95d4

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