Yanıtlar:
Burada cevaplandı
Alıntı yaparım:
user title
Kod uzaklaştırılmıştır 1 dengnome-terminal 3.14
. Bir kaçış dizisi kullanarak başlığı ayarlamanın tek bir yolu var - örneğinbash
:PROMPT_COMMAND='echo -ne "\033]0;YOUR TITLE GOES HERE\007"'
1: Gnome bug 724110 ve Gnome bug 740188'e bakınız .
gnome-shell
. Yeni bir pencereyi yeni bir pencerede veya sekmede açmak için açılan menü de kayboldu (ancak yine de kısayoldan yapabilirsiniz. Neden ?! Her şeyi büyük bir akıllı düğme ile değiştirin: bir tıklama ve bir şey yapar!)
.bashrc
Çözelti Kirby tarafından önerilen benim için çalıştı:
set-title(){
ORIG=$PS1
TITLE="\e]2;$@\a"
PS1=${ORIG}${TITLE}
}
sonra benim istemi $ set-title test-title
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
Control + Z
, ardından set-title X
, ardından işlemi duraklatıp yapabileceğinizi düşünüyorum fg
.
Bunun gibi kullanıcı dostu bir özelliği kaldırdıklarına inanamıyorum.
İşi güzel yapan ROXTerm'e ( http://roxterm.sourceforge.net ) geçiyorum . Ubuntu'da paketlenmiştir:
sudo apt-get install roxterm
O zaman dinozor kendi yolunda devam etsin ;-)
RoxTerm'i yukarıda önerildiği gibi iyi sonuçlarla denedim. Fakat 15.04 tarihinde Gnome 2'nin devamı olan MATE Projesi'nin bir parçası olan MATE Terminaline yerleştim:
sudo apt-get install mate-terminal
Bu terminal Gnome Terminal kodunu temel alır.
Yorum: Gnome Terminali devs zihniyetini anlamak zor. Terminal sekmelerini "nasıl" isimlendirdiği ve doğru olmanın nasıl zor olduğu hakkında çok fazla tartışma var. Bu durumda, kullanıcının bunları adlandırmasını neden zorlaştırıyorsunuz? Hiç akıllı değil.
Şimdi bunu bir günün daha iyi kısmı için araştırdım ve nihayet bu başlığı belirlemenin bir yolunu buldum. \ E] 0 ile başlayan kaçış dizileri ile yapılır; ve bir BEL karakteriyle bitirin (= \ 007 = \ a). Yukarıda belirttiğim gibi, kabuktan terminal uygulamasına geri dönüş, bu kaçış dizileri vasıtasıyla çok sınırlı bir şekilde mümkündür (birkaç tane daha vardır).
Bu konuda yukarıdan:
PROMPT_COMMAND='echo -ne "\e]0;YOUR TITLE GOES HERE\a"'
O yapabilirsiniz çalışmak, ancak her zaman değil. PROMPT_COMMAND
her komut gönderdiğinizde içeriğin yürütüldüğü değişkendir, bu yüzden bu kaçış sırasını da gönderir. Bununla birlikte, bu komut satırı istemini ayarlayan PS1 değişkenindeki bir kaçış dizisi tarafından geçersiz kılınabilir. Yukarıdakilerin burada etkisinin olmamasının nedeni budur.
Daha eski bir Ubuntu kurulumundan bunu aldım, komut istemini ayarlar (sağdan sonra, sonra ]
) ve ayrıca gerekli kaçış dizisini (sol tarafa kadar dahil ]
) gönderir :
PS1="\[\e]0;\u@\h: \w\a\]\u@\h:\w\$ "
Bu muhtemelen daha iyi sonuç veriyor, çünkü $PROMPT_COMMAND
her seferinde yorum yapmaya gerek yok . Ayrıca çok daha fazla seçeneğe sahiptir, çünkü Bash burada daha fazla kaçış dizisine sahiptir, örneğin \u
mevcut kullanıcı adı \W
için, geçerli dizin adı için veya \w
mevcut çalışma dizininin tüm yolu için, isteğe bağlı olarak sadece son birkaç kişiye kesilmiş $PROMPT_DIRTRIM
. PROMPTING
Bash man sayfasındaki bölüme bakınız . Ayrıca kaçış dizisinin ek olarak etrafta \[
ve \]
burada çevrelenmiş olduğuna dikkat edin .
Sabit bir başlık ayarlamak için bu işe yarar:
PS1="\[\e]0;YOUR TITLE GOES HERE\a\]\u@\h:\w\$ "
Keyfini çıkarın!
Araştırmam sırasında vte kaynak koduna yol açan gnome-terminal kaynak kodunu da anlamaya çalıştım ve orada başlık ayar ve çıkış kodlarını okuma desteğinin güvenlik riski olduğu kabul edildi: Buraya bakın (dava 20, dava 21) ve buraya ("Pencere Başlığı Raporlaması").
PS1
özel bir komut istemi ayarlamak gibi diğer kullanımlar için önceki tanımları siler . Kaçış sıranızı mevcut PS1
içeriğe eklemeyi denedim ve işe yaramıştı. PS1+="\[\e]0;YOUR TITLE GOES HERE\a\]\u@\h:\w\$ "
$ PROMPT_COMMAND'ın yukarıda gösterildiği gibi ayarlanması, burada sıfır etkiye sahiptir. Sürpriz yok, çünkü Bash terminalin içinde çalışıyor ve ebeveyn süreçleri (burada: gnome-terminal) bir çocuğun çevresini unix benzeri bir işletim sisteminde okuyamıyor. Gibi daha basit bir şey kullanarak
PROMPT_COMMAND='echo bla'
Çalıştırır yankı bla , başka hiçbir şey olmuyor.
Düzenleme: biri bunu kaçış dizilerine sarmak zorunda, diğer cevabımı gör. Çocuk ortamını okumak mümkün olmamakla birlikte, bu sekanslar aracılığıyla ebeveyne geri dönüş yapmak mümkün değildir.
Gnome 740188 no'lu hatada .bashrc'deki bir title () fonksiyonunu tanımlamaktan bahsederler. Açılan her sekme için farklı bir tane var mı? Mümkünse, ciddi çirkin ileri hack!
Stackexchange'teki diğer açıklamalar bile $ PS1 (ve yükseltilmek) ayarını yapmaktan bahseder. Üzgünüz, hayır, bu başlık değil, komut istemi bu.
Kısacası: Tercihler iletişim kutusundaki küçük bir alandan tasarruf etmek için onarımın ötesine geçtiler. Aman Tanrım
Şimdi, bir geliştirici kararını geri almak için tek şans, şiddetli bir fırtınayı yakmaktır, aksi halde hata raporunuzu saniyeler içinde kapatırlar (birçok kez denedi). Bu fırtınayı nasıl yaratırız?