কম্পিউটার টিউটোরিয়াল

Zellij: একটি গেম-চেঞ্জিং টার্মিনাল মাল্টিপ্লেক্সার যা Tmux এবং Screenকে প্রতিস্থাপন করেছে

টার্মিনাল মাল্টিপ্লেক্সার শুধু আপনার ওয়ার্কফ্লো সংগঠিত করল না; এগুলো আপনার ডেভেলপমেন্ট এনভায়রনমেন্টের সাথে ইন্টারঅ্যাক্ট করার পদ্ধতিকে সম্পূর্ণরূপে রূপান্তরিত করেছে। কোড ডিপ্লอย করা, সার্ভার ডিবাগ করা, বা শুধু স্ক্রিপ্ট নিয়ে টিংকার করা হোক—এগুলো आपको স্মূথ অপারেশন করতে সাহায্য করে। প্রচুর টার্মিনাল মাল্টিপ্লেক্সার রয়েছে, যেমন Tmux এবং Screen। কিন্তু আপনি যদি বিগিনার হন, তবে এগুলো জটিল বা কনফিগার করা কঠিন মনে হতে পারে। সেটাই যেখানে Zellij এসে পড়ে। এটি একটি সহজ বিকল্প প্রদান করে এবং কোনো সেটআপ ছাড়াই সেটা কাজ করে।

Zellij-এর মূল বৈশিষ্ট্যসমূহ

Zellij আধুনিক টার্মিনাল মাল্টিপ্লেক্সারের জন্য প্রয়োজনীয় সব ফিচার প্রদান করে। আসুন কিছু ফিচার পরীক্ষা করি:

  • Zellij ইনস্টলেশনের সাথে সাথে ব্যবহারযোগ্য হওয়া ডিজাইন করা হয়েছে, যadería কমপ্লেক্স কনফিগারেশন ফাইল তৈরি বা মেইনটেইন করতে হয় না।
  • এটি একটি বিল্ট-ইন টার্মিনাল ইউজার ইন্টারফেস প্রদান করে একটি পারসিস্টেন্ট স্ট্যাটাস বারের সাথে যা এক্টিভ কিবایندিংস, করেন্ট ইন্টারঅ্যাকশন মোড, এবং পেন বা ট্যাব ইনফো প্রদর্শন করে।
  • Zellij পেন, ট্যাব, এবং রিসাইজিং ম্যানেজ করার জন্য একটি স্পষ্ট মোড-ভিত্তিক ইন্টারঅ্যাকশন সিস্টেম ব্যবহার করে, প্রতিটি মোডের জন্য উপলব্ধ অ্যাকশন সরাসরি স্ক্রিনে দেখায়।
  • পেন সিস্টেম হরিজোন্টাল এবং ভার্টিক্যাল স্প্লিট, ইন্টুইটিভ কীবোর্ড নেভিগেশন, ডাইনামিক রিসাইজিং, 임시 কাজের জন্য ফ্লোটিং পেন, এবং অপশনাল মাউস ইন্টারঅ্যাকশন সাপোর্ট করে।
  • ট্যাব আপনাকে সম্পর্কিত পেনগুলো আলাদা ওয়ার্কস্পেসে গ্রুপ করার অনুমতি দেয়, একটি সিঙ্গেল সেশনে একাধিক টাস্ক বা প্রজেক্ট অর্গানাইজ করা সহজ করে দেয়।
  • Zellij আপনাকে পুনরায় ব্যবহারযোগ্য লেআউট টেমপ্লেট ডিফাইন করতে দেয় যেগুলো পেন পজিশন এবং স্টার্টআপ কমান্ড স্পেসিফাই করে, পুরো ওয়ার্ক এনভায়রনমেন্ট ইনস্ট্যান্টলি লঞ্চ করার সুযোগ দেয়।
  • Zellij একটি ব্যাকগ্রাউন্ড সার্ভার প্রসেস হিসেবে চলে, সেশনকে টার্মিনাল ক্র্যাশ, নেটওয়ার্ক ডিসকানেক্ট, এবং সিস্টেম রিস্টার্ট জুড়ে পারসিস্ট করতে দেয়, রি-অ্যাটাচ এবং সেশন রেজারেকশন সাপোর্টের সাথে।
  • Zellij একটি WebAssembly-ভিত্তিক প্লাগইন সিস্টেম অন্তর্ভুক্ত করে সেফ এক্সটেনসিবিলিটির জন্য এবং একটি ওয়েব ক্লায়েন্ট প্রদান করে ব্রাউজারের মাধ্যমে সেশন এক্সেস করার জন্য।

ইনস্টলেশন এবং কনফিগারেশন

সিস্টেম প্যাকেজ ম্যানেজারের মাধ্যমে Zellij ইনস্টল করা সুপারিশ করা পদ্ধতি, কারণ এটি সিস্টেমের বাকি অংশের সাথে ক্লিনলি ইন্টিগ্রেট হয়। উদাহরণস্বরূপ, Arch Linux-এ ইনস্টল করতে:

sudo pacman -S zellij

Fedora Linux-এ এটি ব্যবহার করুন:

sudo dnf install zellij

যদিও Zellij অধিকাংশ প্যাকেজ রিপোজিটরিতে উপলব্ধ, এটি Ubuntu বা Debian ডিস্ট্রিবিউশনে উপলব্ধ নয়। সেই ডিস্ট্রিবিউশনগুলোতে, আপনি Snap-এর মাধ্যমে ইনস্টল করতে পারেন।

sudo snap install zellij --classic

বিকল্পভাবে, যাদের Rust টুলচেইন ইনস্টল করা আছে, তারা Cargo-এর মাধ্যমে Zellij ইনস্টল করতে পারেন:

cargo install --locked zellij

এখানে, --locked ফ্ল্যাগ নিশ্চিত করে যে ভার্সন এবং ডিপেন্ডেন্সি প্রজেক্টটি যা টেস্ট করেছে সেটির সাথে মিলে।

অতিরিক্তভাবে, Zellij একটি লাইটওয়েট লঞ্চ স্ক্রিপ্ট প্রদান করে যা এটি পেরমানেন্ট ইনস্টলেশন ছাড়াই চালাতে দেয়। এটি কুইক ইভ্যালুয়েশন বা টেম্পোরারি এনভায়রনমেন্টের জন্য উপযোগী।

bash 

শেষে, macOS-এ, Zellij সাধারণত Homebrew ব্যবহার করে ইনস্টল করা হয়:

brew install zellij

যেকোনো সাপোর্টেড মেথড ব্যবহার করে ইনস্টল করার পর, আপনি টাইপ করে Zellij লঞ্চ করতে পারেন:

zellij
Zellij: একটি গেম-চেঞ্জিং টার্মিনাল মাল্টিপ্লেক্সার যা Tmux এবং Screenকে প্রতিস্থাপন করেছে

ইন্টারফেস টার্মিনালের ভিতরে একটি ফাংশনাল ডিফল্ট লেআউটের সাথে তাত্ক্ষণিকভাবে খুলে যায়। আপনি এখন কোনো পূর্ব কনফিগারেশন ছাড়াই পেন, ট্যাব, এবং সেশন ব্যবহার করতে পারেন।

নোট: বর্তমানে, Zellij Unix-লাইক সিস্টেমের (Linux এবং macOS) জন্য ডিজাইন করা হয়েছে। Windows ব্যবহারকারী WSL (Windows Subsystem for Linux) এর মাধ্যমে এটি চএলাতে পারেন চমৎকার ফলাফল পেয়ে।

কনফিগারেশন ফাইল কাস্টমাইজ করা

Zellij ব্যবহারযোগ্য হওয়ার জন্য কোনো কনফিগারেশন ফাইল আপেক্ষা করে না। যাইহোক, আপনি যদি আচরণ কাস্টমাইজ করতে চান, তবে আপনি KDL (KDL Document Language) এ লেখা একটি কনফিগারেশন ফাইল এর মাধ্যমে তা করতে পারেন, যা রিডেবিলিটি এবং ফ্লেক্সিবিলিটিতে জোর দেয়। কনফিগারেশন ফাইলটি “~/.config/zellij/config.kdl” এ অবস্থিত।

