Ubuntu 15,04 pemasangan baru: Tidak dapat mengganti nama tab gnome-terminal

38

Di Ubuntu 14.10, jika saya memiliki beberapa Tab Terminal yang terbuka, saya dapat mengklik kanan tab Terminal dan menamainya kembali. Di Ubuntu 15.04 saya tidak dapat menemukan fitur ini.

Apakah ada cara mudah untuk mendapatkannya kembali?

Ini adalah versi saat ini:

$ gnome-terminal --version
GNOME Terminal 3.14.2
Tom
sumber

Jawaban:

21

Dijawab di sini

Saya mengutip:

The user titlekode telah dihapus 1 dari gnome-terminal 3.14. Hanya ada satu cara untuk mengatur judul, menggunakan urutan pelarian - misalnya dengan bash:

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

1: lihat bug gnome 724110 dan bug gnome 740188 .

AB
sumber
10
Terima kasih atas jawabannya. Sayang sekali sudah hilang, saya harap mereka menambahkannya kembali di rilis berikutnya, sementara itu, saya akan menggunakan urutan pelarian alih-alih metode klik kanan.
Tom
2
@ Tom Tulis laporan bug =)
AB
13
ini bukan hanya memalukan: itu tidak masuk akal. Saya memiliki ide buruk untuk "meningkatkan" dari Debian Wheezy ke Jessie hanya untuk memiliki segalanya (belum yakin, memang) yang saya miliki sebelumnya, tetapi lebih buruk; keputusan yang buruk dan cacat konyol (misalnya dalam gdm3 daftar kemungkinan wm / sesi saya telah menginstal tidak cocok atau gulir, jadi itu adalah potongan sederhana dan karenanya saya tidak dapat memilih semua wm yang saya miliki). Bagi saya, GNOME sudah hancur sejak saat itu gnome-shell. Itu juga menghilang menu untuk membuka terminal baru di jendela atau tab baru (tapi Anda masih bisa melakukannya melalui pintasan. Mengapa ?! Ganti semuanya dengan tombol pintar besar: klik dan itu melakukan apa saja!)
ShinTakezou
2
Biasanya rilis baru menambah dan tidak menghapus fitur.
angelcervera
2
Saya membuat perintah (skrip shell) bernama tab yang hanya berisi echo -ne "\ 033] 0; $ 1 \ 007" jadi sekarang di sembarang tab saya bisa menjalankan tab TABNAME untuk mengatur judul tab. Tidak semudah mengklik kanan tab untuk mengganti nama, tetapi itu akan berlaku untuk saat ini. Terima kasih AB!
Brian Pipa
31

The .bashrcsolusi yang diusulkan oleh Kirby bekerja untuk saya:

set-title(){
  ORIG=$PS1
  TITLE="\e]2;$@\a"
  PS1=${ORIG}${TITLE}
}

lalu dari prompt saya: $ set-title test-title

ronan_mac
sumber
2
Bekerja untuk saya baik-baik saja pada 15:10, satu-satunya peringatan adalah bahwa setiap kali Anda menjalankannya Anda menambahkan ke PS1, jadi jangan lakukan ini dari skrip. Setelah saya menyebutnya beberapa kali dengan 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
ahcox
1
bekerja untuk saya di ubuntu 16.04!
Programster
1
bekerja seperti pesona !!
sharadendu sinha
Bagaimana cara mengubah judul saat proses latar depan berjalan, yang saya tidak ingin batalkan?
Jānis Elmeris
1
Saya pikir Anda dapat melakukannya dengan menjeda proses menggunakan Control + Z, lalu set-title X, kemudian fguntuk melanjutkan proses.
ronan_mac
18

Saya tidak percaya mereka menghapus fitur ramah pengguna seperti ini.

Saya beralih ke ROXTerm ( http://roxterm.sourceforge.net ), yang melakukan pekerjaan dengan baik. Dikemas dalam Ubuntu:

sudo apt-get install roxterm

Lalu, biarkan dinosaurus melanjutkan caranya sendiri ;-)

Michael Opdenacker
sumber
1
Bagaimana saya bisa mengubah Judul Tab di roxterm? Saya tidak dapat menemukannya.
Halil
akan bekerja untuk 16,04 juga
prusswan
Wow, tidak dapat mengatur terminal ke latar belakang dengan gnome-terminal dan saya tidak pernah mengerti mengapa ... itu masalah dengan terminal itu sendiri. Latar belakang terminal devilspie bekerja keren dengan roxterm.
m3nda
1
RoxTerm mengagumkan dan masih berfungsi tetapi sayangnya tidak akan berlanjut lebih lama: sadface:: sourceforge.net/p/roxterm/discussion/422638/thread/60da6975
Williams
Saya telah beralih ke Terminator sejak saat itu, dan tidak perlu menggunakan RoxTerm lagi ....
Michael Opdenacker
14

Saya sudah mencoba RoxTerm seperti yang disarankan di atas, dengan hasil yang baik. Tapi saya menetap di Terminal MATE, yang merupakan bagian dari Proyek MATE, kelanjutan dari Gnome 2, pada 15,04:

sudo apt-get install mate-terminal

