Skip to main content

A CLI utility for tmux

Project description

txm - A Tmux Helper Tool

txm is a command-line utility to make working with tmux more efficient and user-friendly. It's written in Python and aims to abstract some of the complexities involved in managing tmux sessions, panes, and command executions.

Table of Contents

Installation

To install txm, navigate to the root directory of the project and execute the following command:

pip install .

This will build the package and install it. Also the package is temporarily available on pypitest (to move it later to pypi)

pip install -i https://test.pypi.org/simple/ txm

Usage

Here are the available functionalities of txm.

Session Management

Create a New Session

To create a new session, run:

txm new [SESSION_NAME]

List All Sessions

To list all available sessions, run:

txm list

Attach to a Session

To attach to an existing session, run:

txm attach [SESSION_NAME]

Detach from a Session

To detach from the current session, run:

txm detach

Pane Management

Split Pane Vertically

To split the current pane vertically, run:

txm vsplit

Split Pane Horizontally

To split the current pane horizontally, run:

txm hsplit

Navigate Between Panes

To navigate between panes, run:

txm navigate [DIRECTION]

DIRECTION can be one of the following: U for up, D for down, L for left, R for right.

Command Execution

Execute a Command

To execute a command in the current pane, run:

txm run [COMMAND]

Configuration

txm can optionally read from a .txm-config.json file located in the root directory for user-specific settings.

.txm-config.json

This configuration file contains settings and preferences for your TXM utility. It should be placed in the root directory of your project or your home directory.

Default Template:

{
  "tmux_path": "/usr/local/bin/tmux",
  "log_directory": "logs/",
  "default_session_name": "my_session"
}
  • tmux_path: Specifies the path to the tmux executable.
  • log_directory: Specifies the directory where tmux pane logs will be saved.
  • default_session_name: Specifies the default name for a new tmux session.

.txm-presets.json

This file holds the saved tmux session presets. It will be automatically generated by the txm save command, or you can create it manually in the directory of your choice.

Default Template:

{
  "presets": [
    {
      "name": "preset_1",
      "windows": [
        {
          "name": "window_1",
          "panes": ["command1", "command2"]
        },
        {
          "name": "window_2",
          "panes": ["command3", "command4"]
        }
      ]
    }
  ]
}
  • name: Specifies the name of the saved preset.
  • windows: Array of windows in the preset.
    • name: Name of the window.
    • panes: Array of commands to run in each pane.

Contributing

Contributions are welcome. Feel free to open a pull request or submit an issue.

License

This project is licensed under the MIT License. See the LICENSE.md file for details.

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

txm-0.1.0.tar.gz (19.7 kB view hashes)

Uploaded Source

Built Distribution

txm-0.1.0-py3-none-any.whl (19.7 kB view hashes)

Uploaded Python 3

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