Manage and build tmux workspaces.
Project description
tmuxp solves the panes / pains of managing workspaces.
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.
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 |
|
Docs |
|
API |
|
Changelog |
|
Issues |
|
Source |
|
pypi |
|
License |
BSD. |
git repo |
|
install dev |
See the developing and testing page in the docs for more. |
tests |
|
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.