Jendela Layar GNU mengubah nama gangguan

13

Saya suka memunculkan sesi layar dengan koneksi SSH yang sudah dibuka ke server utama yang saya kelola di kantor. Saya memberi setiap jendela ini nama yang sangat singkat, biasanya 2-4 karakter, sehingga mereka muncul di bilah status layar saya dengan nama-nama itu. Jadi saya akan memiliki entri layar yang terlihat seperti

0$ jen1 ...

Sekarang, ketika saya perlu beralih ke server itu dan melakukan apa saja bahkan sesederhana mengambil daftar direktori, nama itu tiba-tiba meluas dan menjadi

0$ ghellings@devjenkins01

Hal yang sama terjadi untuk setiap jendela saat saya mengaksesnya, membuat bilah status saya dengan cepat meluap lebar horizontal layar saya. Saya ingin mengunci nama pada waktu pembuatan jendela dan mencegah aplikasi klien mengubahnya. Saya tidak ingin aplikasi apa pun dapat mengubah judul jendela layar (sangat berlawanan dengan apa yang banyak orang tanyakan). Ini menjadi sangat rumit setelah saya mengubah ke layar itu dan membuka direktori di suatu tempat. Maka judul layar menjadi

 (0*$ ghellings@devjenkins01:/opt/somepackage/software/subdirectory)

Saya ingin hanya mengubah status aktif sehingga selalu akan membaca

`0$ jen1` or `(0*$ jen1)`

Apakah ada cara bagi saya untuk mengunci nama jendela dan mencegah mengubahnya?

Greg Hellings
sumber

Jawaban:

8

Saya menemukan ini sejak awal dalam pengujian RHEL 7 dan itu akan membuat saya gila. Apa yang saya temukan adalah bahwa ada perubahan /etc/bashrcpada RHEL 7 yang menyebabkan penamaan windows screendan tmuxberubah setiap kali perintah suka cdatau lsdijalankan. Di layar bagian *)

if [ -e /etc/sysconfig/bash-prompt-screen ]; then
    PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen
else
## RHEL 7
    PROMPT_COMMAND='printf "\033k%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'

## RHEL 6
    PROMPT_COMMAND='printf "\033]0;%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
fi

Jadi di RHEL 7 perubahannya dari ] 0; ke k di bagian PROMPT_COMMAND.

Saya telah mempertimbangkan untuk membuka bug, tetapi tidak pernah berhasil melakukannya. Saya biasanya hanya mengubahnya secara manual pada instalasi baru.

  • Perubahan yang dilakukan untuk memperbarui pemformatan
willg
sumber
6

Kemungkinan besar, Anda memiliki PROMPT_COMMANDset variabel ke sesuatu seperti

printf "\033k%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"

Saya memiliki ini pada sistem CentOS 7. Ini mengatur judul jendela xterm setelah setiap perintah, yang screendigunakan sebagai judul jendela.

Tidak disetel PROMPT_COMMANDpada .bashrcatau edit /etc/bashrcuntuk tidak menyetelnya.

katti
sumber
Lihat di bawah untuk membuatnya lebih permanen.
matematika
2

Jika Anda memeriksa .bashrcatau /etc/bashrc, Anda dapat melihat ifatau caseyang terkait dengan screen.

Dalam kasus saya, itu adalah sesuatu seperti:

if [ -e /etc/sysconfig/bash-prompt-screen ]; then
    PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen
else
    PROMPT_COMMAND='printf "\033k%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
fi

bawah case $TERM indi /etc/bashrcberkas.

Masalahnya adalah bahwa saya tidak memiliki file /etc/sysconfig/bash-prompt-screenjadi di PROMPT_COMMANDbawah elseini digunakan.

Saya baru saja membuat /etc/sysconfig/bash-prompt-screenfile kosong maka judul layar windows tidak berubah secara dinamis lagi!

GyuHyeon Choi
sumber
Harus membuat file kosong dapat dieksekusi atau Anda akan mendapatkan peringatan setiap kali bash diluncurkan (mis. Saat masuk untuk semua orang).
matematika