Skip to main content

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",
    "directory": "~/devel/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.1.0 (2013-03-19)

  • Support Python 3 (3.3 is was the tested version)

0.0.9 (2013-03-16)

  • Support setting default directory.

0.0.8 (2013-03-16)

  • Fixed initial call to Tmux.

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytmux-0.1.0.tar.gz (8.8 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