Terminal itu didasarkan pada kode Terminal Gnome.


Komentar: Sulit untuk memahami pola pikir para pengembang Terminal Gnome. Ada banyak diskusi di sana tentang "bagaimana" memberi nama tab terminal, dan bagaimana sulit untuk memperbaikinya. Jika itu masalahnya, mengapa mempersulit pengguna untuk memberi nama mereka? Tidak terlalu pintar sama sekali.

Doug Van Horn
sumber
6

Sekarang saya sudah menyelidiki ini untuk bagian yang lebih baik dari sehari dan akhirnya menemukan cara untuk menetapkan judul ini. Ini dilakukan melalui escape sequence yang dimulai dengan \ e] 0; dan akhiri dengan karakter BEL (= \ 007 = \ a). Tidak seperti yang saya nyatakan di atas, komunikasi dari shell kembali ke aplikasi terminal adalah mungkin, sangat terbatas, melalui urutan pelarian seperti itu (ada beberapa lagi).

Tentang ini dari atas:

PROMPT_COMMAND='echo -ne "\e]0;YOUR TITLE GOES HERE\a"'

Itu bisa bekerja, tetapi itu tidak selalu. PROMPT_COMMANDadalah variabel yang isinya dieksekusi setiap kali Anda mengirim perintah, sehingga juga mengirimkan urutan pelarian ini. Namun, ini bisa ditimpa oleh urutan melarikan diri dalam variabel PS1, yang menetapkan prompt baris perintah. Inilah sebabnya mengapa di atas tidak berpengaruh di sini.

Dari instalasi Ubuntu yang lebih lama saya mengambil ini, yang mengatur command prompt (bagian kanan, setelah ]) dan juga mengirimkan urutan escape yang diperlukan (bagian kiri, hingga dan termasuk yang ]):

PS1="\[\e]0;\u@\h: \w\a\]\u@\h:\w\$ "

Ini mungkin berkinerja lebih baik, karena tidak perlu menafsirkan $PROMPT_COMMANDsetiap kali. Ini juga memiliki lebih banyak opsi, karena Bash memiliki lebih banyak urutan pelarian di sini, misalnya\u untuk nama pengguna saat ini, \Wuntuk nama direktori saat ini atau \wuntuk seluruh jalur direktori kerja saat ini, secara opsional dipangkas menjadi hanya beberapa yang terakhir dengan nomor dalam $PROMPT_DIRTRIM. Lihat bab PROMPTINGdi halaman manual Bash. Juga perhatikan bahwa urutan pelarian juga harus dikelilingi oleh \[dan di \]sini.

Untuk menetapkan judul tetap, ini berfungsi:

PS1="\[\e]0;YOUR TITLE GOES HERE\a\]\u@\h:\w\$ "

Nikmati!


Selama penyelidikan saya, saya juga mencoba memahami kode sumber terminal gnome, yang mengarah ke kode sumber vte dan di sana dukungan untuk pengaturan judul dan membaca urutan pelarian dianggap sebagai risiko keamanan: Lihat di sini (kasus 20, kasus 21) dan di sini ("Pelaporan Judul Jendela").

Traumflug
sumber
Ini menetapkan judul tetapi juga menghapus definisi sebelumnya PS1untuk penggunaan lain seperti mengatur prompt perintah kustom. Saya baru saja mencoba menambahkan urutan pelarian Anda ke konten yang ada PS1dan tampaknya berhasil. Seperti ini: PS1+="\[\e]0;YOUR TITLE GOES HERE\a\]\u@\h:\w\$ "
ahcox
5

Mengatur $ PROMPT_COMMAND seperti yang ditunjukkan di atas tidak memiliki efek di sini. Tidak mengherankan, karena Bash berjalan di dalam terminal dan proses induk (di sini: gnome-terminal) tidak dapat membaca lingkungan anak di OS mirip unix. Menggunakan sesuatu yang lebih sederhana, seperti

PROMPT_COMMAND='echo bla'

Laksanakan echo bla , tidak ada yang terjadi.

Sunting: kita harus membungkus ini dalam urutan melarikan diri, lihat jawaban saya yang lain. Meskipun membaca lingkungan anak tidak mungkin, beberapa komunikasi kembali ke orang tua adalah, melalui urutan ini.

Dalam Gnome bug 740188 mereka berbicara tentang mendefinisikan fungsi title () di .bashrc. Yang berbeda untuk setiap tab dibuka? Peretasan yang buruk di depan, jika mungkin sama sekali!

Bahkan penjelasan lain tentang Stackexchange berbicara tentang pengaturan $ PS1 (dan dapatkan upvoted). Maaf, tidak, itu bukan judulnya, itu command prompt.

Singkatnya: mereka mengacaukannya tanpa bisa diperbaiki untuk menghemat sedikit ruang dalam dialog preferensi. Oh Tuhan

Sekarang, satu-satunya kesempatan untuk mendapatkan keputusan pengembang yang dikembalikan adalah menyalakan shitstorm parah, kalau tidak mereka hanya menutup laporan bug Anda dalam hitungan detik (mencoba berkali-kali berkali-kali). Bagaimana kita membuat shitstorm ini?

Traumflug
sumber