जैसे कि "आकार बदलने योग्य" टर्मिनल NAWS का परिणाम हैं ( Negotiate About Window Size
से आरएफसी 1073 टेलनेट विंडो आकार विकल्प )।
यदि आप सीरियल पोर्ट का उपयोग करके सीधे कंप्यूटर से जुड़े हैं, तो कोई बातचीत शामिल नहीं है, और कंप्यूटर को आपके टर्मिनल के स्क्रीन-आकार का कोई प्रत्यक्ष ज्ञान नहीं है।
यदि एक टर्मिनल आकार पर बातचीत कर सकता है, तो कंप्यूटर SIGWINCH
टर्मिनल में चल रहे अनुप्रयोगों को भेज देगा , उन्हें स्क्रीनसेशन की अपनी धारणा को अपडेट करने के लिए कहेगा।
जब कंप्यूटर स्क्रीनसेवर को नहीं जानता है, तो यह आमतौर पर stty -a
(पंक्तियों और स्तंभों) द्वारा दिखाए गए आकार को शून्य पर सेट करता है। इंटरैक्टिव उपयोग के लिए, यह थोड़ा अमित्र है, और कुछ सिस्टम पर्यावरण चर का उपयोग करते हैं LINES
और COLUMNS
मदद करते हैं। निर्दिष्ट मूल्यों को टर्मिनल विवरण से प्राप्त किया जा सकता है; अधिक बार वे केवल हार्डकोड होते हैं। इन चर के लिए कन्वेंशन की आवश्यकता है कि वे प्रभावी रूप से तब तक प्रभावी रहें जब तक कि शाप अनुप्रयोग use_env
फ़ंक्शन में, उदाहरण के लिए, दबा न दिया जाए । सकारात्मक पक्ष पर, वे चर उपयोगी हो सकते हैं जब कोई विश्वसनीय जानकारी उपलब्ध नहीं है। नकारात्मक पक्ष पर, उन चर को बदलने के लिए कोई सुविधाजनक तरीका नहीं है।
resize
कार्यक्रम (एक उपयोगिता के साथ प्रदान की xterm
) स्क्रीन आकार निर्धारित करने के लिए VT100 शैली कर्सर की स्थिति रिपोर्ट से बच अनुक्रम का उपयोग कर सकते हैं। इसे कमांड-लाइन से चलाया जा सकता है; वहाँ (फिर से) स्वचालित रूप से इसे करने का कोई सुविधाजनक तरीका नहीं है। एक साइड-इफेक्ट के रूप में, resize
पंक्तियों / स्तंभों द्वारा देखी गई जानकारी को अपडेट करता है stty
। अद्यतन वातावरण चर प्रदान करने के लिए इसका उपयोग इस तरह है, जहां के रूप में मामलों के लिए मुख्य रूप से उपयोगी है LINES
और COLUMNS
कर रहे हैं निर्धारित करते हैं, और अद्यतन किया जाना चाहिए।
[[ $(tty) == /dev/ttyS0 ]] && trap res2 DEBUG
के लिए, शेल प्रोफ़ाइल कॉन्फ़िगरेशन (जैसे/etc/profile
,~/.bash_profile
) में से एक में जोड़ें । यह हर एक कमांड के बाद चलाया जाएगा (जो केवल एक अच्छी बात होगी यदि आप स्क्रीन / tmux / टर्मिनल-एमुलेटर के साथ विंडोज़ / पैन का आकार बदल रहे हैं)।