tmux set-title tidak berfungsi?

17

Untuk memulai tmuxsetiap shell login, berikut ini ditambahkan ke ~/.bashrc(di server):

if [ $TERM != "screen-256color" ] && [  $TERM != "screen" ]; then
    tmux attach || tmux new; exit
fi

Saya juga ingin mengubah judul jendela menjadi sesuatu seperti user@server(bukan user@localhost) ketika ssh menjadi tuan rumah. Ini milik saya ~/.tmux.conf:

set -g prefix C-a
unbind C-b
bind C-a send-prefix

set -g set-titles on
set -g set-titles-string "#T"

bind-key o split-window -v
bind-key e split-window -h

bind-key w kill-pane

set -g terminal-overrides 'xterm*:smcup@:rmcup@'

Seperti yang Anda lihat, set-titlesdiatur ke on, tetapi tidak berfungsi seperti yang diharapkan.

Informasi lebih lanjut:

Di luar tmux:

$ echo $TERM
xterm

Di dalam tmux:

$ echo $TERM
screen

show -g: https://clbin.com/h7oDh

tmux info: http://sprunge.us/XHCB

Dan inilah log-nya ketika dijalankan tmux -vvvvvsebentar:

Jika saya mengomentari baris ~/.bashrc, dari laptop saya, ssh ke server, bilah judul menunjukkan dengan benar ( quanta@server), kemudian mulai tmuxdari sana juga berfungsi seperti yang diharapkan.

Tetapi jika saya ingin memulai tmuxsegera setelah login, bilah judul tetap quanta@Ubuntusetelah ssh.


UPDATE Jum 10 Mei 07:51:23 ICT 2013

Saya telah menghapus exitperintah agar tidak menutup sesi shell ketika tmuxjendela terakhir ditutup:

if [ $TERM != "screen-256color" ] && [  $TERM != "screen" ]; then
    tmux attach || tmux new
fi

Yang aneh adalah:

  • ssh ke server -> bilah judul: quanta@Ubuntu
  • lepaskan dari tmux-> saklar judul bar kequanta@server
  • lampirkan tmuxlagi -> bilah judul masih ditampilkan dengan benar quanta@server

Saya tidak yakin apakah itu terkait dengan PROMPT_COMMANDvariabel lingkungan atau tidak:

Di luar tmux:

$ echo $PROMPT_COMMAND 
echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"

Di dalam tmux:

$ echo $PROMPT_COMMAND
echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\033\\"
kuanta
sumber
Seandainya tidak jelas dalam pertanyaan ini. Pengaturannya berfungsi dengan baik, hanya saja tidak ketika ia mencoba menjalankannya dari .bashrc.
slm
Harap berikan keluaran dari tmux info.
slm

Jawaban:

15

Masalah terpecahkan!

Untuk mengaktifkan gulir mouse xterm asli tmux, banyak wiki , situs Tanya Jawab , saran posting blog menambahkan baris seperti:

set -g terminal-overrides 'xterm*:smcup@:rmcup@'

untuk ~/.tmux.conf. Dan itu adalah pelakunya.

Untuk mengizinkan judul xterm di jendela terminal, Anda juga perlu menambahkan XTflag, kira-kira seperti ini:

set -g terminal-overrides "xterm*:XT:smcup@:rmcup@"

Sumber: http://opennomad.com/content/goodbye-screen-hello-tmux

kuanta
sumber
3
Terima kasih atas kiriman Anda. Dalam kasus saya dengan rxvt, pengaturannya adalahset -ga terminal-overrides ",rxvt*:XT"
favadi
2
Seperti @favadi tunjukkan, perbaikan yang tepat untuk ini adalah dengan menggunakan -aopsi dengan setuntuk menambahkan override smcup / rmcup. Ini akan memperbaiki masalah aneh lainnya, seperti tidak dapat mengatur bentuk kursor dengan benar.
blueyed
2

Datang di utas ini dari milis tmux-pengguna. Utas itu berjudul: set-title tidak berfungsi . Ada beberapa hal dari utas ini untuk dicoba. Ada versi yang lebih bersih dari utas di sini juga.

Sumber Daya XTerm

Sebagai permulaan, perbaikan akhirnya adalah dengan menambahkan baris berikut ke file XTerm Resources Anda ~/.Xresources:

XTerm*allowSendEvents: true

Tips debugging tmux

Ada juga beberapa tips debugging di utas ini yang dapat membantu Anda juga.

verbose tmux

  1. tutup semua sesi tmux
  2. jalankan perintah: tmux -vvvvv
  3. jalankan perintah: vi foo
  4. simpan file
  5. keluar dari tmux

Setelah melakukannya, Anda harus memiliki 3 file, kira-kira seperti ini:

  • tmux-out-21594.log
  • tmux-client-21592.log
  • tmux-server-21594.log

info tmux

$ tmux info
tmux 1.4, pid 22182, started Fri May 10 04:00:37 2013
socket path /var/run/tmux/tmux-500/default, debug level 0
system is Linux 2.6.35.14-106.fc14.x86_64 #1 SMP Wed Nov 23 13:07:52 UTC 2011 x86_64
configuration file is /home/saml/.tmux.conf
protocol version is 6

Clients:
 0: /dev/pts/12 (8, 11): 0 [132x24 xterm] [flags=0x1/0x38, references=0]

Sessions: [5/10]
 0: 0: 1 windows (created Fri May 10 04:00:37 2013) [132x23] [flags=0x0]
   0: bash [132x23] [flags=0x8, references=1, last layout=-1]
     0: /dev/pts/48 22183 13 1/23, 135 bytes; UTF-8 0/23, 0 bytes

Terminals:
xterm [references=1, flags=0x0]:
 1: acsc: (string) ``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~
 0: AX: (flag) true
 2: bel: (string) \007
 ...
 ...
144: smul: (string) \033[4m
145: vpa: (string) \033[%i%p1%dd
146: xenl: (flag) true

Jobs:
slm
sumber
Saya sudah membaca utas itu sebelum bertanya di sini. XTerm*allowSendEvents: truetidak bekerja File log telah diunggah. Lihat pertanyaan saya yang diperbarui.
kuanta
1
Di masa depan Anda harus memasukkan jenis barang ini dalam pertanyaan Anda, agar tidak membuang waktu semua orang mengulangi hal-hal yang sudah Anda coba.
slm