A simple wrapper for tmux.
Project description
pytmux
This is a simple wrapper around tmux to allow you to define a session in a JSON file. This is to avoid having to do all the setup of making the session with a name, opening the windows with the right names and commands, and doing so in a consistent manner. Also, if the session already exists, it will just open it for you.
Installation
Simply install it from pypi:
pip install pytmux
or if you insist:
easy_install pytmux
Usage
To list all configs:
pytmux list
To run a config:
pytmux run <config>
To start a new configuration or edit an existing one:
pytmux edit <config>
To validate all of your configs:
pytmux doctor
Configs
JSON will be used for configs:
{ "name": "sample", "windows": [ { "name": "dev server", "command": "./manage.py runserver" }, { "name": "some shell" }, { "command": "emacs" }, {} ] }
Will open a tmux session named sample with 4 windows open. The first will be named dev server and will have ./manage.py runserver running in it. The second will be a window named some shell which will have the system default shell running in it. The third will default to using automatic-rename and will have emacs running in it. The final will be a window with automatic-rename and the system default shell.
Why
Honestly, I don’t want to build this, but none of the currently existing tmux wrappers seem interested in supporting not naming windows and letting tmux do its automatic-rename thing. Also they use YAML and I prefer JSON.
Prior Art
There are a couple that exist already but don’t make me happy.
History
0.0.7 (2013-03-15)
Rewrote the tmux calling code to be a little less verbose.
0.0.6 (2013-03-07)
Properly handle sessions with a dot in it.
0.0.5 (2013-03-06)
Added jsonschema to the requirements because I forgot it (thanks Andy McKay).
Added missing comma in core.py
0.0.4 (2013-03-06)
Added pytmux doctor command.
0.0.3 (2013-03-04)
Edit has a default config that it will add if you are making a new file.
0.0.2 (2013-03-03)
Run now has nicer error messages.
0.0.1 (2013-03-03)
Initial release.
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.