All Projects β†’ tmux-python β†’ Tmuxp

tmux-python / Tmuxp

Licence: mit
πŸ’» tmux session manager. built on libtmux

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Tmuxp

Vcspull
πŸ”„ synchronize projects via yaml/json manifest. built on libvcs
Stars: ✭ 187 (-94.28%)
Mutual labels:  cli-utilities, cli, terminal, json, yaml
Http Prompt
An interactive command-line HTTP and API testing client built on top of HTTPie featuring autocomplete, syntax highlighting, and more. https://twitter.com/httpie
Stars: ✭ 8,329 (+154.79%)
Mutual labels:  cli, terminal, json
Structured Text Tools
A list of command line tools for manipulating structured text data
Stars: ✭ 6,180 (+89.05%)
Mutual labels:  cli, json, yaml
Swagger Merger
πŸ”— Merge multiple swagger files into a swagger file, support JSON/YAML.
Stars: ✭ 94 (-97.12%)
Mutual labels:  cli, json, yaml
Remarshal
Convert between CBOR, JSON, MessagePack, TOML, and YAML
Stars: ✭ 421 (-87.12%)
Mutual labels:  cli, json, yaml
Dasel
Query, update and convert data structures from the command line. Comparable to jq/yq but supports JSON, TOML, YAML, XML and CSV with zero runtime dependencies.
Stars: ✭ 759 (-76.78%)
Mutual labels:  cli, json, yaml
Yq
Command-line YAML, XML, TOML processor - jq wrapper for YAML/XML/TOML documents
Stars: ✭ 1,688 (-48.36%)
Mutual labels:  cli, json, yaml
.tmux
πŸ‡«πŸ‡· Oh my tmux! My self-contained, pretty & versatile tmux configuration made with ❀️
Stars: ✭ 15,594 (+377.03%)
Mutual labels:  cli, terminal, tmux
Autoserver
Create a full-featured REST/GraphQL API from a configuration file
Stars: ✭ 188 (-94.25%)
Mutual labels:  cli, json, yaml
Oq
A performant, and portable jq wrapper to facilitate the consumption and output of formats other than JSON; using jq filters to transform the data.
Stars: ✭ 132 (-95.96%)
Mutual labels:  cli, json, yaml
Httpie
As easy as /aitch-tee-tee-pie/ πŸ₯§ Modern, user-friendly command-line HTTP client for the API era. JSON support, colors, sessions, downloads, plugins & more. https://twitter.com/httpie
Stars: ✭ 53,052 (+1522.88%)
Mutual labels:  cli, terminal, json
Cli
A simple, fast, and fun package for building command line apps in Go
Stars: ✭ 16,995 (+419.88%)
Mutual labels:  cli, json, yaml
Yaspin
A lightweight terminal spinner for Python with safe pipes and redirects 🎁
Stars: ✭ 413 (-87.37%)
Mutual labels:  cli-utilities, cli, terminal
Goodls
This is a CLI tool to download shared files and folders from Google Drive.
Stars: ✭ 256 (-92.17%)
Mutual labels:  cli, terminal
Gitlab Cli
Create a merge request from command line in gitlab
Stars: ✭ 224 (-93.15%)
Mutual labels:  cli-utilities, cli
Nord Gnome Terminal
An arctic, north-bluish clean and elegant GNOME Terminal color theme.
Stars: ✭ 258 (-92.11%)
Mutual labels:  cli, terminal
Tty Markdown
Convert a markdown document or text into a terminal friendly output.
Stars: ✭ 275 (-91.59%)
Mutual labels:  cli, terminal
Dry Cli
General purpose Command Line Interface (CLI) framework for Ruby
Stars: ✭ 210 (-93.58%)
Mutual labels:  cli-utilities, cli
Sqawk
Like Awk but with SQL and table joins
Stars: ✭ 263 (-91.95%)
Mutual labels:  cli, json
Quicklib
Quick development library (AutoMapper, LinQ, IOC Dependency Injection, MemoryCache, Scheduled tasks, Config, Serializers, etc) with crossplatform support for Delphi/Firemonkey (Windows,Linux,OSX/IOS/Android) and freepascal (Windows/Linux).
Stars: ✭ 274 (-91.62%)
Mutual labels:  json, yaml

