Ubuntu 15.04 свіжий встановлення: Неможливо перейменувати вкладки gnome-terminal


38

У Ubuntu 14.10, якщо у мене було відкрито кілька вкладок терміналів, я міг би клацнути правою кнопкою миші вкладку Термінал і перейменувати її. В Ubuntu 15.04 цю функцію я не можу знайти.

Чи є простий спосіб повернути його назад?

Це поточна версія:

$ gnome-terminal --version
GNOME Terminal 3.14.2

Відповіді:


21

Відповіли тут

Цитую:

user titleКод був видалений 1 з gnome-terminal 3.14. Існує лише один спосіб встановити заголовок, використовуючи послідовність евакуації - наприклад, за допомогою bash:

PROMPT_COMMAND='echo -ne "\033]0;YOUR TITLE GOES HERE\007"'

1: див. Gnome bug 724110 та gnome bug 740188 .


10
Дякую за відповідь. Прикро, що його вже немає, я сподіваюся, що вони додадуть його в наступному випуску, тим часом я використовую послідовність введення замість методу клацання правою кнопкою миші.
Том

2
@Tom Напишіть звіт про помилку =)
AB

13
це не просто сором: це безглуздо. У мене була погана ідея «перейти» від Дебіана Візі до Джессі, щоб мати все (ще не впевнений, справді), що я мав раніше, але ще гірше; неправильні рішення та нерозумні недоліки (наприклад, у gdm3 список можливих wm / сесій, які я встановив, не підходить і не прокручується, тому він простий у розрізі, а значить, я не можу обрати всі наявні у мене вмісту). Для мене GNOME з того часу приречений gnome-shell. Зникло також меню, щоб відкрити новий термінал у новому вікні чи вкладці (але ви все одно можете це зробити за допомогою ярлика. Чому ?! Замініть все великою розумною кнопкою: клацання, і це все робить!)
ShinTakezou

2
Зазвичай нові випуски додають та не видаляють функції.
angelcervera

2
Я зробив команду (скрипт оболонки), яку називають вкладкою, яка містить просто echo -ne "\ 033] 0; $ 1 \ 007", тому тепер у будь-якій вкладці я можу просто запустити вкладку TABNAME, щоб встановити назву вкладки. Не так зручно, як клацання правою кнопкою миші, щоб перейменувати вкладку, але це буде робити зараз. Дякую AB!
Брайан Піпа

31

.bashrcРішення запропонував Кірбі працював для мене:

set-title(){
  ORIG=$PS1
  TITLE="\e]2;$@\a"
  PS1=${ORIG}${TITLE}
}

то з мого підказки: $ set-title test-title


2
Для мене добре працює 15.10. Єдине застереження, що кожного разу, коли ви запускаєте його, ви додаєте PS1, тому не робіть цього зі сценарію. Після того, як я подзвонив це кілька разів set-title "longer and ":echo $PS1 \[\e]0; \u@\h: \w \a\]\u@\h:\w\[\033[m\]$(__git_ps1)$ \e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a\e]2;longer and \a
ahcox

1
працює для мене на ubuntu 16.04!
Programster

1
працює як шарм !!
sharadendu sinha

Як змінити назву під час запуску переднього плану, який я не хочу переривати?
Jānis Elmeris

1
Я думаю, що ви можете це зробити, призупинивши процес, використовуючи Control + Z, потім set-title X, fgщоб відновити процес.
ronan_mac

18

Не можу повірити, що вони видалили таку зручну для користувача функцію, як ця.

Я переходжу на ROXTerm ( http://roxterm.sourceforge.net ), який робить роботу непогано. Він упакований в Ubuntu:

sudo apt-get install roxterm

Тоді нехай динозавр продовжує свій шлях ;-)


1
Як я можу змінити назву вкладки в roxterm? Я не міг його знайти.
Халіл

також буде працювати на 16.04
prusswan

Нічого, не можу встановити термінал на тлі gnome-терміналу, і я ніколи не розумів, чому ... це проблема з самим терміналом. Фон терміналу Devilspie працює чудово з roxterm.
erm3nda

1
RoxTerm є приголомшливим і все ще працює, але, на жаль, не триватиме набагато довше: sadface:: sourceforge.net/p/roxterm/discussion/422638/thread/60da6975
Вільямс

З тих пір я перейшов на Terminator, і більше не потрібно було використовувати RoxTerm ....
Michael Opdenacker

14

