Bisakah saya menetapkan judul default untuk jendela tmux?


38

Saat ini judul default-nya adalah reattach-to-user-namespace(OS X), yang cukup menyebalkan. Apakah ada opsi yang bisa saya masukkan ke saya tmux.confuntuk mendapatkan judul default lain?

Jika tidak, bagaimana cara saya membuat ikatan kunci yang menciptakan jendela baru dan kemudian meminta saya untuk nama?



Itu tentang menonaktifkan penggantian nama otomatis (yang sudah saya lakukan), bukan tentang nama default, kan?
js-coder

Saya kira Anda benar, maaf!
Fredrik Pihl

Saya menggunakan set-option -g default-command "reattach-to-user-namespace -l zsh", dan sebagian besar waktu berakhir dengan jendela bernama zsh, seperti yang diinginkan. Untuk alasan yang tidak diketahui, kadang-kadang nama tidak berganti, dan jendela dipanggil reattach-to-user-namespace. Saya masih belum melihat pola kapan / mengapa ini terjadi, tetapi sepertinya ada bug yang halus, atau sesuatu dalam konfigurasi saya.
Jim Stewart

Apa cara terbaik untuk memasukkan nomor jendela dalam nama?
DanCat

Jawaban:


43

Tidak ada nama jendela default global yang diterapkan ke semua jendela baru; mereka default ke (bagian dari) "kata" pertama dari perintah (atau shell default jika tidak ada perintah). Jendela Anda mungkin default ke reattach-to-user-namespacekarena Anda itulah bit pertama yang menarik dari default-commandnilai Anda .

Itu akan sedikit bulat, tetapi Anda bisa menempatkan perintah default Anda di skrip shell dan arahkan default-commandke skrip itu. Dengan konfigurasi itu nama jendela default (untuk windows yang dibuat tanpa perintah eksplisit) akan menjadi apa pun yang Anda beri nama skrip shell.

Jika tidak, ada beberapa cara untuk secara manual memberi nama / mengubah nama jendela:

  • Saat pembuatan dengan -n:

    new-window -n 'some name'
    

    Anda dapat mengikat kembali c(kunci default yang digunakan untuk membuat jendela) untuk memasukkan "nama default" yang Anda pilih:

    bind-key c new-window -n 'default name'
    
  • Ganti nama jendela yang ada:

    rename-window 'new name'
    

    Ada juga pengikatan default (Awalan ,) yang akan meminta Anda untuk nama baru dan mengganti nama jendela.

  • Ganti nama jendela melalui "escape sequence" yang dikirim ke panel panty:

    # E.g. in a shell:
    printf '\033kWINDOW_NAME\033\\'
    

"Beri saya nama untuk jendela baru" Anda dapat dilakukan seperti ini (meminta sebelum atau setelah membuat jendela):

bind-key C command-prompt -p "Name of new window: " "new-window -n '%%'"

bind-key C new-window \; command-prompt -p "Name for this new window: " "rename-window '%%'"

2
Wow, ini jawaban yang sangat epik, terima kasih banyak! :)
js-coder

7
Saya menemukan cara untuk menetapkan judul default: set-option -g default-command "tmux rename-window base; reattach-to-user-namespace -l zsh"menetapkan judul default base. Anda mungkin ingin menambahkan ini ke jawaban Anda. :)
js-coder

solusi Anda memecah manajer tmux seperti tmuxinator. Jika demikian, tab tidak dapat diganti namanya
SystematicFrank

4

tmux mengambil perintah pertama sebagai nama jendela.

Katakanlah Anda ingin "i" menjadi judul default, Anda dapat menipu seperti ini.

set-option -g default-command "i > /dev/null 2>&1; reattach-to-user-namespace -l bash"

Ini lebih baik daripada

set-option -g default-command "tmux rename-window i; reattach-to-user-namespace -l bash"

karena jika Anda membuat panel setelah Anda menetapkan judul jendela secara manual, judul tersebut akan diubah namanya kembali menjadi "i" lagi.


1

Selain jawaban Chris tentang pengaturan judul jendela menggunakan new window -n 'somename', Anda juga dapat memberikan string kosong ''sebagai nama jendela. Dengan cara ini, saya dapat menggunakan pintasan default (awalan + c) dan tidak perlu memunculkan nama untuk windows sementara, tetapi masih bisa mengganti nama ketika diperlukan:

bind-key c new-window -n ''


1

Bukan benar-benar jawaban lebih dari peretasan:

Saya membuat symlink dengan

sudo ln -s /usr/local/bin/reattach-to-user-namespace /usr/local/bin/pbash

Dan sekarang ini ditampilkan sebagai pbashjudul default.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.