tmux सेट-शीर्षक काम नहीं करता है?


17

tmuxप्रत्येक शेल लॉगिन पर शुरू करने के लिए, निम्नलिखित को ~/.bashrcसर्वर पर जोड़ा गया था :

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

मैं भी जब एक मेजबान में ssh user@serverकी तरह (के बजाय user@localhost) विंडो शीर्षक बदलना चाहते हैं । यहाँ मेरा है ~/.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@'

जैसा कि आप देख सकते हैं, के set-titlesलिए सेट किया गया था on, लेकिन यह अपेक्षा के अनुरूप काम नहीं करता है।

अधिक जानकारियां:

Tmux के बाहर:

$ echo $TERM
xterm

Tmux के अंदर:

$ echo $TERM
screen

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

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

और यहाँ लॉग जब tmux -vvvvvबिट के लिए चल रहे हैं :

अगर मैं ~/.bashrcअपने लैपटॉप से, सर्वर के लिए ssh, सर्वर बार, शीर्षक बार को सही तरीके से दिखाता हूँ ( quanta@server), तो tmuxवहाँ से शुरू करें, जैसा कि अपेक्षित है।

लेकिन अगर मैं tmuxलॉगिन के तुरंत बाद शुरू करना चाहता हूं , तो शीर्षक बार quanta@Ubuntussh के बाद होना चाहिए ।


अद्यतन शुक्र मई 10 07:51:23 आईसीटी 2013

मैंने exitअंतिम सत्र बंद होने पर शेल सत्र को बंद नहीं करने के लिए कमांड को हटा tmuxदिया है:

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

अजीब बात है:

  • सर्वर के लिए ssh -> शीर्षक बार: quanta@Ubuntu
  • से अलग tmux-> शीर्षक बार स्विच करने के लिएquanta@server
  • tmuxफिर से संलग्न करें -> शीर्षक बार अभी भी सही ढंग से दिखाता है quanta@server

मुझे यकीन नहीं है कि यह PROMPT_COMMANDपर्यावरण चर से संबंधित है या नहीं:

के बाहर tmux:

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

अंदर tmux:

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

इस मामले में यह स्पष्ट नहीं है। उसका सेटअप ठीक काम करता है, बस तब नहीं जब वह उसे अपने .bashrc से चलाने का प्रयास करता है।
SLM

कृपया से आउटपुट प्रदान करें tmux info
SLM

जवाबों:


15

समस्या सुलझ गयी!

देशी xterm माउस को स्क्रॉल करने में सक्षम करने के लिए tmux, बहुत सारे विकी , क्यू एंड ए साइट , ब्लॉग पोस्ट का सुझाव है कि इस तरह एक पंक्ति को जोड़ना:

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

सेवा ~/.tmux.conf । और यह अपराधी है।

टर्मिनल विंडो में xterm शीर्षक की अनुमति देने के लिए, आपको XTध्वज को जोड़ने की आवश्यकता है , कुछ इस तरह से:

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

स्रोत: http://opennomad.com/content/goodbye-screen-hello-tmux


3
आपकी पोस्ट के लिए धन्यवाद। मेरे मामले में rxvt, सेटिंग हैset -ga terminal-overrides ",rxvt*:XT"
favadi

2
जैसा कि @favadi ने बताया है, इसके लिए उचित फ़ोकस यह है कि इस -aविकल्प setका उपयोग करके स्मिच / rmcup ओवरराइड्स को जोड़ा जाए। यह अन्य अजीब मुद्दों को ठीक करेगा, जैसे कि कर्सर के आकार को ठीक से सेट न कर पाना।
blueyed

2

Tmux-users मेलिंग सूची से इस धागे के पार आया। थ्रेड शीर्षक था: सेट-शीर्षक काम नहीं कर रहा । इस धागे से कुछ चीजें आजमाई जा सकती हैं। यहाँ धागे का एक क्लीनर संस्करण भी है।

XTerm संसाधन

शुरुआत के लिए अंत में आपकी XTerm Resources फ़ाइल में निम्न पंक्ति जोड़ना था ~/.Xresources:

XTerm*allowSendEvents: true

Tmux युक्तियाँ डीबग करना

इस थ्रेड में कुछ डीबगिंग टिप्स भी थे जो आपकी मदद कर सकते हैं।

क्रिया स्वर

  1. सभी tmux सत्र बंद करें
  2. आदेश चलाएँ: tmux -vvvvv
  3. आदेश चलाएँ: vi foo
  4. फ़ाइल सहेजें
  5. बाहर निकलें tmux

ऐसा करने के बाद आपके पास 3 फाइलें होनी चाहिए, कुछ इस तरह से:

  • tmux बाहर 21594.log
  • tmux-ग्राहक-21592.log
  • tmux-server-21594.log

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:

मैंने यहाँ पूछने से पहले ही उस धागे को पढ़ा। XTerm*allowSendEvents: trueकाम नहीं किया। लॉग फ़ाइलों को अपलोड किया गया है। मेरा अद्यतन प्रश्न देखें।
क्वांटा

1
भविष्य में आपको अपने प्रश्न में इस प्रकार की वस्तुओं को शामिल करना चाहिए, ताकि हर किसी के समय को बर्बाद न करें क्योंकि आपने पहले से ही कोशिश की है।
SLM
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.