Как изменить заголовок Gnome-Terminal?

У меня есть несколько экземпляров терминалов, работающих в моей рабочей среде, и я хотел бы установить для каждого из них определенный заголовок, чтобы иметь четкое представление о том, для чего служит конкретный терминал, например, Apache, edit_ini, postgres и т. Д. ..

Конечно, из командной строки.

169
задан 24 June 2016 в 21:09

14 ответов

Argh, столько ответов...

Я попробовал wmctrl, который почти работал, кроме я не мог заставить это изменять заголовок значка, по крайней мере, не постоянно.

Проблема состоит в том, что PS1 в избивают наборы Ubuntu заголовок.

PS1 по умолчанию

\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ 

... который устанавливает заголовок в первой escape-последовательности: \e]0;\u@\h: \w\a

Таким образом существует два решения:

Решение 1: упростите PS1, затем используйте PROMPT_COMMAND

Измените PS1 на что-то более простое:

PS1="\u@\h:\w\$ "

Затем используйте PROMPT_COMMAND:

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

Решение 2: непосредственно измените PS1

Просто измените PS1 с новым заголовком:

PS1='\[\e]0;newtitle\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
23
ответ дан 24 June 2016 в 21:09

Другой способ изменить заголовок gnome-terminal при помощи gconftool-2; это изменяет первоначальный терминальный заголовок для выбранного профиля, таким образом, Вам можно было связать различные профили с заголовками, такими как 'Apache', 'Редактирование', и т.д. Вы затем запустились бы gnome-terminal с соответствующим профилем для получения терминального заголовка Вы указали. Это в отличие от gnome-terminal --title "name" который изменяет заголовок на терминал, но не влияет на первоначальный заголовок, указанный в профиле.

Вы могли использовать следующую команду в сценарии для определения имени терминала для профиля, и у Вас могло быть название терминального изменения в определенное время в день для напоминания Вам о вещах:

gconftool-2 --set /apps/gnome-terminal/profiles/Default/title --type=string "Apache"

Это для профиля по умолчанию, но Вы могли установить заголовок для других профилей также путем изменения, например, Default к другому профилю как Profile0:

gconftool-2 --set /apps/gnome-terminal/profiles/Profile0/title --type=string "Editing"

Я думал, что этот способ изменить заголовок полезен из-за способа, которым он мог использоваться в сценариях, или так же, как быстрая командная строка способ установить заголовок для профиля. Обратите внимание, что иногда необходимо повторно запустить терминал с указанным профилем для gconftool-2 установка для взятия влияния. Полные настройки, доступные для gnome-terminal может быть перечислен с gconftool-2 -R /apps/gnome-terminal.

3
ответ дан 24 June 2016 в 21:09

Если вы пользователь Ubuntu, вы можете изменить заголовок вкладки терминала gnome, используя HUD .

Находясь в терминале гнома, нажмите Alt, чтобы вызвать HUD, введите первые несколько букв, например, «tit», нажмите ввод и введите новый заголовок.

Это очень быстрый метод, позволяющий избежать использования мыши.

0
ответ дан 24 June 2016 в 21:09

Для полноты картины я бы добавил, что вы также можете установить заголовок gnome-terminal с помощью этой команды:

wmctrl -r :ACTIVE: -N "MyWindowTitle"

Вам необходимо установить пакет wmctrl Install wmctrl сначала.

0
ответ дан 24 June 2016 в 21:09

Если вы используете редактор Vim, вы также можете включить эту опцию в вашем vimrc:

:set title

, которая по умолчанию отключена. Он установит классные заголовки терминалов, показывающие имя файла, который вы редактируете в данный момент, и некоторые другие вещи.

0
ответ дан 24 June 2016 в 21:09

Ответ Уорда великолепен, если вы хотите устанавливать заголовок в зависимости от того, на каком хосте вы находитесь и т. Д. Каждый раз, когда открываете терминал. Если вы просто хотите быстро установить заголовок, вы можете просто запустить echo самостоятельно:

echo -ne "\033]0;SOME TITLE HERE\007"

или создать простой скрипт bash, скажем termtitle

#!/bin/bash

echo -ne "\033]0;${1}\007"

, который вы может работать с termtitle "some title here"

0
ответ дан 24 June 2016 в 21:09

Чтобы отобразить только текущий рабочий каталог в заголовке, попробуйте это в вашем .bashrc:

PROMPT_COMMAND='echo -ne "\033]0; ${PWD##*/}\007"'

или

PROMPT_COMMAND='echo -ne "\033]0;$(basename ${PWD})\007"' 
0
ответ дан 24 June 2016 в 21:09

Это работало в моем Редактирование Терминала 3.18.3 .