এই ফাইল মাধ্যমে, আপনি কিবایندিংস কাস্টমাইজ করতে পারেন, ডিফল্ট লেআউট ডিফাইন করতে পারেন, ইন্টারফেস আচরণ সমান্বয় করতে পারেন, প্লাগইন কনফিগার করতে পারেন, এবং থিম পরিবর্তন করতে পারেন। এই অপশনগুলো সম্পূর্ণ অপশনাল এবং আপনার ওয়ার্কফ্লো রিকোয়ারমেন্টের সাথে সাথে ধীরে ধীরে চালু করা যাবে।

Zellij: একটি গেম-চেঞ্জিং টার্মিনাল মাল্টিপ্লেক্সার যা Tmux এবং Screenকে প্রতিস্থাপন করেছে

পরিবর্তনগুলো সেভ করার পর Zellij রিস্টার্ট করুন পরিবর্তনগুলো ইফেক্ট নেওয়ার জন্য। তারপর আপনার ওয়ার্কফ্লো 니ডস অনুযায়ী সেটিংস সামঞ্জস্য করুন।

লেআউট, সেশন, এবং কিবایندিংস যা শেষ পর্যন্ত অর্থপূর্ণ

Zellij লেআউট সবকিছু দৃশ্যমান করে। আপনি এটি খোলার সাথে সাথে, একটি পারসিস্টেন্ট স্ট্যাটাস বার আপনার করেন্ট মোড এবং উপলব্ধ কিজ দেখায়, যাতে আপনাকে কখনো অনুমান করতে হয় না পেন বা ট্যাব কীভাবে ম্যানেজ করতে হয়। এটি সেই কনস্ট্যান্ট কনটেক্সট-স্যুইচিংকে সরিয়ে ফেলে যা অন্যান্য টার্মিনাল মাল্টিপ্লেক্সারে আপনাকে স্লো করে।

Zellij: একটি গেম-চেঞ্জিং টার্মিনাল মাল্টিপ্লেক্সার যা Tmux এবং Screenকে প্রতিস্থাপন করেছে

আপনি একবার আপনার লেআউট ডিফাইন করুন, এবং Zellij সবকিছু ঠিক সেই অবস্থায় রিস্টোর করে যেভাবে আপনি ছেড়ে দিয়ে গিয়ে ছিলেন, চলমান প্রসেস, লগ, পেন পজিশন, এবং স্ক্রোল ইতিহাসসহ। প্রজেক্টের মাঝপথে স্যুইচিং সেকেন্ডের বিষয়, প্রতিবার কাজ শুরু করার সময় ম্যানুয়ালি রি-অ্যারেঞ্জ করার প্রয়োজন নেই।

একটি আরো গুরুত্বপূর্ণ দিক হলো Zellij কিবাইনডিংস মোডের মাধ্যমে বাঁধে। এর মানে হলো কমপ্লেক্স কি কম্বিনেশনের বদলে, আপনি একটি মোডে প্রবেশ করেন এবং সিম্পল, মেমরেবল কি ব্যবহার করেন। এটি Zellij কে শেখা সহজ এবং ব্যবহার দ্রুত করে।

প্লাগইন এবং এক্সটেনশন দিয়ে Zellij প্রসারিত করুন

এই জায়গা থেকে Zellij একটি সিম্পল টুল থেকে একটি পাওয়ারফুল ওয়ার্কস্পেস-এ রূপান্তরিত হয়। প্লাগইন সিস্টেম WebAssembly (WASM) ব্যবহার করে, অর্থাৎ এটি দ্রুত, ক্র্যাশ-প্রুফ, এবং যেকোনো কম্পিউটারে একইভাবে কাজ করে। যেহেতু সেগুলো একটি সিকিউর স্যান্ডবক্সে চলে, আপনি কমিউনিটি টুলস আউট করুন না চিন্তা করে যে সেগুলো আপনার পুরো টার্মিনাল সেশন ক্র্যাশ করাবে।

আউট অফ দ্য বক্স, Zellij অপরিহার্য কিছু টুল অন্তর্ভুক্ত করে যা জীবন সহজ করে। আমার প্রিয় হলো Strider, একটি বিল্ট-ইন ফাইল ম্যানেজার যা VS Code-এর সাইডবারের মতো দেখায়; এটি আপনাকে টার্মিনাল ছাড়াই ফাইল ব্রাউজ এবং খোলার সুযোগ দেয়। আপনি একটি সেশন ম্যানেজারও পাবেন, যা একটি ভিজুয়াল ড্যাশবোর্ড হিসেবে কাজ করে আপনাকে ডিফারেন্ট প্রজেক্ট নাম দিতে, অর্গানাইজ করতে, এবং স্যুইচ করতে সাহায্য করে ইনস্ট্যান্টলি।

Zellij: একটি গেম-চেঞ্জিং টার্মিনাল মাল্টিপ্লেক্সার যা Tmux এবং Screenকে প্রতিস্থাপন করেছে

আপনি আপনার স্ট্যাটাস বারও কাস্টমাইজ করতে পারেন আপনার প্রয়োজন অনুযায়ী দেখাতে, যেমন আপনার করেন্ট ব্যাটারি লাইফ বা এক্টিভ Git ব্রাঞ্চ।

Zellij বনাম Tmux: আপনি আসলে স্যুইচ করবেন কি?

Tmux একটি টেস্টেড এবং আস্থাবান টার্মিনাল মাল্টিপ্লেক্সার যা লাইটওয়েট, বিশ্বস্ত, এবং почти প্রতিটি সার্ভারে পাওয়া যায়। এটি রিমোট মেশিনে কাজ করার জন্য আদর্শ যেখানে নতুন সফ্টওয়্যার ইনস্টল করা অপশন নেই। যদিও Tmux প্রায় সবকিছু হ্যান্ডেল করতে পারে, এটি বিগিনারদের জন্য প্রায়শই জটিল মনে হয়।

Zellij: একটি গেম-চেঞ্জিং টার্মিনাল মাল্টিপ্লেক্সার যা Tmux এবং Screenকে প্রতিস্থাপন করেছে

বিপরীতে, Zellij আধুনিক ডেভেলপমেন্ট ওয়ার্কফ্লো সাপোর্ট করে, বিশেষ করে লোকাল মেশিনে। এটি আউট-অফ-দ্য-বক্স ভালো কাজ করে, ইন্টুইটিভ মাউস সাপোর্ট, এক্টিভ কিজ দেখানো একটি পারসিস্টেন্ট স্ট্যাটাস বার, এবং একটি ফ্লেক্সিবল লেআউট ইঞ্জিন যা ফ্লোটিং পেন সাপোর্ট করে। এই ফিচারগুলো একাধিক উইন্ডো ম্যানেজ করা প্রাকৃতিক করে তোলে, সেই friCTION কমিয়ে দেয় যা Tmux-এ আপনাকে স্লো করে।

তাহলে আপনি স্যুইচ করবেন কি? আপনি যদি একজন ডেভেলপার হন যিনি অধিকাংশ সময় লোকাল মেশিনে কাটান, একজন বিগিনার যিনি Tmux देखकर ভয় পান, বা যেউনো কেউ কমপ্লেক্স কনফিগারেশন থেকে ফ্রাস্ট্রেটেড, আপনি Zellij আরও সহজে আডপ্ট করতে পারবেন এবং আরও প্রোডাক্টিভ হবেন। যারা মূলত রিমোট সার্ভারে কাজ করেন বা যাদের ইতিমধ্যে একটি পারফেক্ট Tmux সেটআপ আছে, তাদের স্যুইচ করার প্রয়োজন নেই।

চূড়ান্ত মতামত

আপনি যদি টার্মিনালে উল্লেখযোগ্য পরিমাণ সময় কাটান, তবে Zellij-এ একবার চান্স দিন। এটি টার্মিনাল ব্যবহারকারীদের জন্য একটি গরেট ফিট যারা একটি অর্গানাইজড ওয়ার্কস্পেসে দক্ষতার সাথে কাজ করতে চান। অতিরিক্তভাবে, আপনি যদি এমন টুল খুঁজছেন যা টার্মিনালকে আরও এনজয়েবল করে, এই গাইডটি চেক আউট করার লायक।

  1. ম্যাকবুক চার্জ না হলে কী করবেন? সমাধান গাইড

  2. ম্যাকএ 'অন্যান্য' (Other) স্টোরেজ কী? এটি ক্লিয়ার করার সহজ গাইড

  3. উইন্ডোজ ১১-এ অ্যান্ড্রয়েড অ্যাপ এখন উপলব্ধ: ধাপে ধাপে গাইড

  4. Windows 10-এ iTunes Error Code 1671 সমাধান