25 lines
696 B
Bash
25 lines
696 B
Bash
# SSH with automatic tmux window renaming
|
|
s() {
|
|
# Only rename tmux window if inside tmux
|
|
if [ -n "$TMUX" ]; then
|
|
local original_name
|
|
original_name=$(tmux display-message -p '#W')
|
|
|
|
# Extract the host from arguments (first arg without user@ or port)
|
|
local ssh_host="$1"
|
|
ssh_host="${ssh_host#*@}" # remove user@
|
|
ssh_host="${ssh_host%% *}" # trim after space
|
|
ssh_host="${ssh_host%%:*}" # remove port if given (e.g. user@host:2222)
|
|
|
|
tmux rename-window "${ssh_host%%.*}" # short hostname
|
|
|
|
# Run SSH session
|
|
command ssh "$@"
|
|
|
|
# Restore previous tmux window name
|
|
tmux rename-window "$original_name"
|
|
else
|
|
command ssh "$@"
|
|
fi
|
|
}
|
|
|