Gnome-Terminal başlığını nasıl değiştirebilirim?


165

Çalışma ortamımda çalışan bazı terminal örneklerine sahibim, istediğim şey, belirli bir terminalin hangi amaca hizmet ettiği, örneğin Apache, editing_ini, postgres vb.

Tabii ki komut satırından.


Ward'ın yorumuna ek olarak: Başlık değiştirme-kaçış dizisini göndermeden önce "PROMPT_COMMAND" ı unbe etmeyi unutma .
Jon Green,

KDE için benzer bir soru için bkz. Stackoverflow.com/questions/8782159/…
naught101

OS X’ten Ubuntu’ya geçiş yaparken bu sorunu yaşadım. Çok sekmeli bir kurulum içinde özel başlıklar edinmek için yazdığım bu komut dosyasıylagnome-terminal --load-config birlikte kullandım .
halfer

3
Ev dir daki Bashrc dosyasına aşağıdaki eklemek # set title of current terminal setTerminalTitle(){ echo -ne "\033]0;${1}\007" } alias termttl=setTerminalTitleartık başlık örneğin ayarlamak için termttl takma kullanabilirsiniztermttl askubuntu
urmalp

1
“Korumalı” yani cevap alamıyorum. Gnome3 gnome-terminalvarsayılanıdır PROMPT_COMMAND=__vte_prompt_command. Bu, tercihlerdeki Profillerden gelen değerleri kullanır. Birden fazla profil bulunduğunda, Yeni Sekme ve Yeni Pencere menü öğelerinin her Profil için bir alt menü öğesi vardır. Manuel yol, yeni bir terminal sekmesi açmak, sekme başlığına sağ tıklayın ve Başlığı Ayarla ... seçeneğini seçin . (Bu ayrı bir cevapta çok daha kolay okunurdu, ama ...)
Zengin

Yanıtlar:


145
  • En kullanıcı dostu yöntem Terminal -> "Set Title ..." menüsünden seçmektir.

  • Ancak, başka yollar da verebilirsiniz

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

    Bu istenen etkiyi vermeyebilir, çünkü .bashrcbu davranışların üzerine yazma ihtimaliniz büyüktür .

  • Bizi utanmadan çektiğim son yönteme götürüyoruz .bashrc.

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

Ekstra bir referans olarak, bu benim .bashrc

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

Bu kodu ~ / .bashrc dosyasında da yorumlamanız gerekebilir.

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

2
Etkili olması için, belirttiğiniz şekilde yorum yapmanız veya kaldırmanız gerekir!
üstsüz

1
@Ward: çalıştırılacak PROMPT_COMMANDbir programdır . PS1ve PS1olan metinsel dizeleri görüntülenir. Yukarıdaki örnekte, çalıştırılan komut şudur echo, bu daha sonra sadece bir dizge basar. Daha fazla bilgi için man bashveya manpages.ubuntu.com/bash adresini ziyaret edin.
Sladen

29
GNOME Terminal 3.16.2 diyorOption "--title" is no longer supported in this version of gnome-terminal.
İvan Kozik

10
Gnome 3.18.3'te, menülerde "Set title" girişi yok: /
shadi

2
Yukarıdaki dizelerde gobbledegook'un kafası karışan herkes için, bunlar ANSI'nin
WillC

65

Bir terminali her açışınızda, hangi konağın üzerinde bulunduğuna bağlı olarak başlığınızı ayarlamak istiyorsanız, Ward'ın cevabı çok iyi. Hızlıca bir başlık koymak istiyorsanız, ekoyu kendi başınıza çalıştırabilirsiniz:

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

veya basit bir işlev (senin içinde ~/.bashrc) yapmaktermtitle

termtitle() { printf "\033]0;$*\007"; }

Hangi ile koşabileceğini termtitle some title here.


3
veya benzer şekilde ~ / .bash_aliases function set_title() { echo -ne "\033]0;${1}\007" } alias title=set_title$ title term_title
öğesinin

11
Ne yazık ki benim için GNOME terminali 3.6.2'de çalışmıyor gibi görünüyor.
austinmarton

