man(1) Profanity XMPP client man(1)

profanity - یک کلاینت سادهٔ گفتگوی XMPP مبتنی بر کنسول.

profanity [-vh] [-l level] [-a account]

Profanity یک کلاینت ساده و سبک‌وزن گفتگوی XMPP مبتنی بر کنسول است. تمرکز آن بر ارائه یک رابط کاربری خط فرمانی ساده و قابل پیکربندی است؛ صفحهٔ خانگی آن را ببینید در:

https://profanity-im.github.io

نمایش نسخه و اطلاعات ساخت.
نمایش راهنمای آرگومان‌های خط فرمان.
اتصال خودکار به یک حساب کاربری هنگام راه‌اندازی، ACCOUNT باید یک حساب موجود باشد.
استفاده از یک فایل پیکربندی جایگزین.
تعیین سطح ثبت لاگ، LEVEL می‌تواند روی DEBUG ،INFO (پیش‌فرض) ،WARN یا ERROR تنظیم شود.
مشخص کردن یک فایل لاگ متفاوت.
مشخص کردن دستوراتی که باید بلافاصله پس از راه‌اندازی اجرا شوند. این گزینه می‌تواند چندین بار مشخص شود، مانند:
profanity --cmd /foo --cmd "/sleep 10" --cmd /quit
مشخص کردن تم مورد استفاده. THEME باید یکی از تم‌های نصب‌شده در $XDG_CONFIG_HOME/profanity/themes باشد.

تکمیل خودکار بعدی، قبلی. برای دستورها، نام‌های مستعار و نقل‌قول‌ها (هنگامی که خط ورودی با > شروع می‌شود) کار می‌کند.
انتخاب پنجره ۱ تا ۱۰.
انتخاب پنجره ۱۱ تا ۲۰.
انتخاب پنجره گفتگوی قبلی.
انتخاب پنجره گفتگوی بعدی.
پیمایش پنجره فعال به بالا.
پیمایش پنجره فعال به پایین.
پیمایش پنل اعضا یا فهرست مخاطبان (roster) به بالا.
پیمایش پنل اعضا یا فهرست مخاطبان به پایین.
پیمایش به بالا. نکته: پشتیبانی محدود از پیمایش با چرخ ماوس؛ اگر می‌دانید چگونه برای سایر ترمینال‌ها پشتیبانی اضافه کنید، لطفاً با توسعه‌دهندگان تماس بگیرید.
پیمایش به پایین. نکته بالا را ببینید.
پرش به پنجره خوانده‌نشده بعدی.
علامت‌گذاری پنجره جاری با یک نشان توجه برای خواندن در آینده.
جابجایی بین پنجره‌های علامت‌گذاری‌شده با نشان توجه.
افزودن نویسه خط جدید بدون ارسال پیام یا دستور.
اجرای ویرایشگر خارجی (نگاه کنید به profanity-editor(1)) برای خط ورودی جاری.
ذخیره خط ورودی جاری در تاریخچه بدون اجرای آن.

نکته: برنامه Profanity از کتابخانه GNU Readline برای مدیریت ورودی استفاده می‌کند، بنابراین فایل پیکربندی پیش‌فرض ~/.inputrc بر عملکرد آن اثر می‌گذارد. علاوه بر آن، فایل $XDG_CONFIG_HOME/profanity/inputrc پس از تنظیم همه میان‌برهای پیش‌فرض خوانده می‌شود، بنابراین می‌توان در آنجا تنظیمات را بازنویسی کرد یا افزود. برای ارجاع، مستندات Readline را ببینید: info readline "Command Line Editing" "Readline Init File" "Readline Init File Syntax" و فهرست دستورات موجود Profanity در inputwin.c. کلیدهای میان‌بر استاندارد Readline پشتیبانی می‌شوند، از جمله C-r برای جستجوی تعاملی تاریخچه و C-x C-r برای بارگذاری دوبارهٔ inputrc بدون راه‌اندازی مجدد.

نخستین گام اتصال به یک سرور XMPP است. دستورات /connect و /account می‌توانند برای راه‌اندازی حساب‌های XMPP در profanity (نگاه کنید به profanity-connect(1) و profanity-account(1)) با یک حساب XMPP موجود به کار روند. دستور /register می‌تواند برای ثبت‌نام یک حساب در یک سرور استفاده شود: profanity-register(1) دستور /help commands connection را در profanity اجرا کنید تا دستورات بیشتری برای مدیریت اتصال شما نمایش داده شود.

فهرست مخاطبان (roster) همان دفترچه نشانی شما است. به‌طور پیش‌فرض، فهرست مخاطبان در «پنجره ۱» که همان /console در profanity است نشان داده خواهد شد. پنهان کردن آن با /roster hide و نمایش آن با /roster show در کنسول profanity امکان‌پذیر است. مخاطبان را می‌توان با /roster add JID افزود.

