टेक्स्ट-आधारित यूजर इंटरफेस

कम्प्यूटिंग में, टेक्स्ट-आधारित यूजर इंटरफ़ेस (TUI) वैकल्पिक रूप से टर्मिनल यूजर इंटरफेस कंप्यूटर टर्मिनलों के गुणों पर निर्भरता को प्रतिबिंबित करने के लिए और सिर्फ टेक्स्ट ही नहीं, एक प्रारंभिक रूप में सामान्य यूजर इंटरफेस (यूआई) का वर्णन करने वाला एक पुराना नाम है। ग्राफिकल यूजर इंटरफ़ेस (GUI) के आगमन से पहले मानव-कंप्यूटर पारस्परिक प्रभाव का GUI की तरह, वे पूरे इलेक्ट्रॉनिक दृश्य प्रदर्शन क्षेत्र का उपयोग कर सकते हैं। माउस और अन्य इनपुट उपकरण स्वीकार कर सकते हैं। वे रंग का उपयोग भी कर सकते हैं। और अधिकांश विशेष ग्राफिकल वर्णों जैसे ┌ और ╣ का उपयोग करके डिस्प्ले की संरचना करते हैं, जिसे यूनिकोड में बॉक्स ड्राइंग समुच्चय के रूप में संदर्भित किया जाता है। जिसका उपयोग का आधुनिक संदर्भ मे सामान्य रूप से एक टर्मिनल एमुलेटर के रूप मे होता है।

टेक्स्ट टर्मिनलों के प्रकार
टेक्स्ट एप्लिकेशन के दृष्टिकोण से एक टेक्स्ट डिस्प्ले और इसके साथ संचार तीन प्रकारों में से एक से संबंधित हो सकता है। तथा यहां घटती पहुंच के क्रम में आदेश दिया गया है।


 * 1) एक वास्तविक टेक्स्ट मोड डिस्प्ले, जिसे एक विडियो उपयोजक या स्वयं केंद्रीय प्रोसेसर द्वारा नियंत्रित किया जाता है। विभिन्न प्रकार के व्यक्तिगत कंप्यूटरों और मोबाइल उपकरणों पर स्थानीय रूप से चल रहे एप्लिकेशन के लिए यह एक सामान्य स्थिति होती है। यदि ऑपरेटिंग सिस्टम द्वारा विचलित नहीं किया जाता है, तो एक स्मार्ट प्रोग्राम हार्डवेयर टेक्स्ट मोड की पूर्ण शक्ति का उपयोग कर सकता है।
 * 2) एक टेक्स्ट मोड एमुलेटर। उदाहरण X विंडो सिस्टम के लिए xterm और Microsoft Windows के लिए win32 कंसोल विंडो मोड में होता हैं। यह सामान्य रूप से उन प्रोग्रामों का समर्थन करता है, जो वास्तविक टेक्स्ट मोड डिस्प्ले की उम्मीद करते हैं, लेकिन काफी धीमी गति से चल सकते हैं। एक उन्नत टेक्स्ट मोड के कुछ कार्य जैसे स्वयं का रेखापुंज फ़ॉन्ट अपलोड करना, लगभग निश्चित रूप से अनुपलब्ध हो जाते हैं।
 * 3) एक दूरस्थ टेक्स्ट टर्मिनल टेलनेट और सुरक्षित शेल जैसे स्थिति में आउट-ऑफ-बैंड आँकड़ा के रूप में संभवतः कुछ ioctl के साथ संचार क्षमताएं सामान्य रूप से एक सीरियल लाइन या इसके अनुकरण में कम हो जाती हैं। यह सबसे खराब स्थिति होती है, क्योंकि सॉफ्टवेयर प्रतिबंध रिमोट डिस्प्ले उपकरण की क्षमताओं के उपयोग में बाधा डालते हैं।

लिनक्स और अन्य यूनिक्स जैसी प्रणालियों के तहत एक प्रोग्राम सरलता से तीन स्थितियों में से किसी एक को समायोजित करता है क्योंकि एक ही इंटरफ़ेस (अर्थात्, मानक धाराएँ) डिस्प्ले और कीबोर्ड को नियंत्रित करता है। विंडोज़ की तुलना के लिए नीचे देखें।

डेवलपर्स को TUI एप्लिकेशन बनाने में सहायता करने के लिए कई TUI प्रोग्रामिंग लाइब्रेरी उपलब्ध होती हैं।

