Skip to content

174n/tmuxn

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tmuxn

Adhering to Atwood's Law, here comes the tmux session manager written for NodeJS similar to tmuxinator and tmuxp

Installation

Rudimentary tested with

  • NodeJS 6.11.5/tmux 2.6/MacOS 10.13.1,
  • NodeJS 6.11.5/tmux 2.6.3/Ubuntu 18.04 LTS,
  • NodeJS 10.15.3/tmux 2.6.3/Ubuntu 18.04 LTS and
  • NodeJS 10.15.2/tmux 2.9a/MacOS 10.14.4

Other or older versions of tmux are not tested or supported.

npm install -g tmuxn

Usage

  Usage: tmuxn [--create/--start/--kill/--debug] <project_name>


  Options:

    -V, --version                output the version number
    -c, --create <project_name>  Create new project with name
    -s, --start <project_name>   Start project with name
    -k, --kill <project_name>    Kill project with name
    -d, --debug <project_name>   Print shell commands of project with name
    -p, --project <project_config> Provide project config file
    -r, --root <project_root>    Provide project root start point
    -h, --help                   output usage information

What does it do?

  • Start tmux sessions configured in .yml-files, tmuxinator-style
  • Figure out where to store the config files ($XDG_CONFIG_HOME/tmuxn or ~/.tmuxn)
  • Docs / gotchas from tmuxinator should apply to tmuxn as well

What does it not do?

  • Depend on $EDITOR
  • Do anything Ruby-specific
  • Manage (copy/delete) the configuration files
  • Provide bash completion

Sample config

# ~/.tmuxn/sample.yml

name: sample
root: ~/

# Optional tmux socket
# socket_name: foo

# Runs before everything. Use it to start daemons etc.
# pre: mongod

# Project hooks
# Runs on project start, always
# on_project_start: command
# Run on project start, the first time
# on_project_first_start: command
# Run on project start, after the first time
# on_project_restart: command
# Run on project exit ( detaching from tmux session )
# on_project_exit: command

# Runs in each window and pane before window/pane specific commands.
# Useful for setting up interpreter versions.
# pre_window: nvm use --lts

# Pass command line options to tmux. Useful for specifying a different tmux.conf.
# tmux_options: -f ~/.tmux.mac.conf

# Change the command to call tmux.  This can be used by derivatives/wrappers like byobu.
# tmux_command: byobu

# Specifies (by name or index) which window will be selected on project startup.
# If not set, the first window is used.
# startup_window: editor

# Specifies (by index) which pane of the specified window will be selected on project startup.
# If not set, the first pane is used.
# startup_pane: 1

# Controls whether the tmux session should be attached to automatically. Defaults to true.
# attach: false

# Runs after everything. Use it to attach to tmux with custom options etc.
# post: tmux -CC attach -t sample

windows:
  - editor:
    layout: main-vertical
    # Synchronize all panes of this window after the pane commands.
    # synchronize: after
    panes:
      - vim
      - mongo
  - server: node app.js
  - logs: tail -f access.log

About

NodeJS port of tmuxinator

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%