You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Go to file
Ivan c16c1ca176
Create CODE_OF_CONDUCT.md
3 years ago
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 3 years ago
LICENSE Create LICENSE 3 years ago
Makefile Init 3 years ago
README.md Update README.md 3 years ago
commander.go Init 3 years ago
config.go Init 3 years ago
errors.go Init 3 years ago
go.mod Init 3 years ago
go.sum Init 3 years ago
main.go Update README.md 3 years ago
options.go Init 3 years ago
options_test.go Init 3 years ago
smug.go Init 3 years ago
smug_test.go Init 3 years ago
tmux.go Init 3 years ago

README.md

Smug - tmux session manager.

Inspired by tmuxinator and tmuxp.

Smug automates your tmux workflow. You can create a single configuration file, and smug will create all required windows and panes from it.

gif

Usage

tmux <command> <project>[:window name] [-w window name].

Examples

To start/stop a project and all windows, run:

$ smug start project

$ smug stop project

When you already have a running session, and you want to create only some windows from the configuration file, you can do something like this:

$ smug start project:window1

$ smug start project:window1,window2

$ smug start project -w window1

$ smug start project -w window1 -w window2

Configuration

Configuration files stored in the ~/.config/smug directory in the YAML format, e.g ~/.config/smug/your_project.yml.

Examples:

session: blog

root: ~/Developer/blog

before_start:
  - docker-compose -f my-microservices/docker-compose.yml up -d # my-microservices/docker-compose.yml is a relative to `root`

stop:
  - docker stop $(docker ps -q)

windows:
  - name: code
    root: blog # a relative path to root
    manual: true # you can start this window only manually, using the -w arg
    commands:
      - docker-compose start
    panes:
      - type: horizontal
        root: .
        commands:
          - docker-compose exec php /bin/sh
          - clear

  - name: infrastructure
    root: ~/Developer/blog/my-microservices
    panes:
      - type: horizontal
        root: .
        commands:
          - docker-compose up -d
          - docker-compose exec php /bin/sh
          - clear
session: blog

root: ~/Code/blog

before_start:
  - docker-compose up -d

stop:
  - docker-compose stop

windows:
  - name: code
    commands:
      - vim app/dependencies.php
    panes:
      - type: horizontal
        commands:
          - make run-tests
  - name: ssh
    commands:
      - ssh -i ~/keys/blog.pem ubuntu@127.0.0.1