add 'grow' and 'shrink' commands for adjusting pane sizes

This commit is contained in:
sorrel 2024-02-17 21:19:43 +00:00
parent 3de4803734
commit 2815067b1c

View file

@ -1,6 +1,10 @@
#!/bin/bash
set -e
heedPane="bunkdeck:0.0"
proclaimPane="bunkdeck:0.1"
shellPane="bunkdeck:0.2"
function isExistingDeck {
set +e
sessions=$(tmux list-sessions)
@ -16,16 +20,75 @@ function isExistingDeck {
function startNewDeck {
tmux new -d -s bunkdeck heed
tmux split-window -h -t bunkdeck -p 70
tmux split-window -t bunkdeck:0.0 -v -p 10
tmux send-keys -t bunkdeck:0.1 'proclaim' C-m
tmux send-keys -t bunkdeck:0.2 'cowsay "press [CTRL+b then o] to cycle through panes"' C-m
tmux attach -t bunkdeck:0.2
tmux split-window -t $heedPane -v -p 3
tmux send-keys -t $proclaimPane 'proclaim' C-m
tmux send-keys -t $shellPane 'cowsay "press [CTRL+b then o] to cycle through panes"' C-m
# turn on pane titling
tmux select-pane -t $heedPane -T heed
tmux select-pane -t $proclaimPane -T proclaim
tmux select-pane -t $shellPane -T shell
tmux set -g set-titles on
# attach session to shell
tmux attach -t $shellPane
}
function killDeck {
tmux kill-session -t bunkdeck
}
function growPane {
case $2 in
shell)
tmux resize-pane -t $shellPane -L "$3"
;;
proclaim)
tmux resize-pane -t $proclaimPane -U "$3"
;;
heed)
tmux resize-pane -t $heedPane -D "$3"
;;
*)
echo "usage: bunkdeck grow [WINDOW] [SIZE]"
echo
echo "windows:"
echo " shell horizontally grow the shell window"
echo " proclaim vertically grow the window where you send text"
echo " heed vertically grow the window where you read texts"
echo
echo "size:"
echo " number of cells to grow the selected window"
exit 1
;;
esac
}
function shrinkPane {
case $2 in
shell)
tmux resize-pane -t $shellPane -R "$3"
;;
proclaim)
tmux resize-pane -t $proclaimPane -D "$3"
;;
heed)
tmux resize-pane -t $heedPane -U "$3"
;;
*)
echo "usage: bunkdeck shrink [WINDOW] [SIZE]"
echo
echo "windows:"
echo " shell horizontally shrink the shell window"
echo " proclaim vertically shrink the window where you send text"
echo " heed vertically shrink the window where you read texts"
echo
echo "size:"
echo " number of cells to shrink the selected window"
exit 1
;;
esac
}
case $1 in
kill)
@ -38,12 +101,21 @@ case $1 in
startNewDeck
fi
;;
grow)
growPane "$@"
;;
shrink)
shrinkPane "$@"
;;
*)
echo "usage: bunkdeck [COMMAND]"
echo
echo "commands:"
echo " (none) attach to existing bunkdeck or start new one"
echo " kill kill running bunkdeck"
echo " grow grow the size of a bunkdeck window"
echo " shrink shrink the size of a bunkdeck window"
exit 1
;;
esac