From 2815067b1cb869c768d9f8e0de1c4b9876e7be03 Mon Sep 17 00:00:00 2001 From: sorrel Date: Sat, 17 Feb 2024 21:19:43 +0000 Subject: [PATCH] add 'grow' and 'shrink' commands for adjusting pane sizes --- bunkdeck | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 76 insertions(+), 4 deletions(-) diff --git a/bunkdeck b/bunkdeck index 078b6eb..907abaf 100755 --- a/bunkdeck +++ b/bunkdeck @@ -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 +