टर्मिनल
DR-Terminal Kotlin में शुरू से लिखा अपना खुद का VT100/xterm एमुलेटर देता है — कोई WebView नहीं। यह xterm-256color, alt बफ़र (vim/less/nano), OSC 52 क्लिपबोर्ड, फ़ोकस इवेंट, और माउस ट्रैकिंग (mc, htop) का समर्थन करता है।
कीबोर्ड और शॉर्टकट
| शॉर्टकट | क्रिया |
|---|---|
| Ctrl+C — जब टेक्स्ट चयनित हो | चयन को क्लिपबोर्ड में कॉपी करें। बिना चयन के सामान्य SIGINT रिमोट प्रक्रिया तक पहुँचता है। |
| Enter — जब टेक्स्ट चयनित हो | वैकल्पिक कॉपी शॉर्टकट (Ctrl के बिना कीबोर्ड पर सुविधाजनक)। |
| Right-click / Copy मेनू | चयन के बाद संदर्भ मेनू — हमेशा उपलब्ध। |
| Ctrl+V | पेस्ट। बहु-पंक्ति क्लिपबोर्ड सामग्री एक Paste multi-line पुष्टि डायलॉग खोलती है। |
| Shift+Insert | पेस्ट — क्लासिक X11/Windows मसल मेमोरी। सादा Insert अब भी शेल तक पहुँचता है। |
| Shift+Delete | चयन कॉपी करें और उसे हटा दें (कट जैसा)। |
| Ctrl+F | find bar खोलें (देखें आउटपुट में ढूँढें)। शेल इस कीप्रेस को कभी नहीं देखता। |
| Ctrl+Shift+S | स्निपेट पिकर खोलें (देखें स्निपेट्स)। सादा Ctrl+S अब भी शेल तक पहुँचता है। |
| शॉर्टकट बार | esc, ctrl, tab, तीर, सामान्य शेल प्रतीक, snip कुंजी और ⌨ टॉगल — मोबाइल पर उपयोगी। फ़ंक्शन और नेविगेशन कुंजियाँ DevOps कीबोर्ड की fn परत और वैकल्पिक F-कुंजी पंक्ति में रहती हैं। |
| फ़ॉन्ट आकार | टर्मिनल मेनू में A- / A+ स्टेपर; सीमा 8–32 pt। |
macOS पर, ऊपर जहाँ भी Ctrl दिया गया है वहाँ Cmd काम करता है: Cmd+C, Cmd+V, Cmd+F और Cmd+Shift+S अपने Ctrl समकक्षों की तरह व्यवहार करते हैं।
DevOps कीबोर्ड (Android और iOS)
सिस्टम कीबोर्ड टर्मिनल में आपके खिलाफ काम करते हैं: ऑटोकरेक्ट sudo -rf बिगाड़ देता है, शेल प्रतीक दो परत गहरे छिपे होते हैं, और गैर-लैटिन लेआउट में अक्सर ASCII होता ही नहीं। DR-Terminal अपना हमेशा-ASCII DevOps कीबोर्ड देता है, जिसे ऐप खुद बनाता है और कुंजियाँ सीधे टर्मिनल को भेजता है — सिस्टम IME उन्हें कभी नहीं देखता।
- पोर्ट्रेट — स्क्रीन के नीचे क्लासिक डॉक।
- लैंडस्केप — स्प्लिट मोड: बाएँ और दाएँ किनारों पर अंगूठे के आकार के दो क्लस्टर, टर्मिनल के ऊपर पारभासी काँच की तरह बनाए गए, ताकि पूरी चौड़ाई आपका सेशन दिखाती रहे।
परतें: छोटे अक्षर, बड़े अक्षर (Shift), अंक, शेल प्रतीक (| ~ $ & ' " \ …`) और fn/nav परत (F1–F12, तीर, Home/End, PgUp/PgDn)। Ctrl/Alt/Shift स्टिकी हैं: एक टैप अगली कुंजी के लिए तैयार करता है, डबल-टैप लॉक करता है। दोहराव के लिए ⌫, तीर या स्पेस दबाए रखें; कोने में छोटे निशान वाली कुंजियों को देर तक दबाने से वैकल्पिक वर्ण मिलता है।
- ऊपर का ग्रैबर (गोली) FULL ↔ MINI बदलता है — MINI केवल ज़रूरी कुंजियाँ (Esc, Tab, Ctrl, तीर, ⌫, ↵) रखता है, htop/लॉग सेशनों के लिए। लैंडस्केप अपनी अलग स्थिति याद रखता है और MINI में शुरू होता है।
- क्लस्टर हिलाने के लिए ग्रैबर खींचें; वह निकटतम किनारे से चिपक जाता है। एक क्लस्टर को दूसरे पर छोड़ें तो वे एक तैरते कीबोर्ड में जुड़ जाते हैं; विभाजन-गोली उन्हें फिर अलग करती है।
- कुंजियों पर नीचे स्वाइप कीबोर्ड छिपा देता है; तैरता ⌨ बटन उसे वापस लाता है। ⌨ कुंजी सिस्टम कीबोर्ड पर ले जाती है, जब आपको मात्राएँ या इमोजी चाहिए।
सेटिंग्स → कीबोर्ड (मोबाइल): डिफ़ॉल्ट कीबोर्ड — स्वचालित तब DevOps कीबोर्ड चुनता है जब सिस्टम भाषा गैर-लैटिन हो (अरबी, हिब्रू, CJK…), वरना सिस्टम IME; लेआउट — Auto/QWERTY/QWERTZ/AZERTY; अपारदर्शिता और कुंजी आकार स्लाइडर; F-कुंजियाँ दिखाएँ — कीबोर्ड के ऊपर हमेशा दिखने वाली F1–F10 पंक्ति, mc/htop वर्कफ़्लो के लिए सुविधाजनक। सभी कीबोर्ड प्राथमिकताएँ फ़ोन या टैबलेट से निर्यात किए गए एन्क्रिप्टेड कॉन्फ़िगरेशन बैकअप में साथ जाती हैं।
चुनें, कॉपी करें, पेस्ट करें
Desktop: चयन के लिए माउस से खींचें। डबल-क्लिक एक शब्द चुनता है, ट्रिपल-क्लिक एक पंक्ति। छोड़ने पर ऊपर दिए शॉर्टकट के द्वारा कॉपी होता है; राइट-क्लिक एक मेनू खोलता है।
Android और iOS: चयन शुरू करने के लिए टर्मिनल में कहीं भी देर तक दबाएँ, फिर बढ़ाने के लिए खींचें और कॉपी करने के लिए छोड़ें — टेक्स्ट सिस्टम क्लिपबोर्ड में उतरता है। एक छोटा स्पर्श अब भी शेल तक टैप कर देता है; एक स्वाइप अब भी इतिहास स्क्रॉल करता है, इसलिए सामान्य इशारे काम करते रहते हैं।
- टर्मिनल शीर्ष बार में Paste आइकन — एक टैप कर्सर पर क्लिपबोर्ड पेस्ट करता है। क्लिपबोर्ड में कुछ न होने पर एक तटस्थ Nothing to paste स्नैकबार दिखता है।
- टर्मिनल मेनू में टेक्स्ट चुनें — एक चेकबॉक्स जो चयन मोड को तब तक चालू रखता है जब तक आप उसे बंद न करें, ताकि हर ड्रैग स्क्रॉल करने या शेल तक टैप करने के बजाय चयन करे।
- प्रॉम्प्ट पंक्ति पर देर तक दबाना (वह पंक्ति जिस पर कर्सर है, और केवल तब जब आप इतिहास में स्क्रॉल किए हुए न हों) चयन शुरू करने के बजाय पेस्ट करता है — स्वाभाविक जब आप बस वहीं क्लिपबोर्ड छोड़ना चाहते हैं जहाँ आप टाइप कर रहे हैं।
OSC 52 रिमोट प्रोग्रामों (tmux, vim, fzf) को एक एस्केप अनुक्रम के माध्यम से आपके सिस्टम क्लिपबोर्ड में कॉपी करने देता है — द्विदिश।
बहु-पंक्ति पेस्ट: जब आपके क्लिपबोर्ड में नई-पंक्तियाँ हों तो आपको एक Paste multi-line पूर्वावलोकन डायलॉग दिखता है — उन कमांडों को पेस्ट करने से बचाता है जिनका आपने निरीक्षण नहीं किया। सेटिंग्स → टर्मिनल → मल्टी-लाइन पेस्ट आपके चुने हुए मोड (एक ब्लॉक में पेस्ट, पंक्ति-दर-पंक्ति, पहले संपादित करें) को याद रख सकता है ताकि डायलॉग पूछना बंद कर दे।
फ़ाइल में कैप्चर (सीरियल और Telnet)
सीरियल और Telnet सत्रों पर सत्र मेनू (⋮) फ़ाइल में कैप्चर करें… देता है — उसके बाद से सत्र को जो कुछ मिलता है वह एक फ़ाइल में जोड़ा जाता है, minicom -C की तरह। डायलॉग फ़ाइल का नाम दिखाता है, आपको गंतव्य फ़ोल्डर चुनने देता है (अगली बार के लिए याद रखा जाता है; Android पर सिस्टम फ़ोल्डर चयनकर्ता ऐप को उस फ़ोल्डर की पहुँच देता है) और इसमें उन लॉग के लिए सादा पाठ (ANSI कोड हटाए गए) विकल्प है जिन्हें आप एस्केप अनुक्रमों के बिना पढ़ना चाहते हैं। जब गंतव्य पर खाली जगह कम हो तो एक चेतावनी दिखती है। कैप्चर चलते समय वही मेनू प्रविष्टि कैप्चर रोकें में बदल जाती है, और आइकन लाल हो जाता है।
स्क्रॉलबैक और इतिहास
स्क्रॉलबैक बफ़र डिफ़ॉल्ट रूप से 5000 पंक्तियाँ रखता है; गहराई सेटिंग्स → स्क्रॉल इतिहास का आकार में सेट करें (1000–20000 — नया मान बाद में खोले गए सत्रों पर लागू होता है)। व्हील या टच-ड्रैग स्क्रॉल करता है; कर्सर सही ढंग से व्यूपोर्ट छोड़ता है (xterm व्यवहार) और कोई भी चयन टेक्स्ट के साथ स्क्रॉल होता है।
सीरियल और Telnet सत्रों पर स्क्रॉलबैक संरक्षित है: जो अनुक्रम सामान्यतः इसे मिटा देते हैं — clear, लॉगिन प्रॉम्प्ट से पहले स्क्रीन पोंछता हुआ getty, टर्मिनल का पूर्ण रीसेट — वे स्क्रीन को नष्ट करने के बजाय इतिहास में स्क्रॉल कर देते हैं। UART पर किसी डिवाइस को बूट होते देखने पर पूरा U-Boot → kernel → login लॉग स्क्रॉल करने योग्य बना रहता है। SSH और लोकल शेल मानक xterm व्यवहार रखते हैं, जहाँ clear सचमुच साफ़ करता है।
इतिहास साफ़ करें साइडबार के History टैब में है और उस कनेक्शन के लिए सहेजे गए कमांड इतिहास को मिटाता है — यह स्क्रीन पर दिख रहे स्क्रॉलबैक को नहीं छूता।
टर्मिनल के दाहिने किनारे पर एक scrollbar दिखाई देती है (Desktop) — इतिहास के बीच स्क्रॉल करने के लिए इसे माउस से पकड़ें; Android और iOS स्पर्श से स्क्रॉल करते हैं। Wheel scroll speed Settings → Terminal में कॉन्फ़िगर करने योग्य है (प्रति एकल व्हील टिक पंक्तियाँ)।
Alt बफ़र (पूर्ण-स्क्रीन ऐप्स)
vim, less, nano, htop, mc जैसे प्रोग्राम alt बफ़र में स्विच होते हैं — एक अलग स्क्रीन जो बाहर निकलने पर मुख्य स्क्रॉलबैक को प्रदूषित किए बिना गायब हो जाती है।
आउटपुट में ढूँढें
find bar खोलने के लिए Ctrl+F (macOS पर Cmd+F) दबाएँ। यह स्क्रॉलबैक को लाइव खोजती है, हर मिलान को हाइलाइट करती है और उनके बीच कदम बढ़ाती है। हाइलाइटिंग एक रेंडर-समय ओवरले है — यह SSH स्ट्रीम में कभी कुछ इंजेक्ट नहीं करती।
फ़ॉन्ट, थीम, हाइलाइटिंग
- फ़ॉन्ट आकार — टर्मिनल मेनू में A-/A+ स्टेपर या Settings → Appearance में स्लाइडर; सीमा 8–32 pt। साइडबार के Theme टैब में Custom फ़ॉन्ट अतिरिक्त रूप से प्रति उपनाम 6–72 pt की अनुमति देता है।
- UI थीम — light / dark / system (पूरा ऐप, टर्मिनल नहीं)।
- टर्मिनल थीम — नीचे Theme खंड देखें; थीम प्रति उपनाम होती है।
- Highlight rules — Settings → Terminal → Output highlighting। regex + रंग जोड़ें, जैसे
ERRORको लाल रंग दें।
स्निपेट्स
स्निपेट्स पुन: उपयोग योग्य कमांड टेम्पलेट हैं जिन्हें आप किसी भी सत्र में चला सकते हैं। किसी टेम्पलेट में टाइप किए हुए प्लेसहोल्डर हो सकते हैं — ping -c {count:int=4} {host:ip} — और ऐसा स्निपेट चलाने पर मानों के लिए एक छोटा डायलॉग खुलता है (int, ip, bool और enum प्लेसहोल्डर को उपयुक्त इनपुट और वैधता जाँच मिलती है)। बिना प्लेसहोल्डर वाला स्निपेट सीधे चल जाता है। तुरंत चलाएँ तय करता है कि Enter आपके लिए भेजा जाए या कमांड संपादन के लिए बस प्रॉम्प्ट पर आ जाए।
चलाने के तरीके:
- Ctrl+Shift+S (macOS पर Cmd+Shift+S) — टाइप-करते-ही-खोजने वाला पिकर; Enter पहला मिलान चला देता है।
- टर्मिनल मेनू में स्निपेट्स — वही पिकर, बिना कीबोर्ड के।
- टर्मिनल साइडबार में Snippets टैब — हाल में उपयोग किए गए पहले, चलाने के लिए एक क्लिक, साथ ही संपादक का शॉर्टकट।
- मोबाइल शॉर्टकट बार और DevOps कीबोर्ड पर पिन की गई snip कुंजी, जिसका डॉक मोड एक स्निपेट टाइल परत भी देता है — आपके हाल के स्निपेट के साथ एक टैप-अनुकूल ग्रिड।
हर स्निपेट का एक दायरा होता है: सभी होस्ट, कोई एक समूह, या एकल होस्ट के लिए दृश्यमान। एक वैकल्पिक Systems फ़िल्टर (Debian, RHEL, Arch, macOS…) इसे और सीमित करता है, ताकि apt स्निपेट केवल उन्हीं होस्ट पर दिखें जो Debian-परिवार के रूप में पहचाने गए हों — पहचान लॉगिन जाँच से आती है (नीचे Host insight देखें)। केवल उपलब्ध होने पर दिखाएँ अतिरिक्त रूप से किसी स्निपेट को तब छिपा देता है जब उसकी कमांड होस्ट पर निश्चित रूप से अनुपस्थित हो। बिना SSH होस्ट वाले सत्रों (लोकल, serial, Telnet) को केवल वैश्विक स्निपेट दिखते हैं।
स्निपेट सेटिंग्स → टर्मिनल → स्निपेट्स में प्रबंधित करें: जोड़ें, संपादित करें, डुप्लिकेट करें और हटाएँ, दायरा, सिस्टम और तुरंत-चलाएँ फ़्लैग सेट करें। सौ से अधिक तैयार स्निपेट का एक अंतर्निहित कैटलॉग — प्रति सिस्टम (Debian, RHEL, Arch, Alpine, SUSE, BSD, macOS) साथ ही Docker, नेटवर्क, स्टोरेज और टूल सेट — पहली बार चलाने पर डाला जाता है; उन्हें अपने स्निपेट की तरह संपादित या हटाएँ।
कमांड इतिहास और autocomplete
प्रत्येक सहेजा गया कनेक्शन अपना कमांड इतिहास याद रखता है (यदि Save history चालू है)। ऊपर-तीर पहले की कमांड याद दिलाता है, और autocomplete फ़ील्ड सर्वर पर उपलब्ध कमांड नामों के सुझाव देती है — लाइव शेल पूर्णता, जो आपके टाइप किए गए इतिहास से अलग है।
Host insight (लाइव संसाधन जानकारी)
किसी SSH सत्र में लॉगिन के बाद ऐप चुपचाप होस्ट की जाँच करता है — OS नाम, CPU मॉडल और कोर संख्या — और लाइव संसाधन जानकारी लेना शुरू करता है: लोड औसत, मेमोरी, स्वैप और प्रति-माउंट डिस्क उपयोग, जिनमें से हर एक के साथ एक उपयोग-पट्टी दिखती है जो 75% से ऊपर एम्बर और 90% से ऊपर लाल हो जाती है।
- टर्मिनल साइडबार का Host टैब (सबसे बायाँ टैब, और SSH सत्रों के लिए डिफ़ॉल्ट) सब कुछ एक नज़र में दिखाता है।
- वही पंक्तियाँ कनेक्शन जानकारी डायलॉग में दिखती हैं।
- सेटिंग्स → टर्मिनल → संसाधन निगरानी (CPU/RAM/डिस्क) वैश्विक रूप से निगरानी चालू या बंद करता है और रिफ़्रेश अंतराल (5–300 s) सेट करता है। कनेक्शन फ़ॉर्म प्रति होस्ट इस अंतराल को ओवरराइड कर सकता है, और उसका System check on login ड्रॉपडाउन चुनता है कि पूरी जाँच कितनी बार चले: हर कनेक्शन पर, दिन में एक बार, सप्ताह में एक बार, या अक्षम।
सत्र टैब
हर सत्र — SSH, SFTP, लोकल, serial, Telnet — एक टैब में रहता है। किसी टैब पर, या Active Sessions सूची के किसी कार्ड पर, देर तक दबाएँ (मोबाइल) या राइट-क्लिक करें (desktop) ताकि उसका मेनू मिले: नाम बदलें, कनेक्शन जानकारी, सत्र पुनः आरंभ करें और टैब बंद करें। Restart session कनेक्शन को गिराकर शुरू से फिर जोड़ता है और टैब बनाए रखता है — सर्वर रीबूट के बाद सुविधाजनक। जब कोई रिमोट सत्र गिर जाता है, तो टर्मिनल मेनू में एक पुनः कनेक्ट करें प्रविष्टि भी आ जाती है जो कनेक्शन वहीं फिर से स्थापित करती है (लोकल टर्मिनल यह नहीं देते — उसकी जगह नया खोलें)।
साइडबार (दायाँ पैनल) — Host / History / Complete / Snippets / Theme
टर्मिनल के दाईं ओर (Desktop / tablet) एक संक्षिप्त-होने योग्य पैनल है जिसमें पाँच टैब हैं। इसे दाहिने किनारे के तीर से खोलें; बायाँ किनारा खींचकर आकार बदलें। स्थिति प्रति उपनाम होती है — प्रत्येक सहेजा गया कनेक्शन अपना टैब और चौड़ाई याद रखता है।
- होस्ट — SSH सत्रों के लिए डिफ़ॉल्ट टैब: पहचाना गया सिस्टम, CPU और लाइव संसाधन जानकारी। ऊपर Host insight देखें।
- इतिहास — हाल में टाइप की गई कमांड। क्लिक करने पर कमांड टर्मिनल में टाइप हो जाती है; उसके बगल वाला टॉगल तय करता है कि Enter के साथ स्वतः भेजना है या नहीं। Clear history भी यहीं रहता है।
- पूर्ण — सर्वर की शेल पूर्णता से लाइव कमांड-नाम सुझाव। प्रति उपनाम म्यूट किया जा सकता है (घंटी आइकन)।
- स्निपेट्स — इस होस्ट के लिए आपके स्निपेट, हाल में उपयोग किए गए पहले। ऊपर स्निपेट्स देखें।
- थीम — टर्मिनल का रूप। नीचे का खंड देखें।
थीम — टर्मिनल थीम (435 स्कीम)
थीम प्रति उपनाम होती है — प्रत्येक कनेक्शन की अपनी पृष्ठभूमि, अग्रभूमि और 16-रंग ANSI पैलेट होती है (वही इंडेक्स जो ls --color उपयोग करता है: मानक 0–7 + bright 8–15)।
- 435 थीमों का अंतर्निहित कैटलॉग — Search… फ़ील्ड नाम से फ़िल्टर करती है। प्रत्येक पंक्ति पृष्ठभूमि, अग्रभूमि और एक 16-स्वैच पट्टी दिखाती है। क्लिक करने पर थीम तुरंत लागू होती है।
- Custom (this alias) — desktop पर साइडबार फ़ॉन्ट, पृष्ठभूमि, अग्रभूमि और 16 ANSI स्लॉट का मैनुअल संपादन भी दिखाता है। प्रत्येक स्लॉट का अपना रीसेट (⟲) होता है; पूरे पैलेट का एक अलग रीसेट होता है।
ls --colorमें नीली डायरेक्टरियाँ ANSI 4 (BLUE) या 12 (BRIGHT_BLUE) हैं — उन्हें बदलने के लिए, कोई अन्य थीम चुनें या उन दो स्वैचों को संपादित करें।
Android और iOS: पूरा desktop साइडबार टर्मिनल शीर्ष बार में एक एकल palette आइकन से बदल दिया जाता है। उसे टैप करें ताकि एक बॉटम शीट खुले जिसमें वही 435-थीम कैटलॉग हो, खोजने योग्य और लाइव स्वैच पूर्वावलोकन के साथ। किसी पंक्ति को टैप करने पर थीम लागू होती है और शीट बंद हो जाती है ताकि आप परिणाम तुरंत देखें; शीर्ष पर रीसेट बटन किसी भी ओवरराइड को हटा देता है ताकि उपनाम अपने डिफ़ॉल्ट पर लौट जाए।
435 अंतर्निहित थीमें ओपन-सोर्स edcet/terminal-themes संग्रह (MIT) से आती हैं।