Nach vielem Hin und Her und ein paar Dutzend tmux reloads / neustarts habe ich endlich eine Lösung gefunden, die genau so funktioniert, wie ich möchte, in allen Terminal-Emulatoren (iTerm / Kitty / Terminal.app), mit oder ohne Tmux
bashrc
case "$TERM" in tmux*) export PROMPT_COMMAND='echo -ne "\033]0;$@$:$\007"' ;; xterm*) if [ $ITERM_SESSION_ID ]; then export PROMPT_COMMAND='echo -ne "\033];$@$:$\007"; ' else export PROMPT_COMMAND='echo -ne "\033]$@$:$\007"; ' fi ;; esac
tmux
# use titles set-option -g set-titles on set-option -g set-titles-string "#T" set-option -g automatic-rename on