[Python-apps-team] ITP: python-tmuxp -- Load and freeze your tmux layouts / workspaces through JSON / YAML files. Includes python API for interacting with tmux through python.

Tony Narlock tony at git-pull.com
Sun Dec 28 05:39:56 UTC 2014


Package: wnpp
Owner: Tony <tony at git-pull.com>
Severity: wishlist

* Package name    : python-tmuxp
  Version         : 0.1.12
  Upstream Author : Tony Narlock <tony at git-pull.com>
* URL             : http://tmuxp.readthedocs.org/
* License         : BSD 2-clause
  Programming Lang: Python
  Description     : Load and freeze your tmux layouts / workspaces
through JSON / YAML files. Includes python API for interacting with
tmux through python.



Why it this package relevant:

 - this python application extends the functionality of tmux, a terminal
   multiplexer common among programmers and system administrators.
 - debian provides a package for tmux [1]
 - tmuxp, hereinafter "python-tmuxp" (to clear ambiguity with the main
   tmux application it extends) allows for freezing and loading tmux
   workspaces through json and yaml files.
 - json and yaml is a common, human-readable way to serialize data,
   python-tmuxp uses them as a user-friendly way to store tmux
   workspaces.
 - a user can `tmuxp freeze` a session and tmux will reverse-engineer
   their tmux workspace in JSON or YAML.
 - a user can `tmuxp load` and python-tmuxp will build their workspace,
   session, window, panes, commands and all. If the session name already
   exists, tmuxp will offer to attach the session on the spot, instead
   of recreating it.
 - tmuxp also supports "before_script", which will run a setup script
   in a language of your choice (shell, perl, ruby, python, etc.) to
   prep your workspace.

Example use cases:

 - a system administrator can create a tmuxp configuration in yaml that
   automatically loads a session to `tail(1) -F` logs.
 - a programmer may keep a `.tmuxp.yaml` in their project to
   automatically open their common tmux workspace, complete with their
   virtualenvs / rvm / perlbrew environments.

But wait there's more:

 - python-tmuxp exposes a python API which makes tmux sessions, windows
   and panes available as python objects. [2]
 - from this you can script your tmux react your own python's workflows,
   as an example, you can python-tmuxp as a django middleware to catch
   exceptions, find or create a tmux session and use `send-keys` to open
   vim and go to the line of the exception (although that would be
   rather adventurous).

Maintainership:

  As a python application, this project may be maintained by
  Python Applications Packaging Team
  <python-apps-team at lists.alioth.debian.org>

[1]: https://packages.debian.org/search?keywords=tmux
[2]: http://tmuxp.readthedocs.org/en/latest/api.html



More information about the Python-apps-team mailing list