1
Ayrıca ne yazık ki, yeni bir yöntem :( varsa 322 veya konsole 16.12 ... Bilmiyorum xterm'den çalışmak görünmüyor
naught101

2
@ 3osen bu durumda aslında farketmez, aynı şeydir, ancak içine girmek için iyi bir alışkanlıktır, çünkü örneğin $var_logve ${var}_logçok farklı şeylerdir ve fark, kodlarda hatalara neden olabilir.
naught101 10:17

2
eğer sizin için işe yaramazsa, muhtemelen PROMPT_COMMAND var veya PS1 var ayarlanmış ve fazla biniyordur. unset PROMPT_COMMANDveya başlığı, örneğin başlığı değiştirecek şekilde ayarlayın export PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "$(basename $PWD)"'
gaoithe,

32

Vim düzenleyicisini kullanıyorsanız, bu seçeneği vimrc'nizde de etkinleştirebilirsiniz:

:set title

Bu, varsayılan olarak devre dışıdır. Şu anda düzenlediğiniz dosya adını ve diğer şeyleri gösteren harika terminal başlıkları belirleyecektir.


26

Tamlık uğruna, gnome-terminalbu komutu kullanarak başlığı da ayarlayabileceğinizi eklerdim:

wmctrl -r :ACTIVE: -N "MyWindowTitle"

Önce wmctrlWmctrl'yi yükleyin paketini kurmanız gerekir .


1
MyWindowTitle, terminal başlığında görünmüyor. Wmctrl -m yaptığımda ortaya çıkıyor.
sureshvv

2
Wmctrl'nin sekme başlığını değil pencere başlığını değiştirdiğini, kaçan karakter çözümünün sekme başlığını değiştirdiğini unutmayın. Dahası, sekmeler arasında geçiş yaptığınızda pencere başlığı orijinal sekme başlığına geri döner.
redochka 13:15

23

Argh, çok fazla cevap ...

Neredeyse işe wmctrlyarayan denedim , ancak simge başlığını değiştirmek için başaramadım, en azından kalıcı olarak.

Sorun Ubuntu'daki Bash'deki PS1'in başlığı ayarlamasıdır.

Varsayılan PS1

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

... başlığı ilk kaçış sırasına göre ayarlar: \e]0;\u@\h: \w\a

Dolayısıyla, iki çözüm vardır:

1. Çözüm: PS1'i basitleştirin, ardından PROMPT_COMMAND kullanın

PS1'i daha basit bir şeyle değiştirin:

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

Sonra PROMPT_COMMAND kullanın:

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

2. Çözüm: PS1'i doğrudan değiştirin

PS1'i yeni başlıkla değiştirmeniz yeterlidir:

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

merhaba, cevabınızı oldukça seviyorum. ]0;Kodunuzdaki rolünü açıklar mısınız? Ben anlamını buldum echo -e '\007 \033'ile ascii -oben dürüst orada ya ... teşekkürler ne yaptığını emin değilim ancak ... ... komuta
isomorphismes

2
@iso \eveya \033bir kaçış dizisini başlatan kaçış (ESC) karakteridir. ]bir işletim sistemi komutu başlatır (OSC). Bir xterm için, 0;"başlığı ayarla" anlamına gelir ve \aveya \007OSC'yi sonlandıran çan (BEL) karakteridir. Daha fazla bilgi: en.wikipedia.org/wiki/ANSI_escape_code#Escape_sequences
wjandrea

@ wjandrea Eşdeğer kaçış harflerini ( \eve \a) aradım \033ve \007onları kesinlikle bulamadım çünkü google'da yazacak doğru anahtar kelimeleri bilmiyordum. Verdiğiniz bağlantı da kullanışlıdır. Lütfen yorumunuzu bir cevaba dönüştürebilir misiniz?
SebMa

10

Bir Ubuntu kullanıcısıysanız, HUD kullanarak bir gnome-terminal sekmesinin başlığını değiştirebilirsiniz .

Gnome terminalinde HUD'yi getirmek için Alt tuşuna basın, ilk birkaç harfi yazın, örneğin "tit", enter tuşuna basın ve yeni başlığınızı yazın.

Bu çok hızlı bir yöntemdir ve fareyi kullanmaktan kaçınır.


1
Aslında. Elleri klavyede tutar. Mevcut başlık görüntülenir, bu nedenle bu yöntemi kullanarak yalnızca mevcut olanı değiştirmek hızlı ve kolaydır.
Brent Faust

baştankara sadece İngilizce Ubuntu içindir.
törzsmókus

ve tüm seçenek kaldırıldı :(
törzsmókus

F2anahtar da fareyi önler.
isomorphismes,

@ törzsmókus Ve Fransızca - titre ;)
wjandrea

3

Başlığını değişen bir başka yolu gnome-terminalkullanmaktır gconftool-2; bu, seçilen profil için başlangıç ​​terminal başlığını değiştirir , böylece 'Apache', 'Düzenleme' gibi başlıklar ile ilişkilendirilmiş farklı profillere sahip olabilirsiniz. Daha sonra gnome-terminalbelirttiğiniz terminal başlığını almak için uygun profille başlatabilirsiniz . Bu, gnome-terminal --title "name"terminal başına başlığı değiştiren aksine , ancak profilde belirtilen ilk başlığı etkilemez.

Bir profil için terminalin adını ayarlamak için bir komut dosyasında aşağıdaki komutu kullanabilir ve size bazı şeyleri hatırlatmak için günün belirli saatlerinde terminal değişikliğinin adını alabilirsiniz:

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

Bu, varsayılan profil içindir, ancak örneğin, Defaultbaşka bir profile değiştirerek, diğer profillerin başlığını da ayarlayabilirsiniz Profile0:

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

Başlığı değiştirmenin bu yönteminin komut dosyasında kullanılabildiğinden veya profilin başlığını ayarlamak için hızlı bir komut satırı olarak kullanıldığını düşündüm. Bazen, gconftool-2ayarın etkili olması için terminali belirtilen profille yeniden başlatmanız gerekebileceğini unutmayın . İçin mevcut tüm ayarlar gnome-terminalile listelenebilir gconftool-2 -R /apps/gnome-terminal.


3

Başka bir çözüm, tuş vuruşlarını simüle etmek için xdotool kullanmak, belki komut dosyalarında yararlı olabilir:

  1. GNOME-terminalinde bir klavye kısayolu ayarlayın:

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

    Örneğin Shift+Ctrl+Y.

  2. xdotoolHenüz sahip değilseniz yükleyin :

    sudo apt-get install xdotool
    
  3. Aşağıdaki komut dizisi (bir bash betiğinde de kullanabilirsiniz) terminal / sekme başlığını ayarlayacaktır (boşluklardan kaçış \):

    xdotool key ctrl+shift+y 
    xdotool type My\ new\ fabulous\ title
    xdotool key Return
    
  4. [isteğe bağlı] Ayrıca, örneğin yeni bir sekme açmak ve yukarıdaki komutlarla başlığı ayarlamak için xdotool kullanabilirsiniz:

    xdotool key ctrl+shift+t
    

    Yeni bir sekme açmadan önce ve sonra uyku zamanı eklemeyi düşünün, örneğin sleep 1(1 saniye bekleyin).

Bu en zarif çözüm değil, ama benim için çalıştı! Benim durumumda önceki cevaplar işe yaramadı. Ubuntu 14.04'te gnome-terminal kullanıyorum ve bir bash betiği yapmak istedim.


1

Yalnızca geçerli çalışma dizinini başlıkta görüntülemek için, '.bashrc' adresinde şunu deneyin:

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

veya

PROMPT_COMMAND='echo -ne "\033]0;$(basename ${PWD})\007"' 

0

Bu Gnome Terminalimde çalıştı . 3.18.3 .

Senin düzenleyin Bashrc dosyası ve bu işlevi ekleyin

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

Unutma sourcesenin Bashrc dosyası

$ source ~/.bashrc

Ardından, terminal başlığını şu şekilde değiştirebileceksiniz;

$ termtitle "MariaDB CLI"

0

Cevabım benim için işe yaramayan yeni cevaba benzer. En eski cevaplar artık işe yaramıyor. Ortadaki eski cevap çok fazla yazıyor, bu yüzden dosyamda bir fonksiyon yarattım ~/.bashrc:

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

Fonksiyonu ekledikten veya değiştirdikten sonra veya başlığı ikinci kez sıfırlamak istiyorsanız, aşağıdakileri kullanın:

. ~/.bashrc
termtitle Special Projects

Aksi takdirde günlük olarak sadece termtitleyeni bir başlık kullanın .



-1

GNOME 3 kullanıyorsanız, uygun Terminal > Set Titlemenü seçeneği kaldırılmıştır. Hala "Başlığı Ayarla" menü seçeneğine sahip bir gnome 2 çatal terminali kurabilir ve bunun yerine çalıştırabilirsiniz:

sudo apt-get install mate-terminal

"Terminal" i çalıştırmak yerine, "MATE Terminal" i çalıştırın. Muhtemelen aynı zamanda mate terminalini de seçmelisin sudo update-alternatives --config x-terminal-emulator.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.