Skip to main content

Manage and build tmux workspaces.

Project description

tmuxp solves the panes / pains of managing workspaces.

https://travis-ci.org/tony/tmuxp.png?branch=master https://badge.fury.io/py/tmuxp.png

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.

https://raw.github.com/tony/tmuxp/master/doc/_static/tmuxp-dev-screenshot.png

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.

$ pip install tmuxp

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

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

Now with tmuxp:

$ tmuxp test.yaml

Check out our Examples, Quickstart and bash completion support.

Advanced tmux workflow:

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.python.org/pypi/tmuxp

License

BSD.

git repo

$ git clone https://github.com/tony/tmuxp.git

install dev

$ 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

$ python ./run_tests.py

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

Uploaded Source

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