Gnome Ваш файл .bashrc , и добавьте, что эта функция

# Update gnome terminal title
function termtitle() {
    # take argument
    TITLE=$1
    shift
    # update title
    PROMPT_COMMAND='echo -ne "\033]0; $TITLE \007"'
}

не забывает к source Ваш файл

$ source ~/.bashrc

.bashrc , И затем можно просто обновить, Вы сможете изменить терминальный заголовок как это:

$ termtitle "MariaDB CLI"
0
ответ дан 24 June 2016 в 21:09
  • Наиболее удобный способ - выбрать его из меню «Терминал» -> «Установить заголовок ...».

  • Существуют и другие способы, однако вы также можете использовать

    gnome-terminal --title="SOME TITLE HERE"
    

    . Это может не дать желаемого эффекта, поскольку есть большая вероятность того, что ваши .bashrc перезапишут это поведение.

  • Приводит нас к последнему методу, который я бесстыдно вырвал из моего .bashrc.

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

В качестве дополнительной ссылки, это особая строка в моем .bashrc

PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'

Вам также может понадобиться закомментировать этот код в вашем ~ /. bashrc

case "$TERM" in
xterm*|rxvt*)
    # JEFFYEE REMOVED because it makes commands to title() not work
    #PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac
0
ответ дан 24 June 2016 в 21:09

Другим решением является использование xdotool для имитации нажатий клавиш, что может быть полезно в скриптах:

  1. Установите сочетание клавиш в gnome-terminal:

    Edit > Keyboard Shortcuts... > Terminal > Set Title
    

    Например Assing Shift+Ctrl+Y.

  2. Установите xdotool, если у вас его еще нет:

    sudo apt-get install xdotool
    
  3. Следующая последовательность команд (которую вы также можете использовать в скрипте bash) установит заголовок терминала / табуляции (экранируйте пробел с помощью \):

    xdotool key ctrl+shift+y 
    xdotool type My\ new\ fabulous\ title
    xdotool key Return
    
  4. [опционально] Вы также можете использовать xdotool, например, откройте новую вкладку и установите заголовок с помощью вышеуказанных команд, используя:

    xdotool key ctrl+shift+t
    

    Рассмотрите возможность добавления времени ожидания до и после открытия новой вкладки, например, sleep 1 (ждать 1 секунду).

Это не самое элегантное решение, но оно сработало для меня! Предыдущие ответы не сработали в моем случае. Я использую gnome-терминал в Ubuntu 14.04, и я хотел сделать скрипт bash.

0
ответ дан 24 June 2016 в 21:09

Если какая-либо бедная душа, такая как я, вынуждена использовать tcsh, попробуйте что-нибудь подобное в вашем .cshrc:

set prompt='%{\033]0;%n@%m\007%}%~%# '

Источник и более подробная информация: http://tldp.org/ HOWTO / Xterm-Title-4.html

0
ответ дан 24 June 2016 в 21:09

Если вы используете гном 3, удобная опция меню Terminal > Set Title была удалена. Вы можете установить раздвоенный терминал gnome 2, у которого все еще есть пункт меню «Задать заголовок», и запустить его вместо:

sudo apt-get install mate-terminal

Вместо запуска «Терминал», запустите «Терминал MATE». Возможно, вам также следует выбрать mate-терминал в sudo update-alternatives --config x-terminal-emulator.

0
ответ дан 24 June 2016 в 21:09

Мой ответ подобен более новому ответу, который не работал на меня. Самые старые ответы больше не работают. Средний старый ответ очень вводит так, я создал функцию в моем ~/.bashrc файл:

function termtitle() { PS1="${PS1/\\u@\\h: \\w/$@}"; }

После добавления или изменения функции или, если Вы хотите сбросить заголовок использование второго раза:

. ~/.bashrc
termtitle Special Projects

Иначе ежедневно просто использование termtitle с новым заголовком.

0
ответ дан 22 November 2019 в 22:48

В дополнение к другим действительным ответам, xdotool имеет функциональность, позволяющую изменить название любое приложение и окно.

xdotool getactivewindow set_window --name "WINDOW NAME HERE"

Обратите внимание, что изменение не будет постоянным, оно изменится при смене каталога и, возможно, будет установлено на ваш PWD.

Чтобы навсегда изменить его, вы можете изменить переменную PS1 внутри ~/.bashrc, как указано выше.

PS1="${PS1}\[\e]0;New Title\a\]"

Эта модификация является постоянной. На самом деле, после этого изменения, сделанные с помощью xdotool, также будут постоянными и не изменятся с помощью cd.

1
ответ дан 4 November 2020 в 18:58

Другие вопросы по тегам:

Похожие вопросы: