mirror of
https://github.com/m-housh/dotfiles.git
synced 2026-02-14 22:22:40 +00:00
feat: Updates tmux-sessionator to generate an email session with the '--email' flag, adds email alias to zshrc.
This commit is contained in:
1
env/.config/zsh/.zshrc
vendored
1
env/.config/zsh/.zshrc
vendored
@@ -169,6 +169,7 @@ alias d='docker' # run docker commands quickly
|
|||||||
alias dc='docker compose' # run docker-compose commands quickly
|
alias dc='docker compose' # run docker-compose commands quickly
|
||||||
alias dv='dirs -v' # list directory info
|
alias dv='dirs -v' # list directory info
|
||||||
alias essh='edit-ssh-config' # edit ssh config quickly
|
alias essh='edit-ssh-config' # edit ssh config quickly
|
||||||
|
alias email='tmux-sessionator --email' # Open email tmux session.
|
||||||
alias fl='find-latest' # Find the last modified file in a directory.
|
alias fl='find-latest' # Find the last modified file in a directory.
|
||||||
alias g='git' # access git commands quickly
|
alias g='git' # access git commands quickly
|
||||||
alias ga='git add' # add files to git quickly
|
alias ga='git add' # add files to git quickly
|
||||||
|
|||||||
37
env/.local/scripts/tmux-sessionator
vendored
37
env/.local/scripts/tmux-sessionator
vendored
@@ -8,11 +8,13 @@ debug="${DEBUG}"
|
|||||||
|
|
||||||
declare -a paths=()
|
declare -a paths=()
|
||||||
declare chooseOpt=
|
declare chooseOpt=
|
||||||
|
declare emailOpt=
|
||||||
declare -a directory=()
|
declare -a directory=()
|
||||||
|
|
||||||
zparseopts -D -- \
|
zparseopts -D -- \
|
||||||
{c,-choose}=chooseOpt \
|
{c,-choose}=chooseOpt \
|
||||||
{d,-directory}:=directory
|
{d,-directory}:=directory \
|
||||||
|
{e,-email}=emailOpt
|
||||||
|
|
||||||
#################### Helpers ####################
|
#################### Helpers ####################
|
||||||
|
|
||||||
@@ -46,10 +48,14 @@ function create_session() {
|
|||||||
local selected=$2
|
local selected=$2
|
||||||
|
|
||||||
tmux new-session -ds "$selected_name" -c "$selected" -n "editor"
|
tmux new-session -ds "$selected_name" -c "$selected" -n "editor"
|
||||||
tmux send-keys -t editor 'n' Enter
|
tmux send-keys -t "$selected_name.1" 'n' Enter
|
||||||
tmux new-window -d -n "terminal" -c "$selected"
|
tmux new-window -t "$selected_name" -d -n "terminal" -c "$selected"
|
||||||
tmux new-window -d -n 'files' -c "$selected"
|
}
|
||||||
tmux send-keys -t files 'yazi' Enter
|
|
||||||
|
function create_email_session() {
|
||||||
|
tmux new-session -ds email -n work neomutt
|
||||||
|
tmux new-window -t email -d -n personal neomutt
|
||||||
|
tmux send-keys -t email.1 'i2'
|
||||||
}
|
}
|
||||||
|
|
||||||
#################### MAIN ####################
|
#################### MAIN ####################
|
||||||
@@ -63,6 +69,9 @@ if [[ -n $choose ]]; then
|
|||||||
tmux list-sessions -F \#S | gum filter \
|
tmux list-sessions -F \#S | gum filter \
|
||||||
--placeholder "Pick a session..."
|
--placeholder "Pick a session..."
|
||||||
)
|
)
|
||||||
|
elif [[ -n $emailOpt ]]; then
|
||||||
|
debug_print "Email option."
|
||||||
|
selected="email"
|
||||||
elif [ ${#directory} -gt 0 ]; then
|
elif [ ${#directory} -gt 0 ]; then
|
||||||
debug_print "Using directory option."
|
debug_print "Using directory option."
|
||||||
selected=${directory[-1]}
|
selected=${directory[-1]}
|
||||||
@@ -70,7 +79,6 @@ elif [ ${#directory} -gt 0 ]; then
|
|||||||
selected="${PWD}"
|
selected="${PWD}"
|
||||||
fi
|
fi
|
||||||
debug_print "Directory: $selected"
|
debug_print "Directory: $selected"
|
||||||
|
|
||||||
elif [[ "$#" -eq 1 ]]; then
|
elif [[ "$#" -eq 1 ]]; then
|
||||||
debug_print "Using existing session: $1"
|
debug_print "Using existing session: $1"
|
||||||
selected=$1
|
selected=$1
|
||||||
@@ -93,20 +101,13 @@ fi
|
|||||||
selected_name=$(basename "$selected" | tr . _)
|
selected_name=$(basename "$selected" | tr . _)
|
||||||
tmux_running=$(pgrep tmux)
|
tmux_running=$(pgrep tmux)
|
||||||
|
|
||||||
if [[ -z $TMUX ]] && [[ -z $tmux_running ]]; then
|
if [[ -z $TMUX ]] && [[ -z $tmux_running ]] || ! tmux has-session -t "$selected_name" &>/dev/null; then
|
||||||
create_session "$selected_name" "$selected"
|
if [[ -n $emailOpt ]]; then
|
||||||
# tmux new-session -s "$selected_name" -c "$selected"
|
create_email_session
|
||||||
# exit 0
|
else
|
||||||
elif ! tmux has-session -t "$selected_name" 2> /dev/null; then
|
|
||||||
create_session "$selected_name" "$selected"
|
create_session "$selected_name" "$selected"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Create a session if it doesn't exist.
|
|
||||||
# if ! tmux has-session -t "$selected_name" 2> /dev/null; then
|
|
||||||
# tmux new-session -ds "$selected_name" -c "$selected" -n "editor"
|
|
||||||
# tmux send-keys -t editor 'n' Enter
|
|
||||||
# tmux new-window -d -n "terminal" -c "$selected"
|
|
||||||
# fi
|
|
||||||
|
|
||||||
[ -z $TMUX ] && tmux attach -t "$selected_name" \
|
[ -z $TMUX ] && tmux attach -t "$selected_name" \
|
||||||
|| tmux switch-client -t "$selected_name"
|
|| tmux switch-client -t "$selected_name"
|
||||||
|
|||||||
Reference in New Issue
Block a user