senpai(5) File Formats Manual senpai(5) نام (NAME) senpai - قالب پرونده پیکربندی و تنظیمات توضیحات (DESCRIPTION) یک پرونده پیکربندی senpai یک پرونده با قالب scfg است. به https://git.sr.ht/~emersion/scfg مراجعه فرمایید. برخی تنظیمات الزامی و بقیه اختیاری هستند. تنظیمات (SETTINGS) address (الزامی) نشانی (host[:port]) سرور IRC. برنامه senpai به طور پیش‌فرض از اتصالات TLS استفاده می‌کند مگر اینکه گزینه tls را روی false تنظیم کنید. اتصالات TLS به طور پیش‌فرض از درگاه 6697 و اتصالات متن آشکار از درگاه 6667 استفاده می‌کنند. یک طرحواره (scheme) اختیاری می‌تواند مشخص شود (scheme://host[:port]): • irc:// پیش‌فرض ضمنی است، TLS با توجه به مقدار پیکربندی tls فعال یا غیرفعال می‌شود. • ircs:// پروتکل TLS را فعال می‌کند. • irc+insecure:// پروتکل TLS را غیرفعال می‌کند (IRC متن آشکار). • ircs+insecure:// پروتکل TLS را فعال می‌کند اما اعتبارسنجی گواهی TLS را نادیده می‌گیرد. این گزینه در برابر حملات غیرفعال MITM محافظت می‌کند اما در برابر حملات فعال MITM محافظتی ندارد. nickname (الزامی) نام مستعار شما، که با پیام IRC NICK ارسال می‌شود. این نام نباید شامل فاصله یا دونقطه (:) باشد. realname نام واقعی شما، یا در واقع فیلدی که برای دیگران در دسترس خواهد بود و ممکن است شامل فاصله و دونقطه باشد. با پیام IRC USER ارسال می‌شود. به طور پیش‌فرض، مقدار nick استفاده می‌شود. username نام کاربری شما، که با پیام IRC USER ارسال می‌شود و همچنین برای احراز هویت SASL استفاده می‌گردد. به طور پیش‌فرض، مقدار nick استفاده می‌شود. password گذرواژه شما، که برای احراز هویت SASL استفاده می‌شود. همچنین به password-cmd مراجعه فرمایید. password-cmd دستور [آرگومان‌ها...] به جای ارائه مستقیم گذرواژه احراز هویت SASL به صورت متن آشکار، می‌توانید دستوری را مشخص کنید که در زمان اجرا برای واکشی گذرواژه اجرا شود. این گزینه زمانی مفید است که گذرواژه‌های خود را در یک پرونده جداگانه (احتمالاً رمزنگاری‌شده) با استفاده از `gpg` یا یک مدیر گذرواژه خط فرمان مانند pass یا gopass ذخیره می‌کنید. اگر یک password-cmd ارائه شود، مقدار password نادیده گرفته شده و خط اول خروجی password-cmd برای ورود استفاده خواهد شد. دستور و آرگومان‌ها از قبل توسط scfg نقل‌قول می‌شوند، بنابراین نیازی به نقل‌قول اضافی کل رشته دستور نیست. برای مثال: password-cmd pass "Messaging/irc" channel فهرستی از نام‌های کانال جداشده با فاصله که senpai به طور خودکار در زمان راه‌اندازی و اتصال مجدد به سرور به آن‌ها ملحق می‌شود. این دستورالعمل می‌تواند چندین بار مشخص شود. این دستورالعمل هنگام استفاده از bouncer نباید استفاده شود، زیرا bouncer از قبل کانال‌های ذخیره‌شده را به خاطر سپرده و senpai را به طور خودکار به آن‌ها ملحق می‌کند. highlight فهرستی از کلیدواژه‌های جداشده با فاصله که در صورت بیان شدن توسط دیگران، یک اعلان و یک نشانگر نمایشی را ایجاد می‌کنند. این دستورالعمل می‌تواند چندین بار مشخص شود. به طور پیش‌فرض، senpai از نام مستعار فعلی شما استفاده خواهد کرد. on-highlight-beep فعال کردن ارسال نویسه زنگ (BEL) هنگام هایلایت شدن شما. پیش‌فرض غیرفعال است. pane-widths { ... } پیکربندی عرض بخش‌های مختلف رابط کاربری. عرض بخش‌ها به عنوان زیردستورالعمل‌های دستورالعمل اصلی pane-widths تنظیم می‌شوند: pane-widths { nicknames 16 } این دستورالعمل از زیردستورالعمل‌های زیر پشتیبانی می‌کند: nicknames تعداد سلول‌هایی که ستون نام‌های مستعار در تایم‌لاین اشغال می‌کند. به طور پیش‌فرض 14 است. channels تعداد سلول‌هایی که ستون کانال‌ها روی صفحه اشغال می‌کند. به طور پیش‌فرض 16 است. از مقدار ویژه 0 برای افقی کردن فهرست کانال‌ها استفاده کنید. اگر مقدار منفی باشد، فهرست کانال‌ها به طور پیش‌فرض افقی خواهد بود و هنگام تغییر وضعیت با F7، مقدار مثبت (معکوس) عرض را به خود می‌گیرد. members تعداد سلول‌هایی که ستون فهرست اعضای کانال روی صفحه اشغال می‌کند. به طور پیش‌فرض 16 است. از مقدار ویژه 0 برای غیرفعال کردن استفاده کنید. اگر مقدار منفی باشد، فهرست اعضا به طور پیش‌فرض غیرفعال خواهد بود و هنگام تغییر وضعیت با F8، مقدار مثبت (معکوس) عرض را به خود می‌گیرد. text حداکثر عرض خط متن پیام، بر حسب تعداد سلول‌ها. به طور پیش‌فرض، مقدار صفر است که به معنای نبود حداکثر می‌باشد. برای حفظ عرض خط خوانا در نمایشگرهای بزرگ مفید است. tls فعال کردن رمزنگاری TLS. پیش‌فرض true است. typings ارسال اعلان‌های تایپ که به دیگران اطلاع می‌دهد چه زمانی در حال تایپ پیام هستید. پیش‌فرض true است. mouse فعال یا غیرفعال کردن پشتیبانی از ماوس. پیش‌فرض true است. spell-check فعال کردن بررسی املا با استفاده از harper-ls. نیازمند نصب بودن harper-ls است. در حال حاضر فقط انگلیسی است. پیش‌فرض false است. colors { ... } تنظیمات رنگ‌های عناصر مختلف رابط کاربری. رنگ‌ها را می‌توان با نام ("red")، با شماره (از 0 تا 255 برای 256 رنگ پیش‌فرض ترمینال؛ -1 به معنی پیش‌فرض)، یا با رنگ واقعی هگزادسیمال RGB (#rrggbb) تنظیم کرد. رنگ‌ها به عنوان زیردستورالعمل‌های دستورالعمل اصلی colors تنظیم می‌شوند: colors { prompt green } ┌───────────────┬──────────────────────────────────────────────────────┐ │زیردستور │ توضیحات │ ├───────────────┼──────────────────────────────────────────────────────┤ │prompt │ رنگ برای پیش‌درآمد ">" که در حالت دستوری ظاهر می‌شود │ ├───────────────┼──────────────────────────────────────────────────────┤ │unread │ رنگ پیش‌زمینه برای نام بافرهای خوانده‌نشده در فهرست │ │ │ بافرها │ ├───────────────┼──────────────────────────────────────────────────────┤ │status [...] │ رنگ پیش‌زمینه برای خطوط رویدادهای وضعیت (مانند ورود، │ │ │ خروج، تغییر نام مستعار) در بافرها، جدول زیر را │ │ │ ببینید │ ├───────────────┼──────────────────────────────────────────────────────┤ │nicks [...] │ طرح رنگ برای نام‌های مستعار کاربران، جدول زیر را │ │ │ ببینید │ └───────────────┴──────────────────────────────────────────────────────┘ ┌────────────────┬─────────────────────────────────────────────────────┐ │زیردستور status │ توضیحات │ ├────────────────┼─────────────────────────────────────────────────────┤ │status │ نمایش رویدادهای وضعیت با رنگ مشخص‌شده │ ├────────────────┼─────────────────────────────────────────────────────┤ │status disabled │ پنهان کردن رویدادهای وضعیت │ └────────────────┴─────────────────────────────────────────────────────┘ ┌───────────────────────┬──────────────────────────────────────────────┐ │زیردستور nicks │ توضیحات │ ├───────────────────────┼──────────────────────────────────────────────┤ │nicks base │ نمایش نام‌های مستعار با 16 رنگ مختلف (پیش‌فرض) │ ├───────────────────────┼──────────────────────────────────────────────┤ │nicks extended │ نمایش نام‌های مستعار با 256 رنگ مختلف │ ├───────────────────────┼──────────────────────────────────────────────┤ │nicks fixed [] │ نمایش نام‌های مستعار با رنگ ثابت، با امکان │ │ │ تعیین اختیاری رنگ‌ها برای سایر نام‌ها │ ├───────────────────────┼──────────────────────────────────────────────┤ │nicks self │ نمایش نام مستعار خود با رنگ ثابت مشخص‌شده │ │ │ (می‌تواند در کنار سایر دستورالعمل‌ها اضافه │ │ │ شود) │ └───────────────────────┴──────────────────────────────────────────────┘ shortcuts { ... } تنظیمات کلیدهای میانبر سفارشی صفحه کلید. میانبرها با زیردستورالعمل‌های ` [...]` تعریف می‌شوند: shortcuts { Alt+k cursor-delete-after Shift+Alt+Page_Up set-editor "/me slaps OP with a large trout" } کلیدها شامل تغییردهنده‌های اختیاری (Control/Shift/Alt/Super) و نام یک کلید هستند، که می‌تواند یک نویسه تحت‌اللفظی (مثلاً k) یا نامی برای آن کلید برگرفته از نام‌های کلید XKB باشد (در لینوکس، برای یافتن نام کلیدها به wev مراجعه کنید، مانند Page_Up، XF86AudioPlay). یک میانبر سفارشی هر میانبر پیش‌فرضی را برای آن کلید بازنویسی خواهد کرد. ┌────────────────────────────┬─────────────────────────────────────────┐ │عملکرد (action) │ توضیحات │ ├────────────────────────────┼─────────────────────────────────────────┤ │none │ میانبر را پاک می‌کند، بدون هیچ عملیاتی │ ├────────────────────────────┼─────────────────────────────────────────┤ │quit │ ویرایشگر را پاک می‌کند، یا دستور `/quit` │ │ │ را تایپ می‌نماید │ ├────────────────────────────┼─────────────────────────────────────────┤ │set-editor │ ویرایشگر را در صورت خالی بودن روی متن │ │ │ ارائه‌شده تنظیم می‌کند │ ├────────────────────────────┼─────────────────────────────────────────┤ │cursor-start │ مکان‌نما را به ابتدای ویرایشگر منتقل │ │ │ می‌کند │ ├────────────────────────────┼─────────────────────────────────────────┤ │cursor-end │ مکان‌نما را به انتهای ویرایشگر منتقل │ │ │ می‌کند │ ├────────────────────────────┼─────────────────────────────────────────┤ │redraw │ پنجره را بازطراحی و تازه‌سازی می‌کند │ ├────────────────────────────┼─────────────────────────────────────────┤ │scroll-up │ پیمایش به سمت بالا در تایم‌لاین │ ├────────────────────────────┼─────────────────────────────────────────┤ │scroll-down │ پیمایش به سمت پایین در تایم‌لاین │ ├────────────────────────────┼─────────────────────────────────────────┤ │scroll-next-highlight │ رفتن به سمت پایین به هایلایت بعدی │ ├────────────────────────────┼─────────────────────────────────────────┤ │scroll-previous-highlight │ رفتن به سمت بالا به هایلایت قبلی │ ├────────────────────────────┼─────────────────────────────────────────┤ │buffer-next │ رفتن به بافر بعدی │ ├────────────────────────────┼─────────────────────────────────────────┤ │buffer-previous │ رفتن به بافر قبلی │ ├────────────────────────────┼─────────────────────────────────────────┤ │buffer-next-unread │ رفتن به بافر خوانده‌نشده بعدی │ ├────────────────────────────┼─────────────────────────────────────────┤ │buffer-previous-unread │ رفتن به بافر خوانده‌نشده قبلی │ ├────────────────────────────┼─────────────────────────────────────────┤ │cursor-right-word │ مکان‌نما را به کلمه بعدی منتقل می‌کند │ ├────────────────────────────┼─────────────────────────────────────────┤ │cursor-left-word │ مکان‌نما را به کلمه قبلی منتقل می‌کند │ ├────────────────────────────┼─────────────────────────────────────────┤ │cursor-right │ مکان‌نما را به نویسه بعدی منتقل می‌کند │ ├────────────────────────────┼─────────────────────────────────────────┤ │cursor-left │ مکان‌نما را به نویسه قبلی منتقل می‌کند │ ├────────────────────────────┼─────────────────────────────────────────┤ │cursor-up │ یک خط به عقب در ویرایشگر پیمایش می‌کند │ ├────────────────────────────┼─────────────────────────────────────────┤ │cursor-down │ یک خط به جلو در ویرایشگر پیمایش می‌کند │ ├────────────────────────────┼─────────────────────────────────────────┤ │cursor-delete-previous-word │ کلمه قبلی را در ویرایشگر حذف می‌کند │ ├────────────────────────────┼─────────────────────────────────────────┤ │cursor-delete-next-word │ کلمه بعدی را در ویرایشگر حذف می‌کند │ ├────────────────────────────┼─────────────────────────────────────────┤ │cursor-delete-previous │ نویسه قبلی را در ویرایشگر حذف می‌کند │ ├────────────────────────────┼─────────────────────────────────────────┤ │cursor-delete-next │ نویسه بعدی را در ویرایشگر حذف می‌کند │ ├────────────────────────────┼─────────────────────────────────────────┤ │cursor-delete-before │ از مکان‌نما تا ابتدای خط را حذف می‌کند │ ├────────────────────────────┼─────────────────────────────────────────┤ │cursor-delete-after │ از مکان‌نما تا انتهای خط را حذف می‌کند │ ├────────────────────────────┼─────────────────────────────────────────┤ │search-editor │ جستجوی معکوس در تاریخچه ویرایشگر │ ├────────────────────────────┼─────────────────────────────────────────┤ │auto-complete │ کادر گفتگوی تکمیل خودکار را باز یا │ │ │ گزینه آن را انتخاب می‌کند │ ├────────────────────────────┼─────────────────────────────────────────┤ │close-overlay │ هر بافر همپوشان باز (مانند نتایج جستجو) │ │ │ را می‌بندد │ ├────────────────────────────┼─────────────────────────────────────────┤ │toggle-channel-list │ نمایش یا پنهان کردن فهرست عمودی کانال‌ها │ ├────────────────────────────┼─────────────────────────────────────────┤ │toggle-member-list │ نمایش یا پنهان کردن فهرست عمودی اعضا │ ├────────────────────────────┼─────────────────────────────────────────┤ │send │ محتویات ویرایشگر را ارسال می‌کند │ ├────────────────────────────┼─────────────────────────────────────────┤ │buffer |last │ رفتن به بافر شماره‌گذاری‌شده با شاخص شروع │ │ │ از صفر، یا آخرین بافر │ └────────────────────────────┴─────────────────────────────────────────┘ debug پیشرفته. تخلیه تمام داده‌های ارسالی و دریافتی در بافر خانه، که برای اشکال‌زدایی مفید است. پیش‌فرض false است. transient پیشرفته. اجرای یک نمونه زودگذر و موقت بدون خواندن/نوشتن روی دیسک (به جز پیکربندی اولیه). می‌تواند برای نمونه‌های عمومی مفید باشد. پیش‌فرض false است. local-integrations پیشرفته. فعال کردن یکپارچه‌سازی با سیستم محلی (مانند اعلان‌ها از طریق DBus). غیرفعال کردن آن در سیستم‌هایی که قرار است از طریق SSH استفاده شوند می‌تواند مفید باشد. پیش‌فرض true است. on-highlight-path پیشرفته. برنامه senpai به طور پیش‌فرض بدون نیاز به اسکریپت هایلایت سفارشی به شما اطلاع‌رسانی می‌کند. مسیر جایگزین برای یک اسکریپت شل که هنگام هایلایت شدن شما اجرا شود. به طور پیش‌فرض، senpai به دنبال یک اسکریپت هایلایت شل در $XDG_CONFIG_HOME/senpai/highlight می‌گردد. اگر هیچ پرونده‌ای در آن مسیر یافت نشود و مسیر جایگزینی هم ارائه نشده باشد، اجرای دستور هایلایت غیرفعال می‌شود. در صورت عدم تنظیم، $XDG_CONFIG_HOME به طور پیش‌فرض ~/.config/ است. قبل از اجرای اسکریپت هایلایت، متغیرهای محیطی زیر مقداردهی می‌شوند: اسکریپت‌های شل باید اطمینان حاصل کنند که متغیرها در پرونده اسکریپت در داخل نقل‌قول (QUOTED) قرار دارند، در غیر این صورت در معرض حملات تزریق شل (SHELL INJECTION ATTACKS) خواهید بود. اسکریپت‌های شل همچنین باید اطمینان حاصل کنند که نویسه‌هایی مانند '*' و '?' بسط داده نمی‌شوند. ┌────────────┬─────────────────────────────────────────────────────────┐ │متغیر محیطی │ توضیحات │ ├────────────┼─────────────────────────────────────────────────────────┤ │BUFFER │ بافری که پیام در آن ظاهر شده است │ ├────────────┼─────────────────────────────────────────────────────────┤ │HERE │ برابر 1 اگر BUFFER بافر جاری باشد، در غیر این صورت 0 │ ├────────────┼─────────────────────────────────────────────────────────┤ │MESSAGE │ محتوای پیام │ ├────────────┼─────────────────────────────────────────────────────────┤ │SENDER │ نام مستعار فرستنده │ └────────────┴─────────────────────────────────────────────────────────┘ نکته: هنگام ارسال این متغیرها به notify-send(1)، برخی از دیمن‌های اعلان از \ برای دنباله‌های گریز در بدنه استفاده می‌کنند که باعث می‌شود \ از پیام ناپدید شود یا اثرات جانبی ناخواسته‌ای (مانند خطوط جدید) ایجاد کند. برای دور زدن این مشکل، می‌توانید با قطعه کد زیر بک‌اسلش را دو برابر کنید: #!/bin/sh escape() { printf "%s" "$1" | sed ´s#\\#\\\\#g´ } notify-send "[$BUFFER] $SENDER" "$(escape "$MESSAGE")" مثال‌ها (EXAMPLES) یک پرونده پیکربندی کمینه برای اتصال به Libera.Chat با عنوان "Guest123456": address irc.libera.chat nickname Guest123456 یک پرونده پیکربندی پیشرفته‌تر که گذرواژه را از یک برنامه خارجی واکشی می‌کند، عرض برخی بخش‌ها را تغییر می‌دهد و رنگ‌های بیشتری را برای نام‌های مستعار کاربران فعال می‌نماید: address irc.libera.chat nickname Guest123456 username senpai realname "Guest von Lenon" password-cmd gopass show irc/guest # use your favorite CLI password solution here channel "#rahxephon" pane-widths { nicknames 10 channels 16 members 16 } colors { nicks extended } shortcuts { Alt+k cursor-delete-after } همچنین ببینید (SEE ALSO) senpai(1) 2026-06-02 senpai(5)