Take your iTerm2 environments with you wherever you go.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
images
lib
.gitignore
README.md
Rakefile
Termfile.test
termrc.gemspec

README.md

⚠️ termrc has moved! ⚠️

Project rewritten in node and jxa, called 🔥mert🔥. Please file any new issues there.

termrc

Take your iTerm2 environments with you wherever you go.

Description

Termrc allows you to store information about your project's environment for a given project in a small YAML file called a Termfile file. Restoring your project's environment is as simple as calling termrc start. Enjoy.

Quick Start

$ gem install termrc
$ termrc create
$ termrc start

The Termfile

The Termfile file is a YAML file which stores information about your project's environment. An environment, in this context, is an iTerm2 window with various panes, each with a different default command that is run when the pane opens. The layout dictates what your window looks like, while commands gives you a set of commands you can call for each pane.

Place the Termfile file at your project's root, then call termrc start. Voila!

Example Termfile

commands:
  here:       echo "Hello, here."
  there:      echo "Hello, there."
  world:      echo "Hello, world."
  me:         echo "Hello, me."
  you:        echo "Hello, you."

layout:
  - [ here, there ]       # row 1, with 2 panes
  - [ world ]             # row 2, with 1 pane
  - [ me, you ]           # row 3, with 2 panes

The Result

A Termfile file is a YAML file which requires two keys: commands and a layout. Each item in layout corresponds to a row of panes in iTerm2. So, for instance, the example Termfile file above would produce a new iTerm2 window with the following commands running inside each pane:

You can supply an optional key, root, which indicates the root directory you'd like each command to be run inside of. Have a look at this project's Termfile for an example.

You can also supply a layout_type value, either row or column, which denotes whether to use rows or columns as the means for splitting the window. This defaults to layout_type: row.

Tabs

You can automate tabs by providing an array of arrays, each array denoting a new tab and the layout within it. See this template file for an example.

** Windows **

You can also use termrc to open multiple windows like so.

CLI

$ termrc start      # Start termrc file (Shortcut: s, Argument 0: file (optional) )
$ termrc create     # Create termrc file
$ termrc list       # List termrc files in folder (Shortcut: l, Argument 0: folder (optional))

License

Released under the MIT License.

Questions?

twitter/brianmgonzalez
Brian Gonzalez

Changelog

  • March 9, 2015 - Release 0.2.3; support for windows (not the OS)
  • March 19, 2014 - Now using Termfile; panes now named with given command

Resources