Я спробував RoxTerm, як було запропоновано вище, з хорошими результатами. Але я оселився на терміналі MATE, який є частиною проекту MATE, продовження Gnome 2, 15.04:

sudo apt-get install mate-terminal

Цей термінал базується на коді терміналу Gnome.


Коментар: Важко зрозуміти умонастроїння дияволів терміналу Гнома. Там багато дискусій про те, як "назвати термінальні вкладки, і як важко отримати право. Якщо це так, навіщо ускладнювати ім’я користувача їх? Не дуже розумний взагалі.


6

Тепер я досліджував це на більшу частину дня і, нарешті, знайшов спосіб встановити цю назву. Це робиться через послідовності втечі, які починаються з \ e] 0; і закінчується символом BEL (= \ 007 = \ a). В відміну я вже говорилося вище, повідомлення від задньої оболонки до терміналу застосування є можливо, дуже обмежена, з допомогою таких керуючих послідовностей (є дещо більше).

Про це зверху:

PROMPT_COMMAND='echo -ne "\e]0;YOUR TITLE GOES HERE\a"'

Це може працювати, але це не завжди. PROMPT_COMMAND- це змінна, вміст якої виконується щоразу, коли ви надсилаєте команду, тому вона також надсилає цю послідовність запуску. Однак це може бути замінено послідовністю евакуації в змінній PS1, яка встановлює рядок командного рядка. Ось чому вищесказане тут не мало ефекту.

Зі старішої установки Ubuntu я схопив це, що встановлює командний рядок (права частина, після ]), а також надсилає необхідну послідовність відходу (ліва частина, до та включаючи ]):

PS1="\[\e]0;\u@\h: \w\a\]\u@\h:\w\$ "

Це, ймовірно, справляється краще, тому що не потрібно $PROMPT_COMMANDщоразу тлумачити . У нього також є багато інших варіантів, тому що Bash має більше послідовностей евакуації, наприклад, \uдля поточного імені користувача, \Wдля поточного імені каталога або \wдля всього шляху поточного робочого каталогу, необов'язково обрізаного лише за останні кілька за числом у $PROMPT_DIRTRIM. Дивіться розділ PROMPTINGна сторінці чоловіка Баша. Також врахуйте, що послідовність втечі додатково повинна бути оточена \[і \]тут.

Щоб встановити фіксовану назву, це працює:

PS1="\[\e]0;YOUR TITLE GOES HERE\a\]\u@\h:\w\$ "

Насолоджуйтесь!


Під час мого розслідування я також намагався зрозуміти вихідний код gnome-terminal, який призводить до вихідного коду vte, і там підтримка налаштування заголовка та зчитування послідовностей виходу вважається ризиком безпеки: Дивіться тут (випадок 20, випадок 21) та тут ("Звіт про назву вікна").


Це встановлює заголовок, але також видаляє будь-яке попереднє визначення PS1для інших застосувань, таких як встановлення спеціальної командної лінії. Я просто спробував додати вашу послідовність відключення до наявного PS1вмісту, і, здається, це працює. PS1+="\[\e]0;YOUR TITLE GOES HERE\a\]\u@\h:\w\$ "
Ось так

5

Налаштування $ PROMPT_COMMAND, як показано вище, тут має нульовий ефект. Не дивно, адже Bash працює всередині терміналу та батьківських процесів (тут: gnome-terminal) не може прочитати оточення дитини в ОС, схожій на unix. Використання чогось більш простого, наприклад

PROMPT_COMMAND='echo bla'

Виконує ехо-бла , більше нічого не відбувається.

Редагувати: потрібно загорнути це в послідовності втечі, дивіться іншу мою відповідь. Незважаючи на те, що читати дочірнє середовище неможливо, деяке спілкування з батьком відбувається через ці послідовності.

У помилці Gnome 740188 вони говорять про визначення функції title () в .bashrc. Для кожної вкладки було відкрито інше? Сильне потворне злому вперед, якщо можливо взагалі!

Навіть інші пояснення на Stackexchange говорять про встановлення $ PS1 (і отримати схвалення). Вибачте, ні, це не назва, це командний рядок.

Коротше кажучи: вони зіпсували його після ремонту, щоб заощадити трохи місця в діалоговому вікні налаштувань. О Боже мій

Тепер єдиний шанс отримати рішення розробника відмінено - розпалити сувору бурхливу бурю, інакше вони просто закриють ваш звіт про помилку за кілька секунд (намагалися багато-багато разів). Як би ми створили цю гадку?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.