![](/style/images/good.png)
![](/style/images/bad.png)
ivaaaan/smug
source link: https://github.com/ivaaaan/smug
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
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.
Configuration used in this GIF can be found here.
Usage
smug <command> <project>[:window name] [-w window name]
.
Examples
To start/stop a project and all windows, run:
xyz@localhost:~$ smug start project xyz@localhost:~$ 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:
xyz@localhost:~$ smug start project:window1 xyz@localhost:~$ smug start project:window1,window2 xyz@localhost:~$ smug start project -w window1 xyz@localhost:~$ smug start project -w window1 -w window2 xyz@localhost:~$ smug stop project:window1 xyz@localhost:~$ smug stop project -w window1 -w window2
Installation
Prerequisite Tools
Fetch from GitHub
The easiest is to clone Smug from GitHub and install it using go-cli
:
cd /tmp git clone https://github.com/ivaaaan/smug.git cd smug go install
Configuration
Configuration files stored in the ~/.config/smug
directory in the YAML
format, e.g ~/.config/smug/your_project.yml
.
Examples
Example 1
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
Example 2
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 [email protected]
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK