SSH muddles the Terminal.app title
June 24, 2020 Leave a comment
Normally, the macOS Terminal.app title bar includes the current directory name. When you connect to a remote host with openssh on macOS, the title bar gets updated to be “$(whoami)@$(hostname): $(pwd)” instead. Unfortunately when you exit ssh, the terminal title bar is not restored and continues to say you are on a remote host.
Once you see it, you can’t unsee it.
I’m sorry.
My solution is to use arcane escape sequences to reset the Terminal title every time bash generates a new prompt:
| # Add to ~/.bashrc | |
| # | |
| # force reset of the current directory name in terminal title | |
| # to reset it after SSH sessions end. | |
| PROMPT_COMMAND='echo -ne "\033]0;$(basename ${PWD})\007"' |
The incantation is slightly different but conceptually the same for zsh.
| # Add to ~/.zshrc | |
| function clear_term_title { | |
| # removes the text that ssh puts into the terminal title | |
| printf '\033]0;\007' | |
| } | |
| PROMPT="$(clear_term_title)%% " |