tmuxp, tmux session manager. built on libtmux.

Python Package Docs Build status Code Coverage License

We need help! tmuxp is a trusted session manager for tmux. If you could lend your time to helping answer issues and QA pull requests, please do! See issue #290!

New to tmux? The Tao of tmux is available on Leanpub and Amazon Kindle. Read and browse the book for free on the web.

Installation

Pip

$ pip install --user tmuxp

Homebrew

$ brew install tmuxp

Load a tmux session

Load tmux sessions via json and YAML, tmuxinator and teamocil style.

session_name: 4-pane-split
windows:
  - window_name: dev window
    layout: tiled
    shell_command_before:
      - cd ~/ # run as a first command in all panes
    panes:
      - shell_command: # pane no. 1
          - cd /var/log # run multiple commands in this pane
          - ls -al | grep \.log
      - echo second pane # pane no. 2
      - echo third pane # pane no. 3
      - echo forth pane # pane no. 4

Save as mysession.yaml, and load:

$ tmuxp load ./mysession.yaml

Projects with .tmuxp.yaml or .tmuxp.json load via directory:

$ tmuxp load path/to/my/project/

Load multiple at once (in bg, offer to attach last):

$ tmuxp load mysession ./another/project/

Name a session:

$ tmuxp load -s session_name ./mysession.yaml

simple and very elaborate config examples

User-level configurations

tmuxp checks for configs in user directories:

  • $TMUXP_CONFIGDIR, if set
  • $XDG_CONFIG_HOME, usually $HOME/.config/tmuxp/
  • $HOME/.tmuxp/

Load your tmuxp config from anywhere by using the filename, assuming ~/.config/tmuxp/mysession.yaml (or .json):

$ tmuxp load mysession

See author's tmuxp configs and the projects' tmuxp.yaml.

Shell

New in 1.6.0:

tmuxp shell launches into a python console preloaded with the attached server, session, and window in libtmux objects.

$ tmuxp shell

(Pdb) server
<libtmux.server.Server object at 0x7f7dc8e69d10>
(Pdb) server.sessions
[Session($1 your_project)]
(Pdb) session
Session($1 your_project)
(Pdb) session.name
'your_project'
(Pdb) window
Window(@3 1:your_window, Session($1 your_project))
(Pdb) window.name
'your_window'
(Pdb) window.panes
[Pane(%6 Window(@3 1:your_window, Session($1 your_project)))
(Pdb) pane
Pane(%6 Window(@3 1:your_window, Session($1 your_project))

Python 3.7+ supports PEP 553 breakpoint() (including PYTHONBREAKPOINT). Also supports direct commands via -c:

$ tmuxp shell -c 'print(window.name)'
my_window

$ tmuxp shell -c 'print(window.name.upper())'
MY_WINDOW

Read more on tmuxp shell in the CLI docs.

Pre-load hook

Run custom startup scripts (such as installing project dependencies before loading tmux. See the bootstrap_env.py and before_script example

Load in detached state

You can also load sessions in the background by passing -d flag

Screenshot

image

Freeze a tmux session

Snapshot your tmux layout, pane paths, and window/session names.

$ tmuxp freeze session-name

See more about freezing tmux sessions.

Convert a session file

Convert a session file from yaml to json and vice versa.

$ tmuxp convert filename

This will prompt you for confirmation and shows you the new file that is going to be written.

You can auto confirm the prompt. In this case no preview will be shown.

$ tmuxp convert -y filename
$ tmuxp convert --yes filename

Plugin System

tmuxp has a plugin system to allow for custom behavior. See more about the Plugin System.

Debugging Helpers

The load command provides a way to log output to a log file for debugging purposes.

$ tmuxp load --log-file <log-file-name> .

Collect system info to submit with a Github issue:

$ tmuxp debug-info
------------------
environment:
    system: Linux
    arch: x86_64

# ... so on

Docs / Reading material

See the Quickstart.

Documentation homepage (also in δΈ­ζ–‡)

Want to learn more about tmux itself? Read The Tao of Tmux online.

Donations

Your donations fund development of new features, testing and support. Your money will go directly to maintenance and development of the project. If you are an individual, feel free to give whatever feels right for the value you get out of the project.

See donation options at https://git-pull.com/support.html.

Project details

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].