ANSI-संगत टर्मिनलों पर
अमेरिकी राष्ट्रीय मानक संस्थान (ANSI) मानक ANSI X3.64 एस्केप के क्रम के एक मानक समुच्चय को परिभाषित करता है, जिसका उपयोग TUIs बनाने के लिए टर्मिनलों को चलाने के लिए किया जा सकता है (ANSI एस्केप कोड देखें)। उपरोक्त अनुभाग में उल्लिखित सभी तीन स्थितियों के लिए एस्केप के क्रम का समर्थन किया जा सकता है, जिससे मनमाना टेक्स्ट कर्सर गतिविधि और रंग परिवर्तन की अनुमति मिलती है। हालांकि, सभी टर्मिनल इस मानक का पालन नहीं करते हैं, और कई गैर-संगत लेकिन कार्यात्मक समकक्ष अनुक्रम उपस्थित होते हैं।

डॉस और माइक्रोसॉफ्ट विंडोज के तहत
आईबीएम निजी कंप्यूटर और संयोज्य पर बेसिक इनपुट आउटपुट सिस्टम BIOS और DOS सिस्टम कॉल डिस्प्ले पर टेक्स्ट लिखने का एक तरीका प्रदान करते हैं, और ANSI.SYS ड्राइवर मानक ANSI एस्केप के क्रम को प्रोसेस कर सकता है। हालाँकि, प्रोग्रामरों ने जल्द ही यह जान लिया कि डिस्प्ले प्रतिरोधी पर सीधे आँकड़ा लिखना प्रोग्राम के लिए कहीं अधिक तेज़ और सरल होता था, और कम त्रुटि-प्रवण था। विवरण के लिए VGA-संगत टेक्स्ट मोड देखें। प्रोग्रामिंग विधियों में इस परिवर्तन के परिणाम स्वरूप कई DOS TUI प्रोग्राम बने। विंडोज कंसोल वातावरण कुछ EGA/VGA टेक्स्ट मोड सुविधाओं के अपने अनुकरण के लिए कुख्यात होता है, विशेष रूप से टेक्स्ट प्रतिरोधी के लिए रैंडम एक्सेस भले ही एप्लिकेशन विंडो में चलता हो। दूसरी ओर विंडोज के तहत चलने वाले प्रोग्राम (प्राकृत और डॉस दोनों एप्लिकेशन) में लिनक्स और डॉस प्रोग्राम की तुलना में डिस्प्ले और कीबोर्ड का बहुत कम नियंत्रण होता है, क्योंकि उपरोक्त विंडोज कंसोल परत होती है।

अधिकांश उन कार्यक्रमों में सफेद या पीले अक्षरों के साथ मुख्य डिस्प्ले के लिए नीले रंग की पृष्ठभूमि का उपयोग किया जाता था, हालांकि सामान्य रूप से उनके पास यूजर रंग अनुकूलन भी होता था। वे अधिकांश आईबीएम के कोड पृष्ठ 437 में बॉक्स-ड्राइंग वर्णों का उपयोग करते थे। बाद में इंटरफ़ेस ग्राफिकल यूजर इंटरफेस (GUI) से गहराई से प्रभावित हो गया, जिसमें पुल - डाउन मेनू, ओवरलैपिंग विंडो (कम्प्यूटिंग), संवाद बॉक्स और GUI विजेट सम्मिलित थे।, जो कि एमनेमिक्स या कीबोर्ड लघुपथ द्वारा संचालित थे। जल्द ही कम्प्यूटर का माउस इनपुट मे जोड़ा गया - या तो टेक्स्ट विश्लेषण पर एक साधारण रंगीन बॉक्स के रूप में या ग्राफिकल विश्लेषण पर उन्नत ग्राफिक्स एडेप्टर (ईजीए) और वीडियो ग्राफिक्स ऐरे (VGA) डिस्प्ले एडेप्टर की क्षमता के लिए सॉफ्टवेयर द्वारा टेक्स्ट वर्णों के आकार को फिर से परिभाषित करने के लिए प्रदान करना अतिरिक्त प्रकार्य होता हैं।

