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?
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.
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.
Preet Sangha