برای مشاهده وضعیت برخط مخاطبان، می‌توان از دستور /sub برای مدیریت اشتراک وضعیت حضور مخاطبان استفاده کرد. دستور /sub request یک درخواست ارسال می‌کند. دستور /sub allow برای تایید درخواست اشتراک یک مخاطب به کار می‌رود. از /help commands roster برای دریافت فهرستی از دستوراتی که می‌توانند برای مدیریت فهرست مخاطبان استفاده شوند کمک بگیرید.

پنجره‌های باز گفتگو با دستور /wins نشان داده می‌شوند. پرش به یک پنجره می‌تواند از طریق /win NUMBER یا /win JID انجام شود. برنامه profanity از تکمیل خودکار با کلید TAB پشتیبانی می‌کند. دستور /msg می‌تواند برای آغاز گفتگو با یک مخاطب به کار رود. گفتگوهای گروهی را می‌توان با دستور /join ملحق شد یا در نشانک‌های (bookmarks) حساب مدیریت کرد.

اگر گفتگوی گروهی در نشانک‌ها ذخیره شده باشد، می‌توان آن را روی پیوستن خودکار تنظیم کرد. اگر پیوستن خودکار خاموش باشد، از /bookmark join برای پیوستن به گفتگوی گروهی استفاده کنید. دستورهای /sendfile و /url می‌توانند برای به‌اشتراک‌گذاری و بارگیری فایل‌ها به کار روند. برای نقل‌قول پیامی موجود در پنجره گفتگو، > را وارد کرده و کلید TAB را فشار دهید.

راهنمای کاربر را می‌توان در نشانی https://profanity-im.github.io/userguide.html یافت.

پروگرام Profanity از انواع مختلف رمزنگاری پشتیبانی می‌کند: OMEMO، OTR، PGP، OX. در هر زمان برای هر مخاطب تنها می‌توانید یکی از آن‌ها را فعال کنید.

پروتکل OMEMO (/omemo) در XEP-0384 تعریف شده است. این پروتکل از پیاده‌سازی پروتکل Signal برای مدیریت کلیدها و همگام‌سازی پیام‌ها میان کلاینت‌های مختلف بهره می‌برد. این روش حتی زمانی که سایر کلاینت‌ها آفلاین هستند نیز کار می‌کند و رازداری پیشرو کامل (Perfect Forward Secrecy) و انکارپذیری موجه (Plausible deniability) را فراهم می‌کند. سرورها باید از PEP (XEP-0163) پشتیبانی کنند. ما نسخه «siacs» از OMEMO را پیاده‌سازی کرده‌ایم: نگارش 0.3.0 که در حال حاضر گسترده‌ترین گزینه پذیرفته‌شده است. قابلیت OMEMO تنها گزینه رمزنگاری در Profanity است که از رمزنگاری گفتگوهای گروهی MUCs (XEP-0045) و انتقال فایل از طریق بارگذاری HTTP (XEP-0363) نیز پشتیبانی می‌کند.
پروتکل OTR (/otr) در XEP-0364 تعریف شده است. این روش از ترکیبی از الگوریتم کلید متقارن AES، تبادل کلید Diffie–Hellman و تابع هش SHA-1 استفاده می‌کند. این پروتکل احراز هویت انکارپذیر و رازداری پیشرو کامل را فراهم می‌کند. برای راه‌اندازی یک نشست، هر دو کلاینت باید هم‌زمان برخط باشند. یک نشست میان دو کلاینت است، بنابراین گفتگوهای چندکلاینتی کار نمی‌کنند؛ که این یک قابلیت است نه یک باگ. پروتکل OTR ذاتاً برای MUCها کار نمی‌کند.
پروتکل OpenPGP (/pgp) در XEP-0027 تعریف شده است. از کلید عمومی و خصوصی استفاده می‌کند. همچنین با نام Legacy OpenPGP شناخته می‌شود و منسوخ شده است. این روش در برابر حملات بازپخش (replay attacks) محافظتی ارائه نمی‌دهد. گفتگوهای MUC و انتقال فایل از طریق بارگذاری HTTP در آن مشخص نشده‌اند و بنابراین پشتیبانی نمی‌شوند.
پروتکل OX (/ox) در XEP-0373 و XEP-0374 تعریف شده است. این یک روش مدرن‌تر برای استفاده از OpenPGP روی XMPP است و کاستی‌های نسخه قدیمی XEP-0027 را برطرف می‌کند. سرورها باید از PEP (XEP-0163) پشتیبانی کنند. گفتگوهای MUC و انتقال فایل از طریق بارگذاری HTTP در آن مشخص نشده‌اند و بنابراین پشتیبانی نمی‌شوند.
برای جزئیات بیشتر XEPهای مربوطه را مطالعه کرده و به نمای کلی در https://wiki.xmpp.org/web/XMPP_E2E_Security نگاهی بیندازید.

برخی اصطلاحات ویژه XMPP وجود دارند که ممکن است برای کاربران تازه ناشناخته باشند. ما سعی می‌کنیم آن‌ها را در اینجا توصیف کنیم زیرا اغلب در راهنما و صفحات man به آن‌ها ارجاع داده می‌شود.

مخفف Jabber ID است و به یک نشانی XMPP اشاره دارد. از نظر تاریخی XMPP با عنوان Jabber نیز شناخته می‌شد.
مخفف Message Archive Management (XEP-0313) است و توانایی ذخیره پیام‌ها بر روی سرور و بازیابی بعدی آن‌ها را توصیف می‌کند.
مخفف Multi-User Chats (XEP-0045) است و به آن‌ها گروه‌ها، گفتگوهای گروهی، اتاق‌های گفتگو یا کنفرانس‌ها نیز گفته می‌شود.
دفترچه یا فهرست مخاطبان شما است. به‌طور پیش‌فرض در سمت راست پنجره کنسول نمایش داده می‌شود. به RFC6121 مراجعه کنید.
پروتکل XMPP یک پروتکل توسعه‌پذیر است. قابلیت‌های هسته و قابلیت‌های اختیاری در پروتکل‌های گسترش XMPP، به اختصار XEPها، شرح داده شده‌اند.

انواع مختلفی از پیام‌ها وجود دارد:

پیام‌های 1:1 پیام‌های معمولی از یک طرف به طرف دیگر، از یک JID به JID دیگر هستند. اغلب طرف مقابل به فهرست مخاطبان شما افزوده شده است.
پیام‌های MUC پیام‌هایی از یک طرف به یک گفتگوی گروهی هستند.
پیام‌های MUC PM (پیام‌های خصوصی MUC) پیام‌هایی از یک طرف به طرف دیگری هستند که در همان گفتگوی گروهی حضور دارند. ممکن است JID این شخص را در فهرست مخاطبان خود نداشته باشید یا اصلاً از JID او آگاه نباشید. ارتباط بر روی MUC از طریق نام مستعار (nick) صورت می‌گیرد. فقط این دو طرف می‌توانند پیام را ببینند. در کلاینت اندرویدی Conversations این ویژگی با عنوان "whispering" (نجوا) نشان داده می‌شود. اگر کاربری یک MUC را ترک کند، کاربر دیگری می‌تواند با همان نام مستعار وارد MUC شود مگر اینکه نام مستعار ثبت شده باشد؛ که اغلب این‌طور نیست.

خود Profanity دارای راهنمای داخلی فراوانی است. دستور /help را برای اطلاعات بیشتر بررسی کنید. عبارت "/help help" را برای دریافت اطلاعات درباره چگونگی استفاده از خودِ راهنما وارد کنید. برنامه Profanity به همراه یک صفحه man برای هر دستور داخلی عرضه می‌شود، برای نمونه profanity-account(1) برای /account موجود است.

تنظیمات Profanity در $XDG_CONFIG_HOME/profanity/profrc ذخیره می‌شود. جزئیات دستورات مربوط به پیکربندی Profanity را می‌توان در https://profanity-im.github.io/reference.html یا در راهنماهای داخلی یا صفحات man مربوطه یافت.

باگ‌ها را می‌توان با ایجاد یک issue در ردیاب مشکلات گیت‌هاب گزارش کرد:

https://github.com/profanity-im/profanity/issues

یا به فهرست پستی در نشانی زیر ارسال نمود:

https://lists.posteo.de/listinfo/profanity

حق نشر (C) 2012 - 2019 متعلق است به James Booth <boothj5web@gmail.com>. حق نشر (C) 2019 - 2026 متعلق است به Michael Vetter <jubalh@iodoru.org>. مجوز GPLv3+: گنو GPL نسخه ۳ یا بالاتر https://www.gnu.org/licenses/gpl.html این یک نرم‌افزار آزاد است؛ شما در تغییر و بازتوزیع آن آزاد هستید. تا حد مجاز قانون، هیچ‌گونه ضمانتی وجود ندارد.

Profanity توسط James Booth ایجاد شده است <boothj5web@gmail.com> به همراه مشارکت‌های بسیار از سوی دیگران؛ فهرست کامل را در نشانی زیر مشاهده کنید: https://github.com/profanity-im/profanity/graphs/contributors

2026-06-08 0.18.2