इस तरह के कुछ उल्लेखनीय प्रोग्राम होते थे,जो माइक्रोसॉफ्ट वर्ड, डॉस शेल, वर्ड पर्फेक्ट, नॉर्टन कमांडर, टर्बो विजन आधारित बोरलैंड टर्बो पास्कल और टर्बो सी (बाद वाले में conio.h लाइब्रेरी भी सम्मिलित थी), लोटस 1-2-3 और कई अन्य इनमें से कुछ इंटरफेस 1990 के दशक की प्रारम्भ में माइक्रोसॉफ्ट विंडोज 3.1x अवधि के दौरान भी बने रहे। उदाहरण के लिए माइक्रोसॉफ्ट सी 6.0 कंपाइलर, जो 16-बिट विंडोज़ के तहत वास्तविक GUI प्रोग्राम लिखने के लिए प्रयोग किया जाता है, अभी भी इसका अपना TUI होता है।

इसके प्रारम्भ के बाद से माइक्रोसॉफ़्ट विंडोज़ में DOS सॉफ़्टवेयर प्रदर्शित करने के लिए एक कंसोल सम्मिलित होता है।, जो बाद के संस्करणों ने विंडोज कंसोल को कमांड लाइन इंटरफेस और TUI कार्यक्रमों के लिए मूल इंटरफ़ेस के रूप में जोड़ा। तथा कंसोल सामान्य रूप से विंडो मोड में खुलता है, लेकिन इसे Alt और Enter कुंजियों को एक साथ दबाकर फुल, सही टेक्स्ट मोड डिस्प्ले पर और इसके विपरीत स्विच किया जा सकता है। फ़ुल-डिस्प्ले मोड विंडोज़ Vista और बाद के संस्करणों में उपलब्ध नहीं होता है, लेकिन कुछ वैकल्पिक हलों के साथ इसका उपयोग किया जा सकता है।

विंडोज टर्मिनल एक बहु-टैब्ड टर्मिनल एमुलेटर होता है, जिसे माइक्रोसॉफ्ट ने विंडोज कंसोल के प्रतिस्थापन के रूप में विंडोज 10 और बाद में के लिए विकसित किया है।

लिनक्स के लिए विंडोज उप-सिस्टम जिसे 2019 में माइक्रोसॉफ्ट द्वारा विंडोज में जोड़ा गया था, विंडोज कंसोल, विंडोज टर्मिनल और अन्य विंडोज-आधारित टर्मिनलों के अन्दर विंडोज पर लिनक्स टेक्स्ट-आधारित ऐप्स चलाने का समर्थन करता है।

यूनिक्स जैसी प्रणालियों के तहत
यूनिक्स जैसे ऑपरेटिंग सिस्टम में TUI का निर्माण अधिकांश टर्मिनल कंट्रोल लाइब्रेरी बहिष्कृत (प्रोग्रामिंग लाइब्रेरी), या परिचारिका ज्यादातर संगत लाइब्रेरी या वैकल्पिक एस-लैंग लाइब्रेरी का उपयोग करके किया जाता है। बर्कले यूनिक्स के साथ कर्स लाइब्रेरी के आगमन ने एक पोर्टेबल और स्थिर API बनाया, जिसके लिए TUI लिखा जा सके। एक ही इंटरफेस का उपयोग करके विभिन्न टेक्स्ट टर्मिनल प्रकारों से बात करने की क्षमता ने वास्तविक यूनिक्स प्रोग्रामों का अधिक व्यापक उपयोग किया, जिसने एक साधारण लाइन इंटरफ़ेस का उपयोग करने के अतिरिक्त पूरे टर्मिनल डिस्प्ले पर अधिकृत कर लिया। इसे टेक्स्ट संपादको जैसे vi, ईमेल क्लाइंट जैसे पाइन (ई-मेल क्लाइंट) या म्यूट (ई-मेल क्लाइंट), सिस्टम प्रबंधन उपकरण जैसे IBM AIX SMIT, SAM (HP-UX), FreeBSD' मे देखा जा सकता है। कुछ एप्लिकेशन जैसे कि w3m और पाइन और vi के पुराने संस्करण कम-सक्षम termcap लाइब्रेरी का उपयोग करते हैं, एप्लिकेशन के भीतर बहिष्कृत से जुड़े कई कार्यों का प्रदर्शन करते हैं। विगेट्स पर आधारित कस्टम TUI एप्लिकेशन को डायलॉग प्रोग्राम (एनसीआरएस पर आधारित), या न्यूट प्रोग्राम (एस-लैंग पर आधारित) का उपयोग करके सरलता से विकसित किया जा सकता है।

