Finalement, j'ai résolu ce problème en ajoutant les lignes suivantes à mon fichier .bashrc
.
_title_file=~/.title
_win_num=${TERM_SESSION_ID%%t*}
_win_num=${_win_num#w}
title_declare() {
# Record title from user input or as user argument
# Use GNU sed installed via homebrew here
[ -z "$TERM_SESSION_ID" ] && echo "Error: Not an iTerm session." && return 1
[ $# -gt 0 ] && _title=$* || read -p "Window $_win_num title: " _title
[ -z "$_title" ] && _title="window $_win_num"
[ -e "$_title_file" ] || touch "$_title_file"
gsed -i '/^'$_win_num':.*$/d' "$_title_file" # remove existing title
echo "$_win_num: $_title" >> "$_title_file" # add new title
}
title_update() {
# Read title from file and apply to window title
[ -r "$_title_file" ] || title_declare
_title=$(cat $_title_file | grep "^$_win_num:.*$" 2>/dev/null | cut -d: -f2-)
_title=$(echo "$_title" | sed $'s/^[ \t]*//;s/[ \t]*$//')
[ -z "$_title" ] && title_declare || echo -ne "\033]0;$_title\007"
}
prompt_append() {
export PROMPT_COMMAND=$(echo "$PROMPT_COMMAND; $1" | sed 's/;[ \t]*;/;/g;s/^[ \t]*;//g') # remove consecutive semicolons
}
# 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
Les lignes ci-dessus vous demanderont d'entrer un titre lorsqu'une nouvelle fenêtre est créée (la valeur par défaut étant "window n"), et mettront à jour le titre chaque fois qu'une invite est générée. Vous pouvez changer manuellement le titre de la fenêtre en appelant title <new_title>
à l'intérieur de la fenêtre souhaitée.