10

Я не знаю, стоит ли мне задавать это здесь или на unix.stackexchange.com, я нашел этот вопрос здесь.

У меня такой же вопрос, я хочу изменить заголовок терминала, я использую дистрибутив на основе Debian, Terminator и ZSH, о-о-о-о-о, заголовок был в порядке с bash, но когда я перешел на ZSH, он показывает /bin/zsh качестве заголовка.

5 ответов5

10

Вы устанавливаете заголовок окна с помощью escape-последовательностей xtem, в большинстве реализаций первая будет работать лучше всего:

echo -en "\e]0;string\a" #-- Set icon name and window title to string
echo -en "\e]1;string\a" #-- Set icon name to string
echo -en "\e]2;string\a" #-- Set window title to string

РЕДАКТИРОВАТЬ: выше только устанавливает заголовок один раз. Чтобы zsh всегда отображал строку в заголовке, вы добавляете следующее в ваш .zprofile в своем домашнем каталоге:

case $TERM in
    xterm*)
        precmd () {print -Pn "\e]0;string\a"}
        ;;
esac
8

Следующее сработало для меня, чтобы переименовать каждую вкладку в gnome-Terminal. Я добавил следующий код в мой файл ~/.zshrc .

precmd () { print -Pn "\e]0;$TITLE\a" }
title() { export TITLE="$*" }

Это создает функцию заголовка для переименования каждой вкладки.

Обратите внимание, что если вы используете oh-my-zsh, вам нужно отключить команду auto title. Вы можете сделать это, раскомментировав эту строку в файле ~/.zshrc :

DISABLE_AUTO_TITLE="true"
4

Это должно работать независимо от используемой оболочки:

printf "\033];%s\07\n" "hello world"
0

Предыдущие ответы не совсем работали для меня. Не без некоторых икоты (не всегда обновляется или что-то). Это может быть из-за того, что у меня был ZSH, без oh-my-zsh . К счастью, я узнал о chpwd , поэтому:

chpwd() {
  [[ -t 1 ]] || return
  case $TERM in
    sun-cmd) print -Pn "\e]l%~\e\\"
      ;;
    *xterm*|rxvt|(dt|k|E)term) print -Pn "\e]2;%~\a"
      ;;
  esac
}
  1. chpwd каждый раз, когда изменяется каталог.
  2. При первом запуске xterm (или других) это не считается изменением каталога, поэтому поместите вызов chpwd непосредственно в .zshrc

Так как я не использую oh-my-zsh, я не знаю, работает ли он там, но если они не изменили и не перезаписали chpwd (в этом случае вы перезапишете их перезаписать:D), так и должно быть.

-1

Ну, вы можете сделать сценарий, который вызывает окно и задает имя, которое вы хотите. Выполните скрипт, чтобы вызвать окно с вашим именем. Вы также можете установить X, Y положение и размер окна. Вы можете сделать несколько и иметь названия окон для каждого случая.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .