2025 में टर्मिनल एम्युलेटर की स्थिति: भटकते चैंपियंस
(jeffquast.com)- Unicode support की सटीकता और performance के आधार पर प्रमुख terminal emulators की 2025 की तुलना प्रस्तुत की गई
- Ghostty Zig में नया विकसित किया गया terminal है, जिसने सबसे अधिक स्कोर दर्ज किया और सटीक Unicode handling लागू की
- Kitty ने Ghostty के लगभग समान स्तर का स्कोर हासिल किया और text segmentation algorithm सार्वजनिक करके standardization में योगदान दिया
- कई terminals में performance degradation और DEC Private Mode support mismatch की समस्या दिखी, खासकर VTE-आधारित terminals में कोई सुधार नहीं था
- variable-width text protocol के आने से single-width cell की सीमा से आगे बढ़कर कई भाषाओं की readability बेहतर करने की संभावना सामने आई
- Errant Champions (भटकते चैंपियंस): Ghostty और Kitty जैसे वे दावेदार जो पारंपरिक specifications पर टिके रहने के बजाय terminal के character width, rendering और Unicode समस्याओं को जड़ से फिर से डिज़ाइन कर रहे हैं
ucs-detect टूल और टेस्ट का अवलोकन
- 2023 में प्रकाशित Unicode support comparison experiment के अनुवर्ती अध्ययन के रूप में,
ucs-detectटूल में DEC Private Modes, sixel graphics, pixel size, और software version detection जोड़ी गई- यह टूल cursor position control sequence भेजता है और terminal के response की तुलना Python wcwidth के परिणामों से करके mismatch दर्ज करता है
- टेस्ट प्रत्येक terminal की character width calculation accuracy को verify करता है, और परिणाम Unicode support quality को संख्यात्मक रूप में दर्शाते हैं
character width की समस्या (The Width Problem)
- terminals को fixed-width grid के भीतर कई तरह के Unicode characters दिखाने पड़ते हैं, इसलिए एक संरचनात्मक सीमा मौजूद है
- combining characters, emoji sequences, Zero-width joiner आदि के कारण character width का अनुमान अक्सर विफल हो जाता है
- ऐसी त्रुटियां cursor position errors और output corruption पैदा करती हैं, और input position को भी बिगाड़ देती हैं
- टेस्ट के नतीजे उन terminals की पहचान करते हैं जिनमें ये समस्याएं सबसे कम होती हैं
Ghostty: नया दावेदार
- Ghostty 2025 में जारी किया गया नया terminal है, जिसे Zig भाषा में शुरुआत से विकसित किया गया
- सटीक Unicode support implementation के कारण इसकी accuracy सबसे अधिक रही और टेस्ट में इसने सर्वोच्च स्कोर हासिल किया
- डेवलपर Mitchell Hashimoto ने 2023 के Grapheme Clusters and Terminal Emulators लेख के जरिए बुनियादी सिद्धांतों का अध्ययन किया था
- नया घोषित libghostty, मौजूदा libvte का विकल्प बन सकता है और आगे terminal ecosystem को मजबूत Unicode foundation दे सकता है
Kitty: एक और चैंपियन
- Kitty ने Ghostty के लगभग बराबर स्कोर दर्ज किया और अपना text cell segmentation algorithm सार्वजनिक किया
- यह algorithm Python wcwidth specification के अनुरूप है और Unicode standard की व्याख्या पर आधारित है
- सिर्फ इन दो terminals ने Variation Selector 15 को सही तरह support किया
- यह feature व्यावहारिक रूप से बहुत उपयोगी नहीं है, लेकिन इसे भविष्य में Python wcwidth standard में शामिल किए जाने की योजना है
terminal emulator Unicode performance comparison का सार
- 1st Ghostty, 2nd Foot, 3rd Kitty शीर्ष स्थानों पर रहे
- तीनों terminals ने Unicode handling accuracy (WIDE/LANG/ZJW/VS16) श्रेणियों में सर्वोच्च स्कोर दर्ज किया
- Ghostty ने हर श्रेणी में 100 अंक लेकर कुल 100 का स्कोर हासिल किया, और DEC Modes भी enabled थे
- Kitty performance (Elapsed time 1748s) में कुछ धीमा रहा, लेकिन accuracy सर्वोच्च स्तर की थी
- VTE-आधारित terminals (GNOME Terminal, Terminator, LXTerminal आदि) निचले स्थानों पर बने रहे
- सभी का Final Scaled Score 5 या उससे कम रहा, और test time 8000~18000 सेकंड तक बहुत धीमा था
- 2023 की तरह इस बार भी कोई सुधार नहीं दिखा
- performance (Elapsed time) के लिहाज से Foot, WezTerm, tmux, Konsole तेज रहे (100 सेकंड से कम)
- iTerm2, Extraterm में CPU usage अधिक था और वे बहुत धीमे रहे (4000 सेकंड से अधिक)
- sixel graphics support शीर्ष terminals में भी केवल कुछ में उपलब्ध था
- Ghostty, Kitty, Konsole, contour इसे support करते हैं
- GNOME Terminal, VTE परिवार के अधिकांश terminals में यह support नहीं है
- Variation Selector 15 (VS15) को सही तरह support करने वाले terminals सिर्फ Ghostty और Kitty हैं
- Unicode handling की पूर्णता के मामले में ये दोनों project वास्तव में अलग ही स्तर पर हैं
performance analysis (The Long Road)
- कई terminals ने बहुत धीमा performance दिखाया, और टेस्ट पूरा होने में घंटों लग गए
- iTerm2 और Extraterm ने CPU का अत्यधिक उपयोग किया, इसलिए test time कम करना पड़ा
- GNOME Terminal और VTE-आधारित terminals में CPU usage कम था, लेकिन उन्हें 5 घंटे से अधिक लगे
- Python wcwidth उच्च-स्तरीय भाषा में होने के बावजूद अधिकांश terminals की गति के बराबर रहा
- performance optimization के लिए bit vectors, Bloom filters, LRU cache आदि आज़माए गए, लेकिन binary search + LRU cache का संयोजन सबसे प्रभावी निकला
- LRU cache दोहराए जाने वाले character sets को संभालने में प्रभावी रहा
- C module लाने पर भी विचार किया गया, लेकिन मौजूदा Python implementation से ही पर्याप्त performance मिल गई
असामान्य मामले और समस्याएं (Tilting at Edges)
- Terminology में हर run पर अलग परिणाम आया, जिससे internal state corruption की संभावना दिखी
- iTerm2 ने सभी DEC Private Modes को “supported but disabled” के रूप में report किया
- Konsole queries का जवाब नहीं देता, लेकिन कुछ modes enable करने पर support करता है
- Contour ने गलत mode number के साथ response दिया, इसलिए उसे “unsupported” के रूप में दिखाया गया, और 2024 दिसंबर release में ESC key setting bug भी था
- VTE/7600-आधारित terminals ने 2023 जैसा ही कम स्कोर बनाए रखा
- libvte project में Unicode सुधार पर चर्चा की आलोचना हुई, लेकिन emoji sequence support issue को 2026 के लिए सुधार के संकेत के रूप में देखा गया
Mode 2027 के बारे में
- Mode 2027 terminal की Unicode support को केवल “supported/unsupported” में बांटता है, लेकिन विस्तृत feature level नहीं बताता
- व्यवहार में ucs-detect की तरह individual features और codepoints को सीधे test करने का तरीका अधिक सटीक है
fixed width से आगे (Beyond Fixed Widths)
- fixed-width cell संरचना कई भाषाओं की readability कम कर देती है
- text sizing protocol इसे हल करने का नया तरीका प्रस्तुत करता है
- Kitty के Kovid Goyal ने इसे “Markdown file का title बड़ा देखना चाहता हूं” जैसे उदाहरण से समझाया
- यह feature accessibility सुधारने और complex character scripts की readability बेहतर करने की संभावना दिखाता है
- उदाहरण के तौर पर Contour और Kate editor में Khün भाषा के प्रदर्शन की तुलना में variable-width rendering ने अधिक स्पष्ट परिणाम दिया
- भविष्य की दिशा के रूप में ऐसा variable-width mode प्रस्तावित है, जिसमें font engine cell-स्तरीय बंधन के बिना text render कर सके
- text sizing protocol को अपनाना इस समस्या के समाधान की दिशा में प्रगति माना गया
15 टिप्पणियां
मैं wezterm की सिफारिश करता हूँ
मैं
xshell,iterm2इस्तेमाल कर रहा हूँ.. लगता है दूसरे वाले भी एक बार आज़माने चाहिएMac और Linux पर मैंने ghostty का काफ़ी इस्तेमाल किया है, लेकिन Windows में मुझे लगता है कि wezterm सबसे अच्छा है.
Windows यूज़र होने के नाते
मैं cygwin terminal (mintty) + mosh पर पूरी तरह से आकर टिक गया हूँ। कुल मिलाकर, ऐसा लगता है कि किसी चीज़ की कमी नहीं है।
Kitty के फीचर्स तो अच्छे हैं, लेकिन उसका maintainer इतना घटिया इंसान है कि Ghostty जैसा विकल्प सामने आया, यह देखकर खुशी होती है।
मैं बस Windows Terminal इस्तेमाल करता हूँ
आखिरकार फिर से iTerm2 पर लौट आया।
मैं हमेशा Gnome terminal पर वापस आ जाता हूँ...
अगर Ghostty या Kitty Windows को भी सपोर्ट करें तो बहुत अच्छा होगा. हाय
अगर config को अच्छी तरह tweak किया जाए, तो WezTerm भी काफी अच्छा लगा. (Windows support)
https://hi.news.hada.io/topic?id=9270
लगता है tabby ज़्यादा mainstream नहीं है.. ghostty एक बार इस्तेमाल करके देखना पड़ेगा
आह। ghostty का Windows वर्ज़न नहीं है;
LLM CLI प्रोग्रामों की वजह से टर्मिनल में भी अंग्रेज़ी के बाहर की कई भाषाओं का इस्तेमाल बढ़ेगा।
उस नज़रिए से देखें तो टर्मिनल एम्युलेटर का Unicode सपोर्ट वाकई बहुत महत्वपूर्ण लगता है।
अगर ghostty में सिर्फ
cmd+fफीचर आ जाए तो यह परफेक्ट लगेगा। इसके न होने से हल्की-सी असुविधा होती है.और split किए हुए state में इसे अलग window में कैसे अलग किया जाए, यह मुझे समझ नहीं आ रहा। क्या किसी को पता है? T_T
alacritty को नज़रअंदाज़ मत करो~~~
Hacker News राय
कंपनी के काम की वजह से पहली बार Windows Terminal इस्तेमाल किया
पूरी ज़िंदगी Linux पर ही development करता रहा, तो इस्तेमाल करके लगा कि Ctrl+C, Ctrl+V बहुत स्मार्ट तरीके से काम करते हैं
जब कोई selection नहीं होता, तब यह process interrupt करता है, और selection होने पर copy करता है; paste भी बस Ctrl+V से हो जाता है। सच में बहुत सुविधाजनक है
बस text select करो, और दूसरी window में middle mouse button से paste कर सकते हो
इसे Primary Selection कहा जाता है, और यह सामान्य clipboard (Ctrl+C/V) से अलग काम करता है। मुझे व्यक्तिगत रूप से यह तरीका ज़्यादा सुविधाजनक लगता है
दिलचस्प बात यह है कि जिन programs को हम आमतौर पर “terminal emulator” कहते हैं, वे वास्तव में terminal को पूरी तरह emulate नहीं करते
लेकिन अब यह संभव है। MAME से VT102 को सचमुच emulate करने का तरीका देख सकते हैं
यह WSL में भी चलता है, और
socatऔरmameको जोड़कर इसे असली hardware terminal की तरह इस्तेमाल किया जा सकता हैपहले कभी VT220 के लिए mouse control और paste जैसी सुविधाएँ जोड़कर एक high-level VT220 emulator बनाना चाहता था, यह लेख देखकर फिर से याद आ गया
KDE का Konsole ऊपर रैंक में देखना अच्छा लगा
यह दशकों पुराना terminal है, फिर भी आधुनिक terminals के साथ performance के मामले में बराबरी से प्रतिस्पर्धा कर रहा है
customization की पूरी आज़ादी है और speed भी काफ़ी तेज़ है
Dolphin में right-click करके उसी current folder में तुरंत Konsole खोल पाना खास तौर पर अच्छा लगता है
infinite scrollback feature भी उपयोगी है। पुराने logs अपने-आप file में swap हो जाते हैं, इसलिए खोते नहीं
Ctrl+Shift+X पर full reset shortcut सेट कर रखा है और अक्सर इस्तेमाल करता हूँ
संबंधित सामग्री के तौर पर
सूची में DECterm नहीं है
DECterm overview document से पता चलता है कि इसने X Window System में सबसे बेहतरीन VT220 emulation दिया था
VT100 के “double wide” या “double high, double wide” character modes को support करने वाले terminals बहुत कम हैं। वे विशाल अक्षर काफ़ी मज़ेदार थे
कुछ समय से Alacritty अच्छी तरह इस्तेमाल कर रहा था, लेकिन हाल में Ghostty आज़माया और हैरान रह गया
कई computers पर काम करते समय काम आने वाला built-in theme selector होने से यह बहुत सुविधाजनक है
कुल मिलाकर यह Alacritty से बेहतर विकल्प लगता है। developers ने सच में बहुत अच्छा बनाया है
tmux से इसकी नकल की जा सकती है, लेकिन बात पूरी तरह वैसी नहीं बनती
अगर Ghostty में Windows support भी आ जाए, तो यह लगभग perfect होगा
अच्छा होता अगर terminal किसी खास character list के लिए font support उपलब्ध है या नहीं, यह query कर पाता
इससे TUI programs modern Unicode या Private Use characters (जैसे powerline, font-awesome icons) इस्तेमाल करते समय, support न होने पर अपने-आप fallback characters दिखा सकते
Windows Terminal का ज़िक्र कम देखना थोड़ा अफ़सोसजनक है
Linux ecosystem ज़्यादा समृद्ध ज़रूर है, लेकिन अब WT कई Linux terminals से काफ़ी ऊपर है
10 साल पहले यह कल्पना भी नहीं की जा सकती थी
वैसे कभी-कभी यह वीडियो फिर से देखता हूँ; इसमें developers के नाम छिपे हुए easter egg की वजह से यह पसंद है
tabs, themes, और window names बदलने की सुविधा शानदार है, और हर window किस काम की है यह एक नज़र में समझ आ जाता है
Foot terminal भी शानदार है
यह सिर्फ Wayland के लिए है, लेकिन हल्का है और बहुत तेज़ी से शुरू होता है। resource usage भी कम है
Ghostty भी अच्छा था, लेकिन एक खाली terminal window खोलने भर में memory usage 10 गुना से ज़्यादा का फ़र्क है
macOS का default terminal इस बार के results में 29वें स्थान पर था
फिर भी हाल के versions (macOS 26) में यह Powerline और 24-bit color को support करता है