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

145

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

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

    
задан topless 20.01.2011 в 14:20
источник

11 ответов

132
  • Самый удобный способ - выбрать его из меню Terminal - > «Установить заголовок ...».

  • Есть и другие способы, вы также можете выдать

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

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

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

    PROMPT_COMMAND='echo -ne "3]0;SOME TITLE HERE
    PROMPT_COMMAND='echo -ne "3]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}
    case "$TERM" in
    xterm*|rxvt*)
        # JEFFYEE REMOVED because it makes commands to title() not work
        #PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\[email protected]\h: \w\a\]$PS1"
        ;;
    *)
        ;;
    esac
    
    7"'
    7"'

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

%pr_e%

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

%pr_e%     
ответ дан Ward Muylaert 20.01.2011 в 14:51
источник
54

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

echo -ne "3]0;SOME TITLE HERE
#!/bin/bash

echo -ne "3]0;${1}%pr_e%7"
7"

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

%pr_e%

, который вы можете запустить с помощью termtitle "some title here"

    
ответ дан naught101 29.05.2012 в 04:20
30

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

:set title

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

    
ответ дан ulidtko 20.01.2011 в 15:40
22

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

wmctrl -r :ACTIVE: -N "MyWindowTitle"

Вам нужно будет установить пакет wmctrl .

    
ответ дан Isaiah 23.01.2011 в 01:57
16

Арг, так много ответов ...

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

Решение состоит в том, что PS1 в ubuntu устанавливает заголовок.

По умолчанию PS1 -

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

... который устанавливает заголовок в первой escape-последовательности.

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

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

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

PS1="\[email protected]\h:\w\$ "

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

PROMPT_COMMAND='echo -ne "3]0;SOME TITLE HERE
PS1='\[\e]0;newtitle\a\]${debian_chroot:+($debian_chroot)}\[email protected]\h:\w\$ '
7"'

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

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

%pr_e%     
ответ дан Hugh Perkins 07.02.2013 в 04:36
11

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

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

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

    
ответ дан Tom 18.06.2013 в 08:55
4

Другим способом изменения названия 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 .

    
ответ дан user76204 03.01.2013 в 02:09
3

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

  1. Задайте комбинацию клавиш в терминале gnome:

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

    Например, чтобы определить 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. [optional] Вы также можете использовать xdotool, например. откройте новую вкладку и установите заголовок с помощью приведенных выше команд, используя:

    xdotool key ctrl+shift+t
    

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

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

    
ответ дан MakisH 12.11.2015 в 18:55
2

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

PROMPT_COMMAND='echo -ne "3]0; ${PWD##*/}
PROMPT_COMMAND='echo -ne "3]0;$(basename ${PWD})%pr_e%7"' 
7"'

или

%pr_e%     
ответ дан Sriram 16.03.2014 в 06:47
0

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

set prompt='%{3]0;%[email protected]%m%pr_e%7%}%~%# '

Источник и более подробная информация: Ссылка

    
ответ дан spookypeanut 02.05.2017 в 13:11
0

Это работало на моем терминале Gnome 3.18.3 .

Измените файл .bashrc и добавьте эту функцию

# Update gnome terminal title
function termtitle() {
    # take argument
    TITLE=$1
    shift
    # update title
    PROMPT_COMMAND='echo -ne "3]0; $TITLE 
$ source ~/.bashrc
7"' }

Не забывайте, что source ваш .bashrc файл

$ termtitle "MariaDB CLI"

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

%pr_e%     
ответ дан RousseauAlexandre 23.10.2017 в 11:06