# উইচ্যাট (weechat) : আইআরসি ক্লায়েন্ট

IRC বা Internet reley chat একটি অতি পুরনো চ্যাট প্রোটোকল। আধুনিক অনেক চ্যাটিং মেথড আসার পরও এটি জনপ্রিয়তা পুরোপুরি হারায়নি। বিশেষকরে প্রোগ্রামাররা এটি এখনো ব্যবহার করেন। এটি কম রিসোর্সে ব্যবহার করা যায় এবং মূলত গ্রুপ চ্যাটের জন্য সুবিধাজনক। অনেকেই অনলাইন মিটিংপ্লেস হিসেবে আইআরসি ব্যবহার করেন। ব্যবহারের জন্য আপনাকে একটি আইআরসি ক্লায়েন্ট এর সাহায্যে সার্ভারের সাথে সংযুক্ত হতে হবে। তারপর আপনি বিভিন্ন রুমে (room) এ জয়েন করে চ্যাট করতে পারেন। ইন্টারনেটে বিষয়ভিত্তিক বিভিন্ন রুম পাবেন। প্রয়োজনে নিজেও তৈরী করতে পারেন।

আপনার কম্পিউটারে weechat প্যাকেজটি ইন্সটল করুন এবং তারপর টার্মিনালে লিখুন `weechat`। এমনকিছু দেখতে পাবেন:

```
WeeChat 1.1.1 (C) 2003-2015 - https://weechat.org/
13:15:35 |   ___       __         ______________        _____
13:15:35 |   __ |     / /___________  ____/__  /_______ __  /_
13:15:35 |   __ | /| / /_  _ \  _ \  /    __  __ \  __ `/  __/
13:15:35 |   __ |/ |/ / /  __/  __/ /___  _  / / / /_/ // /_
13:15:35 |   ____/|__/  \___/\___/\____/  /_/ /_/\__,_/ \__/
13:15:35 | WeeChat 1.1.1 [compiled on Jan 27 2015 11:17:07]
13:15:35 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
13:15:35 | Bar "input" created
13:15:35 | Bar "title" created
13:15:35 | Bar "status" created
13:15:35 | Bar "nicklist" created
13:15:37 | Plugins loaded: alias, aspell, charset, exec, fifo, guile, irc, logger, lua, perl, python,
         | relay, ruby, script, tcl, trigger, xfer














[13:15] [1] [core] 1:weechat
```

## সার্ভার সেটআপ

এবার আমাদের একটি সার্ভারে সংযুক্ত হওয়ার পালা। আমরা freenode ব্যবহার করবো। কারন এটি ফ্রী, সবচেয়ে বেশি ব্যবহারকারীও সম্ভবত এখানে এবং #bddevs এর মত বাঙলাদেশিদের জন্য অসাধারণ রুমটি এখানে পাবেন। আমাদের সার্ভারের লিস্টে ফ্রীনোড সংযুক্ত করবো এভাবে:

```
/server add freenode chat.freenode.net
```

প্রথমে `/server add দিয়ে আমরা সার্ভারের লিস্টে এ্যাড করার কমান্ড দিচ্ছি।`freenode`হল সার্ভারের নাম। এটি আপনি যেকোনোকিছু দিতে পারেন। তারপর`chat.freenode.net\` হচ্ছে সার্ভারের এড্রেস।

আইআরসিতে সবাই আপনাকে চিনবে আপনার নিকনেম দিয়ে। আমরা কয়েকটা নিকনেম পছন্দ করবো। যেন একটা যদি কেউ ব্যবহার করে তো পরেরটা আমরা নিতে পারি:

```
/set irc.server.freenode.nicks "sh.howtocode,sh_howtocode,sh-howtocode"
```

এখানে আমরা sh.howtocode, sh\_howtocode ও sh-howtocode এই তিনটি নিক ব্যবহার করেছি।

এবার আমরা ইউজারনেম এবং রিয়েল নেম সেট করবো এভাবে:

```
/set irc.server.freenode.username "sh.howtocode"
/set irc.server.freenode.realname "sh howtocode"
```

## কানেকশন

এবার আমরা আমাদের কনফিগার করা freenode সার্ভারে কানেক্ট করতে পারি এভাবে:

```
/connect freenode
```

এবার আমরা #bddevs চ্যানেল/রুমে যুক্ত হবো এভাবে:

```
/join #bddevs
```

জয়েন করার পর আমরা দেখতে পাবো চ্যানেলের স্ক্রীনে তিনটি অংশ। সবচেয়ে বামপাশে সময়, মাঝখানে চ্যাট এবং ডানদিকে ইউজার লিস্ট।

## প্রাইভেট মেসেজ

কোনো ইউজার, মনে করি তার নিকনেম git\_howtocode হলে তার সাথে প্রাইভেট চ্যাট ওপেন করতে পারি এভাবে:

```
/query git_howtocode
```

## বাফার

প্রত্যেকটি চ্যাট চ্যানেল, সার্ভারগুলি আলাদা আলাদা বাফারে খোলে। আপনি সব বাফারগুলো দেখতে পারেন `/buffer` কমান্ড দিয়ে।

## বন্ধ করা

কোনো বাফার বন্ধ করতে অর্থাৎ চ্যাট চ্যানেল বন্ধ করতে `/close` কমান্ড দিবেন। এবং `weechat` বন্ধ করে `/quit`।

## নিক রেজিস্ট্রেশন

কোনো নিকনেম আগে কেউ রেজিস্টার করে না রাখলে আপনি সেটি রেজিস্টার করে রাখতে পারেন। মনে করুন আপনি এখন `sh-howotocode` নিকটি ব্যবহার করছেন। এটি রেজিস্টার করতে কানেক্টেড অবস্থায় আপনাকে লিখতে হবে:

```
/msg nickserv register my_passoword my_email_address
```

my\_passoword ও my\_email\_address এড্রেসের জায়গায় পছন্দনীয় একটি পাসওয়ার্ড ও একটি সক্রিয় ইমেইল এড্রেস দিতে হবে। তারপর আপনার মেইল এড্রেসে একটি কনফার্মেশন মেইল যাবে। কনফার্ম করার পর নিকটি আপনার জন্য রেজিস্টার্ড হয়ে থাকবে। পরবর্তীতে আপনি অথেনটিকেট করতে পারবেন এভাবে:

```
/msg nickserv identify my_password
```

## অটোমেশন

`weechat` চালু হতেই যদি কোনো সার্ভারে সবসময়ই স্বয়ংক্রিয়ভাবে কানেক্ট করতে চান তাহলে লিখতে পারেন:

```
/set irc.server.server_name.autoconnect on
```

এখানে server\_name এর জায়গায় `freenode` দিলে আমাদের কনফিগার করা `freenode` সার্ভারে স্বয়ংক্রিয়ভাবে কানেক্ট করবে।

সার্ভারে কানেক্ট করার পর কিছু কাজ আমরা প্রায়ই করতে পারি। যেমন আমাদের নিক আইডেন্টিফাই করতে পারি। কানেক্টের পরই কোনো কমান্ড যদি অটোমেটিকালি ব্যবহার করতে চাই তাহলে তা করতে পারি এভাবে:

```
/set irc.server.freenode.command "/msg nickserv identify my_password"
```

এখানে আমরা `freenode` সার্ভারের জন্য একটি কমান্ড দিচ্ছি যেটা কিনা নিকনেম আইডেন্টিফাই করবে। আমরা একাধিক কমান্ড `;` চিহ্ন দিয়ে আলাদা করে একসাথে দিতে পারি।

কানেক্ট করার পর `#bddevs` চ্যানেলে স্বয়ংক্রিয়ভাবে যুক্ত হতে পারি এভাবে:

```
/set irc.server.freenode.autojoin "#bddevs"
```

## অনলাইন হেল্প

সকল কমান্ডের জন্য হেল্প পেতে আপনাকে লিখতে হবে `/help` এবং নির্দিষ্ট কোনো কমান্ড সম্পর্কে জানতে `/help command`। এখানে command এর জায়গায় যে কমান্ডটি সম্পর্কে জানতে চান সেটির নাম।

একই ভাবে, সকল অপশনব সম্পর্কে জানতে লিখুন `/set`। আপনি তখন উইচ্যাট ও তার সকল প্লাগিনের অপশনগুলো দেখতে পাবেন। শুধু উইচ্যাটের অপশন দেখতে `/set weechat.*` এবং শুধউ আইআরসি প্লাগিনের অপশন দেখতে `/set irc.*` ব্যবহার করুন। নির্দিষ্ট একটি অপশন সম্পর্কে জানতে:

```
/set our.option.name
```

`our.option.name` এর জায়গায় আপনার অপশনটি।

এবার জেনে নেয়া যাক কিছু গুরুত্বপূর্ণ শর্টকাট:

| শর্টকাট                         | কাজ                                                                 |
| ------------------------------- | ------------------------------------------------------------------- |
| Alt+left/right Arrow অথবা F5/F6 | পূর্ববর্তী বা পরবর্তী বাফারে যাবে।                                  |
| F7/F8                           | পূর্ববর্তী বা পরবর্তী উইন্ডোতে যাবে (যদি স্ক্রীন স্প্লিট করা থাকে)। |
| F9/F10                          | টাইটেলবারে স্ক্রল করবে।                                             |
| F11/F12                         | নিকলিস্টে স্ক্রল করবে।                                              |
| Tab                             | শেলের মত লেখা অটোকম্প্লিট করবে।                                     |
| PgUp/PgDn                       | বর্তমান বাফারের টেক্সটে স্ক্রল করবে।                                |
| Alt+a                           | যে বাফারে সম্প্রতি কোনো বার্তা এসেছে সেই বাফারে যাবে।               |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://sh.howtocode.dev/3.0.0.part3intro/3.7.0.essential-tools/3.7.5.weechat.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
