Saya ingin dapat memiliki judul jendela tmux saya secara otomatis diganti namanya menjadi prompt_command, ps1 atau hanya nama host dari mesin yang saya gunakan ssh
. memiliki 9 jendela yang terbuka berlabel "ssh" benar-benar tidak berguna. Melakukan sysadmin bekerja, saya membuka layar baru dan ssh sekitar untuk banyak mengubah nama secara manual.
Satu hal yang saya perhatikan adalah tmux
memperbarui xterm
judul jendela jadi saya merasa harus tahu.
Ada bantuan? Saya bahkan rela kembali ke sana screen
jika saya bisa mendapatkan fitur ini.
PROMPT_COMMAND='settitle $HOSTNAME:$PWD'
- karena dengan kode @ Mikel saya tidak mendapatkan nama host dan-bash: : No such file or directory
kesalahan sebelum setiap prompt perintah. Tampaknya bagi saya bahwa$()
bash akan mencoba untuk mengeksekusisettitle
pengembalian apa pun . (Saya menjalankan bash di linux.)tmux rename-window -t${TMUX_PANE} "Title Text"
Ini adalah cara yang tepat untuk mengatur judul tmux di jendela. Variabel $ TMUX_PANE diatur oleh tmux dan digunakan untuk membedakan antara panel yang berbeda.
sumber
-t${TMUX_PANE}
tidak perlu (setidaknya bukan untuk saya).sleep 3
dan beralih windows, prompt akan mengeluarkan perintah ke jendela yang salah ketika tidur selesai. (Inilah alasan saya datang ke sini, +1).Hanya untuk orang-orang yang datang ke sini dengan mencari cara mengubah judul sesi tmux:
Ctrl+ B,$
Ini akan memberi Anda prompt, di mana Anda dapat mengganti nama sesi aktif.
Untuk mengubah jendela aktif, gunakan komma sebagai gantinya:
Ctrl+ B,,
lihat: Bagaimana cara mengganti nama sesi di tmux?
sumber
Menggabungkan jawaban Mikel dan UtahJarhead, saya menggunakan yang berikut ini
.zshrc
untuk menyelesaikan masalah ini:Saya memiliki penggantian nama jendela otomatis yang diaktifkan secara default, dan saya tidak dapat menemukan cara untuk mengaktifkannya kembali setelah keluar dari host jarak jauh. Jadi, saya hanya keluar dari jendela sepenuhnya - bukan masalah untuk alur kerja saya. Jika Anda lebih suka untuk mengubah nama menjadi, katakanlah, 'bash', Anda dapat mengganti
exit
baris dengantmux rename-window "bash"
.sumber
hostname -s
setelah perintah ssh "@ $", pada dasarnya "me-reset" judul ke mesin "gateway" saya.Alih-alih
exit
atautmux rename-window "bash"
Anda dapat menggunakanIni mengaktifkan kembali fungsi normal yang mengubah nama secara otomatis jendela untuk perintah selanjutnya.
The
if
blok mencegah dari (tanpa itu) mengubah namatmux
jendela saat ini darissh
perintah yang digunakan di atas kulit lainnya (daritmux
).sumber
if env | grep -q "TMUX_PANE"; then
bukanps -p...
barang, tetapi prinsip yang sama.Saya tahu ini telah dijawab sejak lama, tetapi saya pikir saya akan menambahkan apa yang saya mainkan dan temukan (berdasarkan jawaban yang diterima) .. Saya telah menambahkan ini ke / etc / bashrc dari semua server saya (mudah untuk lakukan dengan kain, boneka, dll)
Dan itu menetapkan nama jendela secara otomatis di layar atau tmux.
sumber
hostname -s
menghapus hal-hal domain tambahan, sehingga server1.internal.local muncul hanya sebagai server1Solusi lain adalah mengubah nama jendela aktif menjadi nama sebelumnya, setelah sesi ssh:
sumber
Ini berfungsi di
tmux 2.1
dan dengan zsh secara lokal dan di server:Saya harus menonaktifkan opsi allow-rename secara manual sebelum mengubah nama windows - jika tidak diubah ke jalur saat ini di sebagian besar server saya (juga menggunakan zsh di sana). Hal yang baik adalah: jika Anda mengaktifkan kembali opsi allow-rename, ia akan segera bekerja.
sumber
Tambahkan ini ke
.profile
atau.bashrc
sumber
Saya akan mencatat dalam semua contoh ini dengan:
Anda mungkin ingin mengambil kode keluar, dan keluar dari fungsinya, jika tidak hal-hal seperti:
Akan kembali 0.
Akan keluar ssh dengan kode pengembalian ssh.
sumber