tmux set-title không hoạt động?


17

Để bắt đầu tmuxtrên mỗi lần đăng nhập shell, phần sau đây đã được thêm vào ~/.bashrc(trên máy chủ):

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

Tôi cũng muốn thay đổi tiêu đề cửa sổ thành một cái gì đó như user@server(thay vì user@localhost) khi ssh vào máy chủ. Đây là của tôi ~/.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@'

Như bạn có thể thấy, set-titlesđã được đặt thành on, nhưng nó không hoạt động như mong đợi.

Thêm thông tin:

Bên ngoài tmux:

$ echo $TERM
xterm

Bên trong tmux:

$ echo $TERM
screen

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

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

Và đây là nhật ký khi chạy tmux -vvvvvmột chút:

Nếu tôi nhận xét các dòng trong ~/.bashrc, từ máy tính xách tay của tôi, ssh đến máy chủ, thanh tiêu đề hiển thị chính xác ( quanta@server), sau đó bắt đầu tmuxtừ đó cũng hoạt động như mong đợi.

Nhưng nếu tôi muốn bắt đầu tmuxngay sau khi đăng nhập, thanh tiêu đề vẫn là quanta@Ubuntusau ssh.


CẬP NHẬT Thứ Sáu ngày 10 tháng 5 07:51:23 CNTT 2013

Tôi đã xóa exitlệnh để không đóng phiên shell khi tmuxcửa sổ cuối cùng được đóng:

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

Điều kỳ lạ là:

  • ssh đến máy chủ -> thanh tiêu đề: quanta@Ubuntu
  • tách ra từ tmux-> thanh chuyển đổi tiêu đề sangquanta@server
  • đính kèm tmuxlại -> thanh tiêu đề vẫn hiển thị chính xác quanta@server

Tôi không chắc nó có liên quan đến PROMPT_COMMANDbiến môi trường hay không:

Bên ngoài tmux:

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

Bên trong tmux:

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

Trong trường hợp không rõ ràng trong câu hỏi này. Thiết lập của anh ấy hoạt động tốt, chỉ khi anh ấy cố chạy nó từ .bashrc.
slm

Vui lòng cung cấp đầu ra từ tmux info.
slm

Câu trả lời:


15

Vấn đề được giải quyết!

Để cho phép cuộn chuột xterm bản địa tmux, rất nhiều wiki , trang web Hỏi & Đáp , bài đăng trên blog đề xuất thêm một dòng như:

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

để ~/.tmux.conf. Và nó là thủ phạm.

Để cho phép các tiêu đề xterm trong cửa sổ terminal, bạn cũng cần thêm XTcờ, đại loại như thế này:

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

Nguồn: http://opennomad.com/content/goodbye-screen-hello-tmux


3
Cảm ơn bài viết của bạn. Trong trường hợp của tôi với rxvt, cài đặt làset -ga terminal-overrides ",rxvt*:XT"
favadi

2
Như @favadi đã chỉ ra, cách khắc phục thích hợp cho việc này là sử dụng -atùy chọn setđể nối thêm các phần ghi đè smcup / rmcup. Điều này sẽ khắc phục các sự cố kỳ lạ khác, như không thể đặt hình dạng con trỏ đúng cách.
xanh

2

Đã xem qua chủ đề này từ danh sách gửi thư của người dùng tmux. Các chủ đề có tiêu đề: tiêu đề thiết lập không hoạt động . Có một vài điều từ chủ đề này để thử. Có một phiên bản sạch hơn của chủ đề ở đây là tốt.

Tài nguyên

Đối với người mới bắt đầu, cách khắc phục cuối cùng là thêm dòng sau vào tệp Tài nguyên XTerm của bạn , ~/.Xresources:

XTerm*allowSendEvents: true

Mẹo gỡ lỗi tmux

Ngoài ra còn có một số mẹo gỡ lỗi trong chủ đề này cũng có thể giúp bạn.

dài dòng tmux

  1. đóng tất cả các phiên tmux
  2. chạy lệnh: tmux -vvvvv
  3. chạy lệnh: vi foo
  4. lưu các tập tin
  5. thoát tmux

Sau khi làm như vậy, bạn nên có 3 tệp, một cái gì đó như sau:

  • tmux-out-21594.log
  • tmux-client-21592.log
  • tmux-máy chủ-21594.log

thông tin 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:

Tôi đã đọc chủ đề đó trước khi hỏi ở đây. XTerm*allowSendEvents: trueđã không làm việc. Các tập tin nhật ký đã được tải lên. Xem câu hỏi cập nhật của tôi.
lượng tử

1
Trong tương lai, bạn nên bao gồm các loại mặt hàng này trong câu hỏi của mình để không lãng phí thời gian của mọi người khi thử lại những thứ bạn đã thử.
slm
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.