Fish shell to open in tmux and create new sessions
This commit is contained in:
@@ -91,6 +91,8 @@ alias myip='curl ipinfo.io/ip; echo ""'
|
|||||||
alias lspmake='bear -- make -B'
|
alias lspmake='bear -- make -B'
|
||||||
alias services-up='docker compose -f /home/jason/Documents/Compose/local-services/docker-compose.yaml up -d'
|
alias services-up='docker compose -f /home/jason/Documents/Compose/local-services/docker-compose.yaml up -d'
|
||||||
alias services-down='docker compose -f /home/jason/Documents/Compose/local-services/docker-compose.yaml down'
|
alias services-down='docker compose -f /home/jason/Documents/Compose/local-services/docker-compose.yaml down'
|
||||||
|
alias tc='tmux attach'
|
||||||
|
alias td='tmux detach'
|
||||||
|
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
# FUNCTIONS
|
# FUNCTIONS
|
||||||
@@ -189,3 +191,31 @@ set -g __fish_git_prompt_char_stagedstate '●'
|
|||||||
set -g __fish_git_prompt_char_untrackedfiles ''
|
set -g __fish_git_prompt_char_untrackedfiles ''
|
||||||
|
|
||||||
direnv hook fish | source
|
direnv hook fish | source
|
||||||
|
|
||||||
|
# Auto-attach to tmux on interactive shell start
|
||||||
|
if status is-interactive && not set -q TMUX
|
||||||
|
# Get all session names matching shell, shell-2, shell-3 etc
|
||||||
|
set sessions (tmux list-sessions -F '#S' 2>/dev/null)
|
||||||
|
|
||||||
|
if test (count $sessions) -eq 0
|
||||||
|
tmux new-session -s shell
|
||||||
|
else
|
||||||
|
# Check if any shell session is unattached and attach it
|
||||||
|
set target (tmux list-sessions -F '#{session_name} #{session_attached}' 2>/dev/null \
|
||||||
|
| grep '^shell' | grep ' 0$' | head -1 | awk '{print $1}')
|
||||||
|
|
||||||
|
if test -n "$target"
|
||||||
|
tmux attach -t $target
|
||||||
|
else
|
||||||
|
# All shell sessions attached — find next number
|
||||||
|
set nums 1
|
||||||
|
for s in $sessions
|
||||||
|
if string match -rq '^shell-(\d+)$' $s
|
||||||
|
set nums $nums (string replace 'shell-' '' $s)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
set next (math (string join \n $nums | sort -n | tail -1) + 1)
|
||||||
|
tmux new-session -s shell-$next
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user