.\" Automatically generated by Pandoc 3.2 .\" .TH "rofi\-script" "5" "" "rofi" "راهنمای قالب‌های فایل" .SH "نام (NAME)" rofi-script \- حالت اسکریپت در rofi برای گسترش‌پذیری با اسکریپت‌ها .SH "توضیحات (DESCRIPTION)" برنامه \f[B]rofi\f[R] از حالت‌هایی پشتیبانی می‌کند که در پس‌زمینه از اسکریپت‌های ساده برای تولید یک فهرست و پردازش نتیجه اقدامات کاربر استفاده می‌کنند. این سازوکار یک رابط ساده برای افزودن افزونه‌های سفارشی به rofi فراهم می‌آورد. .SH "نحوه استفاده (USAGE)" برای تعیین یک حالت اسکریپتی، حالتی با ساختار نگارشی زیر تنظیم کنید: \[lq]{name}:{executable}\[rq] .PP به‌عنوان مثال: .IP .EX rofi \-show fb \-modes \[dq]fb:file_browser.sh\[dq] .EE .PP مقدار name باید یکتا باشد. .SH "رابط برنامه‌نویسی (API)" برنامه Rofi هنگام راه‌اندازی فایل اجرایی را بدون آرگومان فراخوانی می‌کند. این اجرا باید فهرستی از گزینه‌ها را که با خط جدید (\f[B]\[rs]n\f[R]) از یکدیگر جدا شده‌اند تولید کند (این جداکننده توسط اسکریپت قابل تغییر است). اگر کاربر گزینه‌ای را انتخاب کند، rofi فایل اجرایی را همراه با متن آن گزینه به‌عنوان نخستین آرگومان فراخوانی می‌کند. اگر اسکریپت هیچ ورودی بازنگرداند، rofi بسته می‌شود. .PP یک اسکریپت ساده می‌تواند به‌شکل زیر باشد: .IP .EX \f[I]#!/usr/bin/env bash\f[R] \f[B]if\f[R] [ x\[dq]$\[at]\[dq] = x\[dq]quit\[dq] ] \f[B]then\f[R] exit 0 \f[B]fi\f[R] echo \[dq]reload\[dq] echo \[dq]quit\[dq] .EE .PP این اسکریپت دو مدخل reload و quit را نشان می‌دهد. هنگامی که مدخل quit انتخاب شود، rofi بسته خواهد شد. .SH "محیط (Environment)" برنامه Rofi هنگام اجرای اسکریپت متغیرهای محیطی زیر را مقداردهی می‌کند: .SS \f[B]ROFI_RETV\f[R] یک عدد صحیح که بیانگر وضعیت فعلی است: .IP \[bu] 2 \f[B]0\f[R]: فراخوانی اولیه اسکریپت. .IP \[bu] 2 \f[B]1\f[R]: یک مدخل انتخاب شده است. .IP \[bu] 2 \f[B]2\f[R]: یک مدخل سفارشی انتخاب شده است. .IP \[bu] 2 \f[B]3\f[R]: یک مدخل حذف شده است. .IP \[bu] 2 \f[B]10\-28\f[R]: کلیدهای میانبر سفارشی ۱\-۱۹ (باید به‌طور صریح توسط اسکریپت فعال شده باشند). .SS \f[B]ROFI_INFO\f[R] این متغیر محیطی هنگام انتخاب یک مدخل، با مقدار ویژگی گزینه سطر `info` (در صورت تنظیم) پر می‌شود. .SS \f[B]ROFI_DATA\f[R] این متغیر محیطی هنگامی که اسکریپت گزینه \f[B]data\f[R] را در سرآیند تنظیم کند، مقداردهی می‌شود. .SH "ارسال گزینه‌های حالت (Passing mode options)" گزینه‌های اضافی، مانند تنظیم اعلان (prompt)، می‌توانند توسط اسکریپت تنظیم شوند. گزینه‌های اضافی سطرهایی هستند که با یک نویسه NULL (\f[B]\[rs]0\f[R]) آغاز شده و پس از آن یک کلید، جداکننده (\f[B]\[rs]x1f\f[R]) و مقدار مربوطه قرار می‌گیرند. .PP برای نمونه، جهت تنظیم اعلان: .IP .EX echo \-en \[dq]\[rs]0prompt\[rs]x1fChange prompt\[rs]n\[dq] .EE .PP گزینه‌های اضافی زیر موجود هستند: .IP \[bu] 2 \f[B]prompt\f[R]: به‌روزرسانی متن اعلان ورودی. .IP \[bu] 2 \f[B]message\f[R]: به‌روزرسانی متن پیام. .IP \[bu] 2 \f[B]markup\-rows\f[R]: اگر برابر با `true` باشد، نشانه‌گذاری‌ها (markup) را در سطر رندر می‌کند. .IP \[bu] 2 \f[B]urgent\f[R]: علامت‌گذاری سطرها به‌عنوان اضطراری (urgent). (برای ساختار نگارشی به گزینه urgent در حالت dmenu مراجعه کنید) .IP \[bu] 2 \f[B]active\f[R]: علامت‌گذاری سطرها به‌عنوان فعال (active). (برای ساختار نگارشی به گزینه active در حالت dmenu مراجعه کنید) .IP \[bu] 2 \f[B]delim\f[R]: تعیین جداکننده برای سطرهای بعدی. مقدار پیش‌فرض `'` است و این گزینه باید با آن خاتمه یابد. این گزینه را فقط در نخستین فراخوانی اسکریپت اعمال کنید، چرا که برای فراخوانی‌های بعدی به خاطر سپرده می‌شود. .IP \[bu] 2 \f[B]no\-custom\f[R]: اگر برابر با `true` تنظیم شود؛ تنها مدخل‌های فهرست‌شده پذیرفته می‌شوند و ورودی‌های سفارشی نادیده گرفته خواهند شد. .IP \[bu] 2 \f[B]use\-hot\-keys\f[R]: اگر برابر با true تنظیم شود، کلیدهای میانبر سفارشی را برای اسکریپت فعال می‌کند. هشدار: این کار روال معمول rofi را مختل می‌کند. .IP \[bu] 2 \f[B]keep\-selection\f[R]: در صورت تنظیم، انتخاب به نخستین مدخل منتقل نمی‌شود، بلکه موقعیت فعلی حفظ می‌گردد. فیلتر پاک می‌شود. .IP \[bu] 2 \f[B]keep\-filter\f[R]: در صورت تنظیم، فیلتر پاک نمی‌شود. .IP \[bu] 2 \f[B]new\-selection\f[R]: در صورت تنظیم \f[B]keep\-selection\f[R]، امکان بازنویسی مدخل انتخاب‌شده را (بر اساس موقعیت مطلق) فراهم می‌آورد. .IP \[bu] 2 \f[B]data\f[R]: داده‌ها را از طریق متغیر محیطی \f[B]ROFI_DATA\f[R] به اجرای بعدی اسکریپت منتقل می‌کند. .IP \[bu] 2 \f[B]theme\f[R]: قطعه‌پوسته کوچک، برای مثال جهت تغییر رنگ پس‌زمینه یک ویجت. .PP ویژگی \f[B]theme\f[R] نمی‌تواند رابط کاربری را هنگام اجرا دگرگون کند؛ این ویژگی تنها برای تغییرات جزئی کاربرد دارد، مانند رنگ پس‌زمینه ویجت‌هایی که حین نمایش به‌روزرسانی می‌شوند (نظیر رنگ سطر در listview). .SH "تجزیه گزینه‌های سطر (Parsing row options)" می‌توان گزینه‌های اضافی را برای تک‌تک سطرها تعیین نمود. گزینه اضافی با همان ساختار نگارشی گزینه‌های حالت، اما پس از مدخل درج می‌شود. .PP به‌عنوان مثال: .IP .EX echo \-en \[dq]aap\[rs]0icon\[rs]x1ffolder\[rs]n\[dq] .EE .PP گزینه‌های زیر پشتیبانی می‌شوند: .IP \[bu] 2 \f[B]icon\f[R]: تنظیم نماد (آیکون) برای آن سطر. .IP \[bu] 2 \f[B]display\f[R]: جایگزینی رشته نمایشی. (رشته اصلی همچنان برای فیلتر کردن استفاده خواهد شد) .IP \[bu] 2 \f[B]meta\f[R]: تعیین عبارت‌های جستجوی نامرئی برای فیلتر کردن. .IP \[bu] 2 \f[B]nonselectable\f[R]: اگر برابر با true باشد، سطر قابل فعال‌سازی و انتخاب نیست. .IP \[bu] 2 \f[B]permanent\f[R]: اگر برابر با true باشد، سطر همواره و مستقل از وضعیت فیلتر نمایش داده می‌شود. .IP \[bu] 2 \f[B]info\f[R]: اطلاعاتی که در صورت انتخاب سطر، درون متغیر محیطی \f[B]ROFI_INFO\f[R] قرار می‌گیرد. این مدخل در جستجو و فیلتر کردن لحاظ نمی‌شود. .IP \[bu] 2 \f[B]urgent\f[R]: تنظیم پرچم اضطراری روی مدخل (true/false) .IP \[bu] 2 \f[B]active\f[R]: تنظیم پرچم فعال روی مدخل (true/false) .PP چندین گزینه را می‌توان با استفاده از جداکننده \f[B]\[rs]x1f\f[R] منتقل کرد. .IP .EX echo \-en \[dq]aap\[rs]0icon\[rs]x1ffolder\[rs]x1finfo\[rs]x1ftest\[rs]n\[dq] .EE .SH "اجرای برنامه‌های خارجی (Executing external program)" اگر قصد دارید برنامه‌ای خارجی را از درون اسکریپت اجرا کنید، باید مطمئن شوید که در پس‌زمینه اجرا می‌شود. در غیر این صورت rofi در انتظار خروجی آن برنامه (جهت نمایش) باقی می‌ماند. .PP در bash بهترین روش برای انجام این کار، استفاده از \f[B]coproc\f[R] است. .IP .EX coproc \f[B](\f[R] myApp > /dev/null 2>&1 \f[B])\f[R] .EE .SH "پوسته DASH (DASH shell)" اگر در اسکریپت خود از پوسته \f[B]dash\f[R] استفاده می‌کنید، به نحوه مدیریت مقادیر اسکیپ‌شده برای جداکننده‌ها در dash توجه ویژه داشته باشید. به گزارش شماره #1201 در گیت‌هاب رجوع کنید. .SH "محل قرارگیری اسکریپت‌ها (Script locations)" برای مشخص کردن اسکریپت، گزینه‌های زیر وجود دارند: .IP \[bu] 2 مشخص کردن مسیر مطلق به اسکریپت. .IP \[bu] 2 اسکریپت قابل اجرا بوده و در مسیرهای $PATH شما قرار داشته باشد. .PP اسکریپت‌های واقع در مسیر زیر هنگام راه‌اندازی \f[B]بارگذاری\f[R] می‌شوند و می‌توان آن‌ها را مستقیماً بر اساس نام فایل (بدون پسوند) اجرا کرد: .IP \[bu] 2 اسکریپت در مسیر \f[B]$XDG_CONFIG_HOME/rofi/scripts/\f[R] باشد؛ این مسیر معمولاً \f[B]\[ti]/.config/rofi/scripts/\f[R] است. .PP اگر اسکریپتی به نام `mymode.sh` در این پوشه داشته باشید، می‌توانید آن را با دستور زیر باز کنید: .IP .EX rofi \-show mymode .EE .PP برای مشاهده فهرست اسکریپت‌های شناسایی‌شده به خروجی \f[B]rofi \-h\f[R] مراجعه کنید. .SH "همچنین ببینید (SEE ALSO)" .BR rofi (1), .BR rofi\-sensible\-terminal (1), .BR dmenu (1), .BR rofi\-theme (5), .BR rofi\-theme\-selector (1) .SH "نویسندگان (AUTHOR)" Qball Cow \c .MT qball@gmpclient.org .ME \c .PP Rasmus Steinke \c .MT rasi@xssn.at .ME \c .PP Morgane Glidic \c .MT sardemff7+rofi@sardemff7.net .ME \c .PP Original code based on work by: Sean Pringle \c .MT sean.pringle@gmail.com .ME \c .PP برای مشاهده فهرست کامل نویسندگان به فایل AUTHORS مراجعه کنید.