प्रदर्शन आकार को आकार देने से ग्नू स्क्रीन को रोकें


21

हर बार जब मैं स्क्रीन (स्क्रीन-ए) शुरू करता हूं या पहले से चल रहे स्क्रीन सेशन (स्क्रीन-एएक्स) से जुड़ने की कोशिश करता हूं, तो मेरा टर्मिनल 80 कॉलम का आकार बदल जाता है। मैं स्क्रीन को अपने टर्मिनल का आकार बदलने से रोकना चाहता हूं।

मैं हिम तेंदुए पर iTerm का उपयोग कर रहा हूं और मेरे स्क्रीन सत्र एक सेंटोस मशीन पर हैं (मैं अपने शेल के रूप में बैश का उपयोग करता हूं)।

जवाबों:


31

इसे (से /etc/screenrc) अपने में जोड़ने का प्रयास करें ~/.screenrc:

# Change the xterm initialization string from is2=\E[!p\E[?3;4l\E[4l\E>
# (This fixes the "Aborted because of window size change" konsole symptoms found
#  in bug #134198)
termcapinfo xterm* 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'

आपको अपने मिलान के लिए "xterm" को बदलने की आवश्यकता हो सकती है $TERM

termcapinfoलाइन सेट is(ininitialization स्ट्रिंग) एक नाम मुक्ति कोड का एक अनुक्रम को "टर्म 'के साथ शुरू वाले किसी भी टर्मिनल के लिए। \Eप्रतिनिधित्व करता है escapeऔर कोड निम्नानुसार हैं:

\E[r       - set scrolling region to default (full size of window)
\E[m       - reset all resources (keyboard) to their initial values
\E[2J      - Erase in Display (ED). 2 -> Erase All.
\E[H       - set cursor position to default (1, 1)
\E[?7h     - DEC Private Mode Set. 7 -> Wraparound Mode
\E[?1;4;6l - DEC Private Mode Reset. 1 -> Normal Cursor Keys; 4  -> Jump (Fast) Scroll; 6 -> Normal Cursor Mode

प्रतिस्थापित लाइन में ये कोड थे:

\E[!p      - Soft terminal reset
\E[?3;4l   - DEC Private Mode Reset. 3 -> 80 Column Mode; 4 -> Jump (Fast) Scroll
\E[4l      - Reset Mode. 4 -> Replace Mode
\E>        - Normal keypad

(स्रोत: एक्सटर्म कंट्रोल सीक्वेंस )


धन्यवाद! इस जवाब को serverfault.com/questions/158508/…
जोशुआ डी 'एल्टन

क्या आप टर्मकिनफो लाइन को डिकोड करने का मन करेंगे?
हकले

2
@ हकल: मैंने एस्केप कोड्स का स्पष्टीकरण जोड़ा।
अगली सूचना तक रोक दिया गया।

1

एक्सटर्म इनिशियलाइज़ेशन स्ट्रिंग के लिए स्पष्टीकरण (और सुझाए गए समकक्ष) पूरी तरह से सटीक नहीं हैं।

Xterm के टर्मिनल विवरण से स्ट्रिंग के साथ शुरू:

is2=\E[!p\E[?3;4l\E[4l\E>

हमारे पास है

CSI ! p   Soft terminal reset (DECSTR).
CSI ? Pm l
      DEC Private Mode Reset (DECRST).
...
        Ps = 3  -> 80 Column Mode (DECCOLM).
        Ps = 4  -> Jump (Fast) Scroll (DECSCLM).
CSI Pm l  Reset Mode (RM).
...
        Ps = 4  -> Replace Mode (IRM).
ESC >     Normal Keypad (DECKPNM).

लेकिन DECSTRकई चीजें हैं जो प्रतिस्थापन में नहीं मिलती हैं:

  • कर्सर आकार और उपस्थिति
  • चरित्र सेट
  • आवेदन से संबंधित अन्य कुंजीपटल मोड / सामान्य मोड ( DECCKM, KAM, DECKPAM)
  • रैपपराउंड (और रिवर्स रैपपाउंड)
  • मूल मोड

इसके अलावा, यह स्क्रीन को साफ नहीं करता है।

DECSTR( 1997 के बाद से ) उपयोग करने का कारण यह है कि टर्मकैप के आकार को छोटा रखा जाए जो कि टर्मकैप की 1024-बाइट सीमा में फिट हो।

के लिए सेटिंग screenडेबियन पैकेज से है; टिप्पणी में उल्लिखित बग रिपोर्ट डेबियन # 134198 - स्क्रीन है: 2002 से कुछ अजीब तरह की समस्या है , जो आइसेसी और कोनोसोल के साथ सबसे अधिक ध्यान देने योग्य है। screenउस अनुक्रम को नहीं पहचानता है, और संयोग से, केडीई कोनोलस उस क्रम को लागू नहीं करता है, जैसा कि देखा गया है। में केडीई # 134,892 , जबकि एक ही समय में इसके डेवलपर्स राज्य केडीई # 145,977 है कि वे एक अलग का उपयोग नहीं करने के लिए पसंद TERMकी तुलना में मूल्य xterm। चूँकि कुछ उपयोगकर्ता टर्मिनल विवरण चाहते हैं जो कोनोलास की क्षमताओं से मेल खाता है, इसलिए यह नर्सों में है konsole, जैसे,

is2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8

बनाम

is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l

स्पष्ट स्पष्ट-स्क्रीन को हटाते हुए, स्क्रीन के अनुकूलन का प्रासंगिक भाग है

is2=\E[r\E[m\E[?7h\E[?1;4;6l

इसलिए जो बचा था वह (एक तरफ से DECCOLM) था \E[4l

\E7और \E8आरंभीकरण स्ट्रिंग में बचाने / जब स्क्रॉल मार्जिन का समायोजन कर्सर की स्थिति बहाल। इंसर्ट-मोड की तरह ही, कुछ उपयोगकर्ता फीचर की अनुपस्थिति को नोटिस करेंगे।

अनुकूलन का बिंदु DECCOLM(80/132 कॉलम) स्विचिंग को दबाने के लिए है , और स्क्रीन के कट-डाउन से काम करना और पुराने अनुकूलन काम नहीं कर सकते हैं और साथ ही टर्मिनल के लिए लिखे गए टर्मिनल विवरण से अनुकूलन कर सकते हैं ।

आगे की पढाई:

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.