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

2

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

echo -ne "3]0;"Title goes here"
echo -ne "3]0;"Title goes here"%pre%7"
7"

pero parece que solo establece el título para un panel único . 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?

    
pregunta Luke Davis 01.05.2018 - 21:45

3 respuestas

0

Así es como resolví esto al final: agregando las siguientes líneas a mi .bashrc .

_title_file=~/.title
_win_num="${TERM_SESSION_ID%%t*}"
_win_num="${_win_num#w}"
function title_declare() {
  # Record title from user input, or as user argument
  [ -z "$TERM_SESSION_ID" ] && echo "Error: Not an iTerm session." && return 1
  if [ -n "$1" ]; then # warning: $@ is somehow always non-empty!
    _title="$@"
  else
    read -p "Window title (window $_win_num): " _title
  fi
  [ -z "$_title" ] && _title="window $_win_num"
  # Use gsed instead of sed, because Mac syntax is "sed -i '' <pattern> <file>" while
  # GNU syntax is "sed -i <pattern> <file>", which is annoying.
  [ ! -e "$_title_file" ] && touch "$_title_file"
  gsed -i '/^'$_win_num':.*$/d' $_title_file # remove existing title from file
  echo "$_win_num: $_title" >>$_title_file # add to file
}
function title_update() {
  # Check file availability
  [ ! -r "$_title_file" ] && title_declare
  # Read from file
  _title="$(cat $_title_file | grep "^$_win_num:.*$" 2>/dev/null | cut -d: -f2-)"
  # Update or re-declare
  _title="$(echo "$_title" | sed $'s/^[ \t]*//;s/[ \t]*$//')"
  if [ -z "$_title" ]; then title_declare # reset title
  else echo -ne "3]0;$_title
_title_file=~/.title
_win_num="${TERM_SESSION_ID%%t*}"
_win_num="${_win_num#w}"
function title_declare() {
  # Record title from user input, or as user argument
  [ -z "$TERM_SESSION_ID" ] && echo "Error: Not an iTerm session." && return 1
  if [ -n "$1" ]; then # warning: $@ is somehow always non-empty!
    _title="$@"
  else
    read -p "Window title (window $_win_num): " _title
  fi
  [ -z "$_title" ] && _title="window $_win_num"
  # Use gsed instead of sed, because Mac syntax is "sed -i '' <pattern> <file>" while
  # GNU syntax is "sed -i <pattern> <file>", which is annoying.
  [ ! -e "$_title_file" ] && touch "$_title_file"
  gsed -i '/^'$_win_num':.*$/d' $_title_file # remove existing title from file
  echo "$_win_num: $_title" >>$_title_file # add to file
}
function title_update() {
  # Check file availability
  [ ! -r "$_title_file" ] && title_declare
  # Read from file
  _title="$(cat $_title_file | grep "^$_win_num:.*$" 2>/dev/null | cut -d: -f2-)"
  # Update or re-declare
  _title="$(echo "$_title" | sed $'s/^[ \t]*//;s/[ \t]*$//')"
  if [ -z "$_title" ]; then title_declare # reset title
  else echo -ne "3]0;$_title%pre%7" # re-assert existing title, in case changed
  fi
}
function prompt_append() { # fix issues with consecutive semicolons
  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)
[[ ! "$PROMPT_COMMAND" =~ "title_update" ]] && prompt_append title_update
[[ "$TERM_SESSION_ID" =~ w?t?p0: ]] && [ -z "$_title" ] && title_declare
7" # re-assert existing title, in case changed fi } function prompt_append() { # fix issues with consecutive semicolons 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) [[ ! "$PROMPT_COMMAND" =~ "title_update" ]] && prompt_append title_update [[ "$TERM_SESSION_ID" =~ w?t?p0: ]] && [ -z "$_title" ] && title_declare

Las líneas anteriores pedirán al usuario que ingrese un título cada vez que se crea una nueva ventana (con el valor predeterminado como "ventana n"), y actualiza el título cada vez que se genera un aviso. Puede cambiar manualmente el título de la ventana llamando a title <new_title> desde la ventana deseada.

    
respondido por el Luke Davis 30.10.2018 - 19:18
2

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

source ~/.bash_profile

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

alias title1='echo -ne "3]0;"Title goes here"
source ~/.bash_profile
7"' alias title2='echo -ne "3]0;"Other Title goes here"
alias title1='echo -ne "3]0;"Title goes here"%pre%7"'
alias title2='echo -ne "3]0;"Other Title goes here"%pre%7"'
7"'

Espero que ayude!

    
respondido por el Edward S. 01.05.2018 - 21:59
1

Si vas a iTerm2 / Preferencias / Apariencia, hay un área en el lado derecho de la ventana donde puedes definir los nombres y lo que aparece en las pestañas o la ventana. Debes poder jugar con estas configuraciones para obtener un resultado aceptable.

    
respondido por el jmh 02.05.2018 - 08:07

Lea otras preguntas en las etiquetas