dotfiles/script/tmuxsess

38 lines
960 B
Plaintext
Raw Normal View History

#!/usr/bin/env bash
2021-03-31 10:47:59 +00:00
#
# Open a new tmux session named after the current directory with a basic
# development/editing environment.
#
# The session will be named after the current directory unless the desired name
# is passed as the only argument.
set -e
if [ -z "$1" ]; then
cwd=$(pwd)
2023-10-07 08:43:32 +00:00
sessionname=$(basename "$cwd")
else
sessionname="$1"
fi
2023-10-01 14:19:24 +00:00
2023-10-07 08:43:32 +00:00
tmux_new_result=$(tmux new -d -s "$sessionname" 2>&1) || true
2023-10-01 14:19:24 +00:00
exitcode=$?
if echo "$tmux_new_result" | grep -q "duplicate session"; then
echo "Session $sessionname already exists. Attaching..."
2023-10-07 08:43:32 +00:00
tmux new -d -A -s "$sessionname"
2023-10-01 14:19:24 +00:00
exit 0
fi
if [ $exitcode -ne 0 ]; then
echo "$tmux_new_result"
exit $exitcode
fi
# TODO: fix sessionname containing full stop which are renamed by tmux
2023-10-07 08:43:32 +00:00
tmux rename-window -t "$sessionname:1" cli
tmux new-window -t "$sessionname" -n vim zsh -ic nvim
tmux select-window -t "$sessionname:1"
2021-04-13 15:59:03 +00:00
# https://github.com/tmux/tmux/issues/2064
sleep 0.5
2023-10-07 08:43:32 +00:00
tmux attach -t "$sessionname"