इस प्रोजेक्ट के बारे में
mTerm एक मूल macOS टर्मिनल एमुलेटर है जो Swift में लिखा गया है, विंडो के लिए AppKit और टर्मिनल व्यू के लिए Metal रेंडरर का उपयोग करता है। यह उन डेवलपर्स के लिए iTerm2 का विकल्प है जो Mac-मूल अनुभव, GPU-क्लास रेंडरिंग और बड़ी प्राथमिकता सतह के बजाय जानबूझकर छोटी सुविधा सेट चाहते हैं। यह स्पष्ट रूप से AI सुविधाओं, क्लाउड खातों और शेल पुनर्विचार से बचता है।
रेंडरिंग और टर्मिनल एमुलेशन
टर्मिनल व्यू पिक्सेल-स्नैप्ड ग्लिफ़ एटलस के साथ Metal-रेंडर किया गया है, जिसका उद्देश्य GPU फ़िल्टरिंग धुंधलेपन के बिना सभी आकारों में टेक्स्ट को कुरकुरा रखना है। बोल्ड और इटैलिक संश्लेषित तिरछे के बजाय फ़ॉन्ट के वास्तविक चेहरों का उपयोग करते हैं, समान अग्रिम चौड़ाई के साथ ताकि कॉलम संरेखित रहें। रेखांकित, फीका और उलटा गुण समर्थित हैं, जिनमें उन्हें बंद करने वाले कोड शामिल हैं। आकार बदलने से बफर रीफ्लो होता है: लपेटी गई पंक्तियाँ नई चौड़ाई पर फिर से जुड़ती और विभाजित होती हैं, और खींचते समय ग्रिड-आकार रीडआउट दिखाई देता है।
संगतता vim, neovim, htop, fzf, less और git पेजर जैसे टूल के लिए xterm-256color को लक्षित करती है। यह 24-बिट ट्रू कलर, ऑल्ट-स्क्रीन, स्क्रॉल क्षेत्र (DECSTBM), DEC लाइन ड्रॉइंग और सिंक्रोनाइज़्ड आउटपुट (DEC 2026) का समर्थन करता है। माउस रिपोर्टिंग SGR (1006) और क्लिक, ड्रैग, मोशन और व्हील के लिए विरासत एन्कोडिंग को कवर करती है, चयन के लिए ⇧ दबाए रखें। ब्रैकेटेड पेस्ट, फोकस इवेंट और डिवाइस/कर्सर-पोज़िशन रिपोर्ट शामिल हैं। पूर्वी एशियाई और पूर्ण-चौड़ाई वाले वर्ण दो कॉलम घेरते हैं, और संयोजन चिह्न पिछले ग्लिफ़ में रचते हैं।
टैब, नेविगेशन और कमांड हब
AppKit विंडो में एक टैब्ड साइडबार है जिसे पुनः क्रमबद्ध करने के लिए खींचा जा सकता है, फुल-स्क्रीन का समर्थन करता है और सत्र पुनर्स्थापित करता है (टैब, उनकी निर्देशिकाएँ और प्रोफाइल)। ⌘K हर विंडो में हर टैब और हर मेनू-बार कमांड पर एक हब खोलता है, एक सूची में रैंक किया गया। टैब पंक्तियाँ इंडेक्स, रन स्टेट, शीर्षक, निर्देशिका और फोरग्राउंड प्रोसेस दिखाती हैं। एक खाली क्वेरी हाल के टैब को पिछले चयनित के साथ सूचीबद्ध करती है, इसलिए ⌘K ⏎ वापस फ्लिप करता है; ⌘⌫ हाइलाइट किए गए टैब को बंद करता है। क्रियाएँ उन शब्दों द्वारा खोजी जा सकती हैं जिनके साथ उपयोगकर्ता आएंगे, जैसे "cls" क्लियर स्क्रीन के लिए या "blurry" स्ट्रोक वेट के लिए, जो उस नियंत्रण पर फोकस रिंग के साथ सेटिंग्स खोलता है।
शेल इंटीग्रेशन और tmux
zsh, bash और fish के लिए शेल इंटीग्रेशन OSC 133 का उपयोग करके गटर प्रॉम्प्ट मार्कर जोड़ता है जो निकास स्थिति द्वारा रंग-कोडित होते हैं और ⌘↑ / ⌘↓ प्रॉम्प्ट जंपिंग। यह उपयोगकर्ता rc फ़ाइलों को संशोधित नहीं करता है; इसके बजाय प्रत्येक शेल को एक रैपर मिलता है (zsh के लिए ZDOTDIR, bash के लिए --rcfile, fish के लिए vendor_conf.d स्निपेट) जो पहले वास्तविक स्टार्टअप फ़ाइलों को स्रोत करता है। tmux कंट्रोल मोड समर्थित है: tmux -CC चलाने से प्रत्येक tmux विंडो एक वास्तविक mTerm टैब बन जाती है, ⌘T और ⌘W tmux विंडो निर्माण और समापन के लिए मैप होते हैं, और नाम बदलना और विंडो स्विचिंग दोनों तरह से tmux का अनुसरण करते हैं। एक टैब अपनी विंडो का सक्रिय पेन दिखाता है। एक समय में एक सत्र; डिटैच करने से टैब समाप्त हो जाते हैं।
लिंक, ट्रिगर और प्रोफाइल
⌘-क्लिक लिंक खोलता है: URL ब्राउज़र में जाते हैं और फ़ाइल पथ Finder में प्रकट होते हैं। लिंक दृश्य रूप से तब तक अलग नहीं होते जब तक पॉइंटर उनके ऊपर ⌘ दबाए न हो, जब लिंक थीम एक्सेंट रंग और रेखांकन लेता है और कर्सर हाथ बन जाता है। केवल वे पथ जो डिस्क पर मौजूद हैं, पेश किए जाते हैं, और पंक्तियों में लिपटा URL एक पते के रूप में माना जाता है। ⌘-क्लिक रंग से अलग किए गए टेक्स्ट को भी कॉपी कर सकता है, जैसे इनलाइन कोड या उद्धृत ड्राफ्ट, टेक्स्ट और वर्ण गिनती दिखाने वाली पुष्टि के साथ।
ट्रिगर एक रेगेक्स को एक क्रिया के साथ जोड़ते हैं: हाइलाइट, पुनः रंग, रेखांकन, URL के रूप में खोलें, Finder में प्रकट करें, या $1 मैच के साथ कमांड चलाएँ। उन्हें सेटिंग्स में इनलाइन परीक्षक के साथ संपादित किया जाता है और triggers.json में संग्रहीत किया जाता है। उपयोगकर्ता नियम URL और फ़ाइल पथ के लिए दो अंतर्निहित नियमों से पहले आज़माए जाते हैं, जिन्हें अक्षम किया जा सकता है लेकिन संपादित नहीं किया जा सकता। प्रोफाइल एक नामित कमांड, प्रारंभिक निर्देशिका, पर्यावरण और वैकल्पिक पिन की गई थीम परिभाषित करते हैं, प्रत्येक profiles/ के अंतर्गत एक JSON फ़ाइल में संग्रहीत होता है ताकि उन्हें साझा या प्रतिबद्ध किया जा सके। वे फ़ाइल > नया टैब प्रोफाइल के साथ या ⌘⌥1–9 के माध्यम से खुलते हैं, और ⌘T डिफ़ॉल्ट प्रोफाइल का उपयोग करता है।
सेटिंग्स, थीम और कॉन्फ़िगरेशन
सेटिंग्स विंडो में उपस्थिति, प्रोफाइल, ट्रिगर, सामान्य और सूचनाएँ पैन हैं, जिसमें एक खोज क्षेत्र है जो नियंत्रणों को नाम या बोलचाल विवरण से ढूंढता है। थीम में टुमॉरो नाइट, सोलराइज़्ड (लाइट और डार्क), नॉर्ड, ड्रैकुला, ग्रुवबॉक्स डार्क और mTerm के अपने लाइट और डार्क शामिल हैं, iTerm2 .itermcolors फ़ाइलों के आयात और स्वचालित लाइट/डार्क स्विचिंग के साथ। फ़ॉन्ट परिवार, आकार, स्ट्रोक वेट और लाइन स्पेसिंग (1.0×–2.0×, डिफ़ॉल्ट 1.15×) लाइव समायोज्य हैं। स्क्रॉलबैक गहराई 1k से 100k लाइनों तक कॉन्फ़िगर करने योग्य है जिसमें प्रति-टैब लागत दिखाई जाती है। macOS सूचनाएँ टर्मिनल ध्यान घटनाओं (घंटी, OSC 9 / OSC 777) को कवर करती हैं। चल रहे फोरग्राउंड प्रोसेस के लिए क्लोज़-पुष्टि और क्लियर स्क्रीन पुष्टि टॉगल करने योग्य हैं। कॉन्फ़िगरेशन ~/Library/Application Support/mTerm/ में settings.json, state.json, profiles/*.json और triggers.json के अंतर्गत रहता है; v1 में कोई अलग कॉन्फ़िग फ़ाइल नहीं है।
स्थापना और स्थिति
स्थापना Homebrew cask (brew install --cask d0x2a/tap/mterm), एक हस्ताक्षरित और नोटराइज़्ड यूनिवर्सल DMG, या macOS 14+ और Xcode 15+ (या Swift 5.10+ कमांड-लाइन टूल) के साथ स्रोत से निर्माण करके swift run -c release mTerm का उपयोग करके की जाती है। परियोजना v1.3.1 पर है और बताती है कि इसकी SPEC.md परिभाषा में सभी आइटम शिप हो चुके हैं। यह रिपोर्ट करता है कि स्क्रॉलबैक मेमोरी लक्ष्य अतिरिक्त जगह के साथ पूरे होते हैं जबकि थ्रूपुट विनिर्देश के आकांक्षी आंकड़े से कम है; दोनों माप और हार्नेस docs/BENCHMARKS.md में प्रलेखित हैं। लाइसेंस MIT है, कॉपीराइट Dox2A Labs LLC।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.