Як змінити назву термінального заголовка термінала, ZSH на Debian?


14

Я не знаю, чи варто мені це задавати тут або на unix.stackexchange.com, я знайшов це питання тут .

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


@ DaniëlW.Crompton справді? це дуп? якщо так, я закрию його зараз, я пов’язаний із цим питанням, тому я знаю, що він є, але не знав, що це дуп, тому що я використовую іншу ОС та емулятор
Lynob

Чи ви спробували, що порадили у питанні, з яким ви пов’язали?
Daniël W. Crompton

2
@ DaniëlW.Crompton так, echo -ne "\e]1;this is the title\aі echo -ne "\e]1;$PWD\a"не роблю помилок, але не працюю, я спробував
зняти

1
Ви спробували echo -ne "\ e] 0; $ PWD \ a" з 0, а не 1?
Даніель В. Кромптон

Відповіді:


13

Ви встановлюєте заголовок вікна за допомогою послідовностей запуску 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

2
я сказав раніше echo -ne "\e]0;$PWD\a"працює , але коли я вийти з оболонки, вона перестає працювати ... Я спробував ви ввели у відповідь , і я отримую zsh: command not found: stringaі zsh: command not found: e]1так далі, все з них
Lynob

1
Оновлено відповідь
Даніель В. Кромптон

Для заміни домашнього каталогу в $ PWD ~я використав precmd () {print -Pn "\e]0;${PWD/$HOME/\~}\a"}(Z оболонку)
Максим Ганенко,

13

Наступне працювало для перейменування кожної вкладки в gnome-terminal. Я додав такий код у свій файл ~ / .zshrc- файл.

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

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

Зауважте, якщо ви використовуєте oh-my-zsh, вам потрібно буде відключити його команду auto title. Це можна зробити, коментуючи цей рядок у вашому файлі ~ / .zshrc :

DISABLE_AUTO_TITLE="true"

5
DISABLE_AUTO_TITLE = "true" зробив для мене трюк. Дякую.
Ракеш Гопал

4

Це має працювати незалежно від використовуваної оболонки:

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

2

Раніші відповіді не дуже працювали для мене. Не без деяких гикавок (не завжди освіжених чи чогось). Це може бути пов'язано з тим, що я мав ЗШ, без 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 і розмір вікна. Ви можете зробити кілька і мати вікна, названі для кожного випадку.


//, Що-небудь дещо конкретніше?
Натан Басанес

Минуло 12 років, як я написав ці сценарії. Я не хочу давати погану інформацію, але думаю, що все, що робилося, використовуючи параметри xterm. Перегляньте сторінку MAN на xterm для отримання додаткової інформації. У мене, можливо, є десь сценарії, але Гарві залишив увесь мій старий диск у купі, куди їх скинули, щоб позбутися від шкоди. Після закінчення ремонту я можу це оновити.
cliff2310
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.