¿Cómo puedo configurar el título de la ventana iTerm2 para que sea el mismo sin importar qué panel esté seleccionado?

Soy consciente de que el título de la ventana iTerm2 se puede configurar con

echo -ne "\033]0;"Title goes here"\007"

pero eso parece solo establecer el título para un solo panel . Cuando cambio de panel, el título de la ventana cambia.

¿Cómo puedo configurar rápida/automáticamente el título de la ventana para que sea el mismo para cada panel?

Respuestas (3)

Si solo está buscando un título estático, puede agregar esa línea a su ~/.bash_profile. Solo asegúrese de buscarlo para cargarlo:

source ~/.bash_profile

De lo contrario, podría usar un alias. Esos también se agregan en su ~/.bash_profile también:

alias title1='echo -ne "\033]0;"Title goes here"\007"'
alias title2='echo -ne "\033]0;"Other Title goes here"\007"'

¡Espero que ayude!

Al final resolví esto agregando las siguientes líneas a mi archivo .bashrc.

# Private variables
_title_file=$HOME/.title
_win_num=${TERM_SESSION_ID%%t*}
_win_num=${_win_num#w}

# Record title from user input, or as user argument
_title_set() {  # default way is probably using Cmd-I in iTerm2
  [ -z "$TERM_SESSION_ID" ] && return 1
  if [ $# -gt 0 ]; then
    _title="$*"
  else
    read -r -p "Window title (window $_win_num):" _title
  fi
  [ -z "$_title" ] && _title="window $_win_num"
  [ -e "$_title_file" ] || touch "$_title_file"
  sed -i '/^'"$_win_num"':.*$/d' "$_title_file"  # remove existing title from file
  echo "$_win_num: $_title" >> "$_title_file"  # add to file
}

# Retrieve title from the hidden file
_title_get() {
  if [ -r "$_title_file" ]; then
    _title=$(grep "^$_win_num:.*$" "$_title_file" 2>/dev/null | cut -d: -f2-)
  else
    unset _title
  fi
  _title=$(echo "$_title" | sed $'s/^[ \t]*//;s/[ \t]*$//')
}

# Update the title
_title_update() {
  _title_get  # set _title to existing window title if possible
  [ -n "$_title" ] || _title_set  # set title name
  echo -ne "\033]0;$_title\007"  # re-assert title, in case changed
}

# Add a prompt command
_prompt() {
  export PROMPT_COMMAND=$(echo "$PROMPT_COMMAND; $1" | sed 's/;[ \t]*;/;/g;s/^[ \t]*;//g')
}

# Ask for a title when we create pane 0 (i.e. the first pane of a new window)
alias title='_title_set'  # easier for user
[[ "$PROMPT_COMMAND" =~ "_title_update" ]] || _prompt _title_update
[[ "$TERM_SESSION_ID" =~ w?t?p0: ]] && _title_update

Las líneas anteriores le pedirán que ingrese un título cuando se cree una nueva ventana (con el valor predeterminado como "ventana n"), y actualizará el título cada vez que se genere un aviso. Puede cambiar manualmente el título de la ventana llamando title <new_title>dentro de la ventana deseada.

¡Guau, una respuesta impresionantemente completa!

Si vas a iTerm2/Preferencias/Apariencia hay un área en el lado derecho de la ventana donde puedes definir nombres y lo que aparece en las pestañas o ventana. Debería poder jugar con esta configuración para obtener un resultado aceptable.