-
-
Save javipolo/62eb953f817a9a2f63b8127ff5f60788 to your computer and use it in GitHub Desktop.
| # Make short hostname only if its not an IP address | |
| __tm_get_hostname(){ | |
| local HOST="$(echo $* | rev | cut -d ' ' -f 1 | rev)" | |
| if echo $HOST | grep -P "^([0-9]+\.){3}[0-9]+" -q; then | |
| echo $HOST | |
| else | |
| echo $HOST| cut -d . -f 1 | |
| fi | |
| } | |
| __tm_get_current_window(){ | |
| tmux list-windows| awk -F : '/\(active\)$/{print $1}' | |
| } | |
| # Rename window according to __tm_get_hostname and then restore it after the command | |
| __tm_command() { | |
| if [ "$(ps -p $(ps -p $$ -o ppid=) -o comm=| cut -d : -f 1)" = "tmux" ]; then | |
| __tm_window=$(__tm_get_current_window) | |
| # Use current window to change back the setting. If not it will be applied to the active window | |
| trap "tmux set-window-option -t $__tm_window automatic-rename on 1>/dev/null" RETURN | |
| tmux rename-window "$(__tm_get_hostname $*)" | |
| fi | |
| command "$@" | |
| } | |
| ssh() { | |
| __tm_command ssh "$@" | |
| } | |
| ec2ssh() { | |
| __tm_command ec2ssh "$@" | |
| } |
Hi Mate, Silly question. Where to put code to make it work? I have ~/.tmux.conf where have set few key bindings.
Hi Mate, Silly question. Where to put code to make it work? I have ~/.tmux.conf where have set few key bindings.
The Code listed are functions. So i would suggest you create an general ~/.functions to put them in and add source ~/.functions to your Shell rcfile like ~/.bashrc or ~/.zshrc.
In the grep command on line 4, I think it's better to remove the ^ char, Because most of the time the ssh command starts with a user name not an IP i.e (ssh [email protected]) so this condition will mostly be false.
so
-- if echo $HOST | grep -P "^([0-9]+.){3}[0-9]+" -q; then
++ if echo $HOST | grep -P "([0-9]+.){3}[0-9]+" -q; then
Is better on my opinion.
In the
grepcommand on line 4, I think it's better to remove the^char, Because most of the time the ssh command starts with a user name not an IP i.e (ssh [email protected]) so this condition will mostly be false.so -- if echo $HOST | grep -P "^([0-9]+.){3}[0-9]+" -q; then ++ if echo $HOST | grep -P "([0-9]+.){3}[0-9]+" -q; then Is better on my opinion.
It depends if you've setup your ssh_config with automatically switching users for hosts. It's better to cover as many possibilities as you can.
I found that my tmux program was named
tmux-2.1, nottmux, so I generalized things a bit by usingcaseinstead ofif: