Как изменить заголовок Gnome-Terminal?
У меня есть несколько экземпляров терминалов, работающих в моей рабочей среде, и я хотел бы установить для каждого из них определенный заголовок, чтобы иметь четкое представление о том, для чего предназначен конкретный терминал, то есть Apache, edit_ini, postgres и т. Д....
Конечно из командной строки.
17 ответов
Самый удобный способ - выбрать его из меню "Терминал" -> "Установить заголовок...".
Однако есть и другие способы
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
Ответ Уорда хорош, если вы хотите устанавливать заголовок в зависимости от того, на каком хосте вы находитесь и т. Д. Каждый раз, когда открываете терминал. Если вы просто хотите быстро установить заголовок, вы можете просто запустить echo:
echo -ne "\033]0;SOME TITLE HERE\007"
или сделать простую функцию (внутри вашего ~/.bashrc
), сказать termtitle
termtitle() { printf "\033]0;$*\007"; }
с которым можно бегать termtitle some title here
,
Ага, так много ответов...
Я старался wmctrl
, который почти работал, за исключением того, что я не мог заставить его изменить заголовок значка, по крайней мере, не навсегда.
Проблема в том, что PS1 в Bash в 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\$ '
Если вы используете редактор Vim, вы также можете включить эту опцию в вашем vimrc:
:set title
который отключен по умолчанию. Он установит классные заголовки терминалов, показывающие имя файла, который вы редактируете в данный момент, и некоторые другие вещи.
Ради полноты я бы добавил, что вы также можете установить gnome-terminal
название с помощью этой команды:
wmctrl -r :ACTIVE: -N "MyWindowTitle"
Вам нужно будет установить пакет wmctrl первый.
Мой ответ похож на более новый ответ, который не работал для меня. Самые старые ответы больше не работают. Средний старый ответ слишком много печатает, поэтому я создал функцию в моем ~/.bashrc
файл:
function termtitle() { PS1="${PS1/\\u@\\h: \\w/$@}"; }
После добавления или изменения функции или, если вы хотите сбросить заголовок во второй раз, используйте:
. ~/.bashrc
termtitle Special Projects
В противном случае на ежедневной основе просто используйте termtitle
с новым названием.
Если вы пользователь Ubuntu, вы можете изменить заголовок вкладки терминала gnome, используя HUD.
Находясь в gnome-терминале, нажмите Alt, чтобы вызвать HUD, введите первые несколько букв, например "tit", нажмите enter и введите новый заголовок.
Это очень быстрый метод, позволяющий избежать использования мыши.
Другое решение - использовать xdotool для имитации нажатий клавиш, что может быть полезно в скриптах:
Установите сочетание клавиш в gnome-терминале:
Edit > Keyboard Shortcuts... > Terminal > Set Title
Например осматривая
Shift+Ctrl+Y
,устанавливать
xdotool
если у вас его еще нет:sudo apt-get install xdotool
Следующая последовательность команд (которую вы также можете использовать в скрипте bash) установит заголовок терминала / вкладки (экранируйте пробелы с помощью
\
):xdotool key ctrl+shift+y xdotool type My\ new\ fabulous\ title xdotool key Return
[необязательно] Вы также можете использовать xdotool, например, чтобы открыть новую вкладку и установить заголовок с помощью приведенных выше команд, используя:
xdotool key ctrl+shift+t
Попробуйте добавить время до и после открытия новой вкладки, например,
sleep 1
(ждать 1 секунду).
Это не самое элегантное решение, но оно сработало для меня! Предыдущие ответы не сработали в моем случае. Я использую gnome-терминал в Ubuntu 14.04, и я хотел сделать скрипт bash.
Еще один способ изменить название gnome-terminal
с помощью gconftool-2
; это изменяет начальный заголовок терминала для выбранного профиля, поэтому у вас могут быть разные профили, связанные с заголовками, такие как "Apache", "Editing" и т. д. Затем вы запустите 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
,
Чтобы отобразить только текущий рабочий каталог в заголовке, попробуйте это в вашем.bashrc:
PROMPT_COMMAND='echo -ne "\033]0; ${PWD##*/}\007"'
или же
PROMPT_COMMAND='echo -ne "\033]0;$(basename ${PWD})\007"'
простой способ Ubuntu 20.04 (* с /questions/309079/kak-ustanovit-zagolovok-v-terminale/848308#848308 )
PS1=$PS1"[\e]0;Новое_Имя_Терминала\a]"
Это работало в моем терминале Gnome 3.18.3.
Отредактируйте ваш файл .bashrc и добавьте эту функцию
# Update gnome terminal title
function termtitle() {
# take argument
TITLE=$1
shift
# update title
PROMPT_COMMAND='echo -ne "\033]0; $TITLE \007"'
}
Не забудь source
ваш файл .bashrc
$ source ~/.bashrc
И тогда вы можете просто обновить, вы сможете изменить заголовок терминала следующим образом:
$ termtitle "MariaDB CLI"
В дополнение к другим действительным ответам,
xdotool
имеет функционал, позволяющий изменять заголовок любого приложения и окна.
xdotool getactivewindow set_window --name "WINDOW NAME HERE"
Обратите внимание, что это изменение не будет постоянным, оно изменится при смене каталога и, вероятно, будет установлено на ваш PWD.
Чтобы изменить его навсегда, вы можете изменить
PS1
переменная в пределах
~/.bashrc
как уже упоминалось.
PS1="${PS1}\[\e]0;New Title\a\]"
Это изменение является постоянным. Фактически после этого изменения, которые вы вносите с
xdotool
также будет постоянным и не изменится с
cd
.
В случае, если такие бедные люди, как я, вынуждены использовать tcsh, попробуйте что-нибудь подобное в вашем.cshrc:
set prompt='%{\033]0;%n@%m\007%}%~%# '
Источник и более подробная информация: http://tldp.org/HOWTO/Xterm-Title-4.html
Если вы используете гном 3, удобный Terminal > Set Title
пункт меню был удален. Вы можете установить раздвоенный терминал gnome 2, у которого все еще есть пункт меню "Задать заголовок", и запустить его вместо этого:
sudo apt-get install mate-terminal
Вместо запуска "Терминал", запустите "Терминал MATE". Вы, вероятно, также должны выбрать mate-терминал в sudo update-alternatives --config x-terminal-emulator
,
В вашем файле ~/.vimrc вместе с
set title
команда
добавить строку
set titleold=
Старый заголовок окна снова появится, когда вы выйдете из vim. Это уже придумали!
Кроме того, люди, которые используют vi с 80-х годов, могут обнаружить, что использование клавиши со стрелкой не переводит вас в командный режим. Добавьте это в ~/.vimrc, если вы хотите поведение терминала 80-х.
" vi users may expect that if you are
" in INSERT mode if an arrow key is pressed it will hop back
" into command mode.
"
inoremap <left> <esc><left>
inoremap <right> <esc><right>
inoremap <up> <esc><up>
inoremap <down> <esc><down>
для вкладки терминала wsl (подсистема Windows для Linux) я сделаю это:
# function to set terminal title
function set-title(){
if [[ -z "$ORIG" ]]; then
ORIG="$PS1"
fi
TITLE="\[\e]2;$*\a\]"
PS1="${ORIG}${TITLE}"
}