Package Exports
- tmuxn
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (tmuxn) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
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