Skip to content

Instantly share code, notes, and snippets.

@jacob-faber
Forked from todgru/starttmux.sh
Created November 26, 2018 11:43
Show Gist options
  • Save jacob-faber/119032b947f37e920d25e3587b968221 to your computer and use it in GitHub Desktop.
Save jacob-faber/119032b947f37e920d25e3587b968221 to your computer and use it in GitHub Desktop.
Start up tmux with custom windows, panes and applications running
#!/bin/sh
#
# Setup a work space called `work` with two windows
# first window has 3 panes.
# The first pane set at 65%, split horizontally, set to api root and running vim
# pane 2 is split at 25% and running redis-server
# pane 3 is set to api root and bash prompt.
# note: `api` aliased to `cd ~/path/to/work`
#
session="work"
# set up tmux
tmux start-server
# create a new tmux session, starting vim from a saved session in the new window
tmux new-session -d -s $session -n vim #"vim -S ~/.vim/sessions/kittybusiness"
# Select pane 1, set dir to api, run vim
tmux selectp -t 1
tmux send-keys "api;vim" C-m
# Split pane 1 horizontal by 65%, start redis-server
tmux splitw -h -p 35
tmux send-keys "redis-server" C-m
# Select pane 2
tmux selectp -t 2
# Split pane 2 vertiacally by 25%
tmux splitw -v -p 75
# select pane 3, set to api root
tmux selectp -t 3
tmux send-keys "api" C-m
# Select pane 1
tmux selectp -t 1
# create a new window called scratch
tmux new-window -t $session:1 -n scratch
# return to main vim window
tmux select-window -t $session:0
# Finished setup, attach to the tmux session!
tmux attach-session -t $session
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment