mirror of
https://github.com/m-housh/dotfiles.git
synced 2026-02-13 22:02:34 +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 dv='dirs -v' # list directory info
|
||||
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 g='git' # access git commands quickly
|
||||
alias ga='git add' # add files to git quickly
|
||||
|
||||
39
env/.local/scripts/tmux-sessionator
vendored
39
env/.local/scripts/tmux-sessionator
vendored
@@ -8,11 +8,13 @@ debug="${DEBUG}"
|
||||
|
||||
declare -a paths=()
|
||||
declare chooseOpt=
|
||||
declare emailOpt=
|
||||
declare -a directory=()
|
||||
|
||||
zparseopts -D -- \
|
||||
{c,-choose}=chooseOpt \
|
||||
{d,-directory}:=directory
|
||||
{d,-directory}:=directory \
|
||||
{e,-email}=emailOpt
|
||||
|
||||
#################### Helpers ####################
|
||||
|
||||
@@ -46,10 +48,14 @@ function create_session() {
|
||||
local selected=$2
|
||||
|
||||
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"
|
||||
tmux new-window -d -n 'files' -c "$selected"
|
||||
tmux send-keys -t files 'yazi' Enter
|
||||
tmux send-keys -t "$selected_name.1" 'n' Enter
|
||||
tmux new-window -t "$selected_name" -d -n "terminal" -c "$selected"
|
||||
}
|
||||
|
||||
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 ####################
|
||||
@@ -63,6 +69,9 @@ if [[ -n $choose ]]; then
|
||||
tmux list-sessions -F \#S | gum filter \
|
||||
--placeholder "Pick a session..."
|
||||
)
|
||||
elif [[ -n $emailOpt ]]; then
|
||||
debug_print "Email option."
|
||||
selected="email"
|
||||
elif [ ${#directory} -gt 0 ]; then
|
||||
debug_print "Using directory option."
|
||||
selected=${directory[-1]}
|
||||
@@ -70,7 +79,6 @@ elif [ ${#directory} -gt 0 ]; then
|
||||
selected="${PWD}"
|
||||
fi
|
||||
debug_print "Directory: $selected"
|
||||
|
||||
elif [[ "$#" -eq 1 ]]; then
|
||||
debug_print "Using existing session: $1"
|
||||
selected=$1
|
||||
@@ -93,20 +101,13 @@ fi
|
||||
selected_name=$(basename "$selected" | tr . _)
|
||||
tmux_running=$(pgrep tmux)
|
||||
|
||||
if [[ -z $TMUX ]] && [[ -z $tmux_running ]]; then
|
||||
create_session "$selected_name" "$selected"
|
||||
# tmux new-session -s "$selected_name" -c "$selected"
|
||||
# exit 0
|
||||
elif ! tmux has-session -t "$selected_name" 2> /dev/null; then
|
||||
create_session "$selected_name" "$selected"
|
||||
if [[ -z $TMUX ]] && [[ -z $tmux_running ]] || ! tmux has-session -t "$selected_name" &>/dev/null; then
|
||||
if [[ -n $emailOpt ]]; then
|
||||
create_email_session
|
||||
else
|
||||
create_session "$selected_name" "$selected"
|
||||
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" \
|
||||
|| tmux switch-client -t "$selected_name"
|
||||
|
||||
Reference in New Issue
Block a user