Skip to content

Instantly share code, notes, and snippets.

@jinyangustc
Forked from danydev/ssh
Created February 11, 2023 04:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jinyangustc/d85481172c4b4482849147d1aff8a971 to your computer and use it in GitHub Desktop.
Save jinyangustc/d85481172c4b4482849147d1aff8a971 to your computer and use it in GitHub Desktop.
Update iTerm Badge with hostname of the server used to ssh
#!/bin/bash
# Script that updates the iTerm Badge with the hostname of the server that you are
# connecting to with ssh.
#
# Instructions:
# - Put this script in ~/bin/ssh (this will override the default ssh binary)
# - Run 'chmod +x ~/bin/ssh' to give execution permission to the script
# - Open iTerm\Preferences\Profiles, select your profile and put '\(user.current_ssh_host)' in the Badge text box
# - Enjoy!
#
# Troubleshoot issues:
# - If it's not working, make sure your shell is white-listed in the script (see $PARENT_COMMAND in the script)
#
# Credits: inspired by https://engineering.talis.com/articles/bash-osx-colored-ssh-terminal/
iterm2_set_user_var () {
PARENT_COMMAND=$(ps -o comm= $PPID)
# Avoid to do send the command when ssh is not run by the shell
if [ "$PARENT_COMMAND" = "bash" ] || [ "$PARENT_COMMAND" = "-zsh" ]; then
printf "\033]1337;SetUserVar=%s=%s\007" "$1" $(printf "%s" "$2" | base64 | tr -d '\n')
fi
}
on_exit () {
iterm2_set_user_var current_ssh_host ""
}
trap on_exit EXIT
HOSTNAME=`echo $@ | sed s/.*@//`
iterm2_set_user_var current_ssh_host "$HOSTNAME"
/usr/bin/ssh "$@"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment