-
-
Save todgru/6224848 to your computer and use it in GitHub Desktop.
#!/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 |
Love it, thanks a ton for the script.
Carefuly read man page: http://man7.org/linux/man-pages/man1/tmux.1.html @AffanIndo
Thank you for this! But there are several things that I don't understand.
- What is the function of whitespace after
C-m
on line 20 and 24? I remove the whitespace and it is still works.
m Mark the current pane (see select-pane -m).
- I try to use my script without
tmux start-server
, and it still work perfectly.Once again, thank you! this gist is the best.
start-server
(alias: start)
Start the tmux server, if not already running, without creating
any sessions.
send-keys [-lMRX] [-N repeat-count] [-t target-pane] key ...
(alias: send)
Send a key or keys to a window. Each argument key is the name
of the key (such as βC-aβ or βNPageβ) to send; if the string is
not recognised as a key, it is sent as a series of characters.
The -l flag disables key name lookup and sends the keys literβ
ally. All arguments are sent sequentially from first to last.
The -R flag causes the terminal state to be reset.-M passes through a mouse event (only valid if bound to a mouse key binding, see MOUSE SUPPORT). -X is used to send a command into copy mode - see the WINDOWS AND PANES section. -N specifies a repeat count.
awesome, thanks!
Very nice, much thanks, it makes my day easier.
As long as we are here, you might consider getting on the tmux-resurrect train https://github.com/tmux-plugins/tmux-resurrect along with other plugins with tmux-plugin-manager. Pretty simple to save and restore apps that are running, but some are non-default and you can add them with
set -g @resurrect-processes '~cmus'
Brilliant!
Thank you!!
Thank you @todgru
This is excellent, thank you! I was going to toil away writing my own but i'm glad i found yours :D
Thanks!
Very helpful, thanks for posting this!
@niouby you're too kind! β€οΈ glad I could help!
@joshbaptiste you are welcome!
@azizLIGHT glad you like it!
@jpdippenaarS excellent! π€
@iosifv too kind!
@AffanIndo you're welcome! great questions - see @develforever got you covered.
@zackyaple thanks!
@kosivantsov anytime!
@develforever thanks for the contribution - nice work!
@rcgoodfellow you're welcome!
@botenvouwer nice! work smarter not harder π
@cmdcolin tmux-resurrect looks like a very useful tool! thank you!
@mcai4gl2 nah, i just searched man pages to figure this stuff out π thank you!
@bilalelhoudaigui you're welcome!
@maluramichael you're welcome, anytime!
@aamnah you're welcome! i'm happy to have helped you save time and effort!
@setymedia you're welcome!
@darzyx glad i could help out!
thanks to everyone for the stars! π€©
π happy holidays! π π βͺοΈ π
Nice
Thanks for posting it π
Thanks!
thanks for posting, helped me a lot to set up my startup script ππΌ
Much appreciated for this script. I was able to modify it to automate the launch of different ncmpcpp
panes for displaying the media library, playlist and visualization.
Amazing
This is great! Thank you
thanks !
Great script!!