इसके अतिरिक्त लिनक्स की लोकप्रियता में वृद्धि ने कई पूर्व डॉस यूजरओं को यूनिक्स जैसे प्लेटफॉर्म पर ला दिया, जिसने कई TUI में डॉस प्रभाव को बढ़ावा दिया है। उदाहरण के लिए, प्रोग्राम मिनिकॉम, लोकप्रिय डॉस प्रोग्राम टेलिक्स के बाद तैयार किया गया है। कुछ अन्य TUI प्रोग्राम, जैसे ट्विन (विंडो सिस्टम) को पोर्ट किया गया था।

अधिकांश यूनिक्स-जैसे ऑपरेटिंग सिस्टम लिनक्स, फ्रीबीएसडी, आदि वास्तविक कंसोल का समर्थन करते हैं, जिन्हें सामान्य रूप से Ctrl-Alt-F कुंजी संयोजन के माध्यम से नियत्रित किया जाता है। उदाहरण के लिए, लिनक्स के तहत 64 कंसोल तक पहुँचा जा सकता है (फलन कुंजियों के माध्यम से 12) प्रत्येक फ़ुल-डिस्प्ले टेक्स्ट मोड में प्रदर्शित होता है।

मुफ्त सॉफ्टवेयर प्रोग्राम जीएनयू डिस्प्ले एक ही TUI के अंदर कई सत्रों को प्रबंधित करने के लिए प्रदान करता है, और इसलिए इसे टेक्स्ट-मोड और कमांड-लाइन इंटरफेस के लिए विंडो प्रबंधक की तरह माना जा सकता है। Tmux भी ऐसा कर सकता है।

स्वत्वाधिकारी macOS टेक्स्ट संपादक BBEdit में एक शेल वर्कशीट फलन सम्मिलित होते है, जो फुल-डिस्प्ले शेल विंडो के रूप में काम करता है। मुफ्त Emacs टेक्स्ट एडिटर समान कार्यक्षमता प्रदान करने के लिए अपने बफ़र्स में से एक के अंदर शेल चला सकता है। Emacs में कई शेल कार्यान्वयन होता हैं, लेकिन केवल  ही TUI प्रोग्राम चलाने के लिए उपयुक्त है। अन्य सामान्य शेल मोड,   तथा   केवल कमांड लाइन का अनुकरण करते हैं और TUI प्रोग्राम शिकायत करेंगे कि टर्मिनल पूरी तरह कार्यात्मक नहीं है। या एक विकृत इंटरफ़ेस प्रदर्शित करता है। मुफ्त विम और नियोविम टेक्स्ट संपादकों में टर्मिनल विंडो xterm का अनुकरण करता है। सुविधा कार्य चलाने समानांतर निर्माण या परीक्षण करने के लिए अभिप्रेत होता है, लेकिन इसका उपयोग (विंडो विभाजन और टैब पेजों के साथ) एक हल्के टर्मिनल मल्टीप्लेक्सर के रूप में भी किया जा सकता है।

OpenVMS (ओपेन वीएमएस)
VAX/VMS (जिसे बाद में OpenVMS के रूप में जाना जाता है) में बहिष्कृत के समान सुविधा थी जिसे डिस्प्ले प्रबंधन सुविधा या SMG के रूप में जाना जाता है। इसे कमांड लाइन से मंगाया जा सकता है या SMG$ लाइब्रेरी का उपयोग करने वाले प्रोग्राम से कॉल किया जा सकता है।

ओबेरॉन
एक अन्य प्रकार का TUI ओबेरॉन ऑपरेटिंग सिस्टम का प्राथमिक इंटरफ़ेस होता है, जिसे पहली बार 1988 में प्रकाशित किया गया था। और अभी भी इसे बनाए रखा गया है। अधिकांश अन्य टेक्स्ट-आधारित यूजर इंटरफेस के विपरीत ओबेरॉन टेक्स्ट-मोड कंसोल या टर्मिनल का उपयोग नहीं करता है, लेकिन इसके लिए एक बड़े बिट-मैप्ड डिस्प्ले की आवश्यकता होती है, जिस पर टेक्स्ट माउस क्लिक के लिए प्राथमिक लक्ष्य होता है। प्रारूप मॉड्यूल में आदेश प्रक्रिया पैरामीटर ~हाइपरलिंक्स की तरह एक मध्य-क्लिक के साथ सक्रिय किया जा सकता है। डिस्प्ले पर कहीं भी प्रदर्शित टेक्स्ट को संपादित किया जा सकता है, और यदि आवश्यक कमांड रचनाक्रम के साथ स्वरूपित किया जाता है, तो मध्य-क्लिक और निष्पादित किया जा सकता है। उपयुक्त रूप से स्वरूपित कमांड वाली किसी भी टेक्स्ट फ़ाइल को एक तथाकथित उपकरण टेक्स्ट के रूप में उपयोग किया जा सकता है, इस प्रकार यूजर-कॉन्फ़िगर करने योग्य मेनू के रूप में कार्य करता है। यहां तक ​​कि पिछले कमांड के आउटपुट को भी संपादित किया जा सकता है। और नए कमांड के रूप में उपयोग किया जा सकता है। यह दृष्टिकोण पारंपरिक संवाद-उन्मुख कंसोल मेनू या कमांड लाइन इंटरफेस दोनों से मुख्य रूप से भिन्न होते है।

