প্রকল্প সম্পর্কে

mTerm হলো Swift-এ লেখা একটি নেটিভ macOS টার্মিনাল এমুলেটর, যা উইন্ডোর জন্য AppKit এবং টার্মিনাল ভিউয়ের জন্য একটি Metal রেন্ডারার ব্যবহার করে। এটি নিজেকে iTerm2-এর বিকল্প হিসেবে উপস্থাপন করে সেই ডেভেলপারদের জন্য যারা Mac-নেটিভ অনুভূতি, GPU-শ্রেণির রেন্ডারিং এবং বিশাল প্রেফারেন্স সারফেসের বদলে ইচ্ছাকৃতভাবে ছোট ফিচার সেট চান। এটি স্পষ্টভাবে AI ফিচার, ক্লাউড অ্যাকাউন্ট এবং শেল পুনর্নির্মাণ এড়িয়ে চলে। রেন্ডারিং এবং টার্মিনাল এমুলেশন টার্মিনাল ভিউটি Metal-রেন্ডারড, একটি পিক্সেল-স্ন্যাপড গ্লিফ অ্যাটলাসসহ, যা GPU ফিল্টারিং ব্লার ছাড়াই সব আকারে টেক্সট স্পষ্ট রাখার উদ্দেশ্যে তৈরি। বোল্ড এবং ইটালিক সিন্থেসাইজড স্ল্যান্টের বদলে ফন্টের আসল ফেস ব্যবহার করে, একই অ্যাডভান্স প্রস্থসহ যাতে কলামগুলো সারিবদ্ধ থাকে। আন্ডারলাইন, ফেইন্ট এবং ইনভার্স অ্যাট্রিবিউট সমর্থিত, সেগুলো বন্ধ করার কোডসহ। রিসাইজ করলে বাফার রিফ্লো হয়: র্যাপড লাইনগুলো পুনরায় যুক্ত হয় এবং নতুন প্রস্থে পুনরায় বিভক্ত হয়, এবং ড্র্যাগ করার সময় একটি গ্রিড-সাইজ রিডআউট দেখা যায়। সামঞ্জস্যতা vim, neovim, htop, fzf, less এবং git pager-এর মতো টুলের জন্য xterm-256color লক্ষ্য করে। এটি 24-বিট ট্রু কালার, alt-screen, স্ক্রল রিজিয়ন (DECSTBM), DEC লাইন ড্রয়িং এবং সিঙ্ক্রোনাইজড আউটপুট (DEC 2026) সমর্থন করে। মাউস রিপোর্টিং SGR (1006) এবং ক্লিক, ড্র্যাগ, মোশন ও হুইলের জন্য লিগ্যাসি এনকোডিং কভার করে, পরিবর্তে সিলেক্ট করতে ⇧ চেপে ধরে। ব্র্যাকেটেড পেস্ট, ফোকাস ইভেন্ট এবং ডিভাইস/কার্সর-পজিশন রিপোর্ট অন্তর্ভুক্ত। পূর্ব এশীয় এবং ফুলউইডথ অক্ষর দুটি কলাম দখল করে, এবং কম্বাইনিং মার্ক পূর্ববর্তী গ্লিফে মিলিত হয়। ট্যাব, নেভিগেশন এবং কমান্ড হাব AppKit উইন্ডোতে একটি ট্যাবড সাইডবার আছে যা পুনর্বিন্যাস করতে ড্র্যাগ করা যায়, ফুল-স্ক্রিন সমর্থন করে এবং সেশন (ট্যাব, তাদের ডিরেক্টরি এবং প্রোফাইল) পুনরুদ্ধার করে। ⌘K প্রতিটি উইন্ডোর প্রতিটি ট্যাব এবং প্রতিটি মেনু-বার কমান্ডের উপরে একটি হাব খোলে, একটি তালিকায় র‍্যাঙ্ক করা। ট্যাব সারিগুলো ইনডেক্স, রান স্টেট, টাইটেল, ডিরেক্টরি এবং ফোরগ্রাউন্ড প্রসেস দেখায়। একটি খালি কোয়েরি সাম্প্রতিক ট্যাব তালিকাভুক্ত করে পূর্ববর্তীটি সিলেক্ট করা অবস্থায়, তাই ⌘K ⏎ ফিরে যায়; ⌘⌫ হাইলাইট করা ট্যাব বন্ধ করে। অ্যাকশনগুলো ব্যবহারকারীরা যে শব্দ নিয়ে আসবেন তা দিয়ে সার্চ করা যায়, যেমন Clear Screen-এর জন্য "cls" বা স্ট্রোক ওয়েটের জন্য "blurry", যা সেই কন্ট্রোলে ফোকাস রিং রেখে Settings খোলে। শেল ইন্টিগ্রেশন এবং 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 ম্যাচ হিসেবে একটি কমান্ড চালানো। সেগুলো Settings-এ একটি ইনলাইন টেস্টার দিয়ে সম্পাদনা করা হয় এবং triggers.json-এ সংরক্ষিত হয়। URL এবং ফাইল পাথের জন্য দুটি বিল্ট-ইন রুলের আগে ব্যবহারকারীর রুল চেষ্টা করা হয়, যেগুলো নিষ্ক্রিয় করা যায় কিন্তু সম্পাদনা করা যায় না। প্রোফাইল একটি নামকৃত কমান্ড, শুরুর ডিরেক্টরি, এনভায়রনমেন্ট এবং ঐচ্ছিক পিনড থিম সংজ্ঞায়িত করে, profiles/ এর অধীনে প্রতিটি একটি JSON ফাইলে সংরক্ষিত যাতে সেগুলো শেয়ার বা কমিট করা যায়। সেগুলো File > New Tab with Profile বা ⌘⌥1–9 দিয়ে খোলে, এবং ⌘T ডিফল্ট প্রোফাইল ব্যবহার করে। সেটিংস, থিম এবং কনফিগারেশন Settings উইন্ডোতে Appearance, Profiles, Triggers, General এবং Notifications পেন আছে, একটি সার্চ ফিল্ডসহ যা নাম বা কথ্য বর্ণনা দিয়ে কন্ট্রোল খুঁজে পায়। থিমের মধ্যে Tomorrow Night, Solarized (লাইট ও ডার্ক), Nord, Dracula, Gruvbox Dark এবং mTerm-এর নিজস্ব লাইট ও ডার্ক রয়েছে, iTerm2 .itermcolors ফাইল ইমপোর্ট এবং স্বয়ংক্রিয় লাইট/ডার্ক সুইচিংসহ। ফন্ট ফ্যামিলি, সাইজ, স্ট্রোক ওয়েট এবং লাইন স্পেসিং (1.0×–2.0×, ডিফল্ট 1.15×) লাইভ সমন্বয়যোগ্য। স্ক্রলব্যাক গভীরতা 1k থেকে 100k লাইন পর্যন্ত কনফিগারযোগ্য, প্রতি-ট্যাব খরচ দেখানো হয়। macOS নোটিফিকেশন টার্মিনাল অ্যাটেনশন ইভেন্ট (বেল, OSC 9 / OSC 777) কভার করে। চলমান ফোরগ্রাউন্ড প্রসেসের জন্য ক্লোজ-কনফার্মেশন এবং Clear Screen কনফার্মেশন টগলযোগ্য। কনফিগারেশন ~/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।