चूंकि यह ग्राफ़िकल विजेट्स का उपयोग नहीं करता है। केवल सादा टेक्स्ट, लेकिन टाइलिंग विंडो प्रबंधक के साथ GUI के लिए तुलनीय कार्यक्षमता प्रदान करता है, इसे टेक्स्ट यूजर इंटरफेस या TUI के रूप में संदर्भित किया जाता है। एक संक्षिप्त परिचय के लिए ओबेरॉन प्रणाली पर पहली प्रकाशित रिपोर्ट के पृष्ठ चार पर दूसरा पैराग्राफ देखें।

ओबेरॉन के यूआई ने बेल लैब्स ऑपरेटिंग सिस्टम से प्लान 9 के लिए एक्मे टेक्स्ट एडिटर और ईमेल क्लाइंट के प्रतिरूपण को प्रभावित किया।

एम्बेडेड सिस्टम में
आधुनिक एम्बेडेड सिस्टम व्यक्तिगत कंप्यूटर जैसे मॉनीटर पर TUI प्रदर्शित करने में सक्षम होते हैं। यह कार्यक्षमता सामान्य रूप से विशेष एकीकृत परिपथ मॉड्यूल या FPGA का उपयोग करके कार्यान्वित की जाती है।

वीडियो परिपथ या मॉड्यूल सामान्य रुप से यूएआरटी पर वीटी100-संगत कमांड समुच्चय का उपयोग करके नियंत्रित होते हैं, FPGA प्रतिरूपण सामान्य रूप से सीधे वीडियो मेमोरी नियंत्रण की अनुमति देते हैं।

अन्य उपयोग

 * कमोडोर 64, 8 बिट कंप्यूटर का पूर्ण डिस्प्ले संपादक अपने समय के लिए अपने बाजार खंड में उन्नत पर था। यूजर पूरे डिस्प्ले क्षेत्र पर कर्सर ले जा सकते हैं, तथा बेसिक प्रोग्राम लाइन्स में प्रवेश और संपादन कर सकते हैं, साथ ही प्रत्यक्ष मोड कमांड और सभी कमोडोर 8-बिट कंप्यूटर PETSCII वर्ण समुच्चय का उपयोग करते थे, जिसमें TUI बनाने के लिए उपयुक्त वर्ण उत्कीर्ण आकृंति सम्मिलित थे।
 * Apple के Macintosh प्रोग्रामर के वर्कशॉप प्रोग्रामिंग वातावरण में कमांडो, एक TUI शेल सम्मिलित था। यह BBEdit की शेल वर्कशीट की प्रेरणा थी।
 * बाद में Apple II मॉडल में माउसटेक्स्ट सम्मिलित था, जो ग्राफिकल उत्कीर्ण आकृंति का एक समुच्चय था, जिसका उपयोग TUI बनाने के लिए किया जाता था।
 * 1982 के कॉर्वस अवधारणा कंप्यूटर ने फुल-पेज पिवोटिंग डिस्प्ले पर प्रकार्य कुंजी टेक्स्ट इंटरफेस का उपयोग किया था।

यह भी देखें

 * कमांड लाइन इंटरफेस
 * कंसोल अनुप्रयोग
 * प्राकृतिक भाषा यूजर इंटरफेस
 * टेक्स्ट-आधारित गेम, TUI का उपयोग करने वाला खेल

प्रोग्रामिंग पुस्तकालयों के उदाहरण

 * कुर्सेस(प्रोग्रामिंग लाइब्रेरी)
 * न्कुर्सेस
 * CDK (प्रोग्रामिंग लाइब्रेरी)
 * न्यूट (प्रोग्रामिंग लाइब्रेरी), एक विजेट-आधारित टूलकिट
 * एस-लैड्ग्वेज
 * टर्बो विजन
 * वास्तविक-आधार के प्रारम्भिक संस्करण