rofi-dmenu(5) راهنمای قالب‌های فایل rofi-dmenu(5)

rofi-dmenu - شبیه‌سازی dmenu در rofi

برای ادغام rofi در اسکریپت‌ها به عنوان کادرهای محاوره‌ای ساده جهت انتخاب، rofi از شبیه‌سازی dmenu(1) (یک منوی پویا برای سامانه پنجره X11) پشتیبانی می‌کند.

وب‌سایت dmenu را می‌توان در اینجا مشاهده کرد.

هدف rofi سازگاری ۱۰۰٪ با dmenu نیست؛ چرا که نسخه‌ها و گونه‌های بسیار متنوعی از dmenu وجود دارد. ایده اصلی این است که از پرچم‌های پایه خط فرمان تبعیت شود، اما پرچم‌های مربوط به پوسته و تم نادیده گرفته می‌شوند. علاوه بر این، rofi قابلیت‌های گسترده‌تری (مانند چند-انتخابی، برجسته‌سازی، نوار پیام و کلیدهای میانبر اضافی) را ارائه می‌دهد.

در حالت dmenu، برنامه rofi داده‌ها را از ورودی استاندارد (stdin) خوانده، آن‌ها را به ورودی‌های جداگانه تقسیم کرده و نمایش می‌دهد. اگر کاربر سطری را انتخاب کند، آن سطر در خروجی استاندارد (stdout) چاپ می‌شود و به اسکریپت اجازه پردازش بیشتر آن را می‌دهد.

به‌طور پیش‌فرض، جداسازی سطرها بر اساس خطوط جدید (newline) انجام می‌شود که لوله‌کشی (pipe) خروجی یک برنامه به rofi و ارسال خروجی rofi به برنامه بعدی را بسیار آسان می‌کند.

با اجرای rofi همراه با پرچم -dmenu، این برنامه وارد حالت شبیه‌سازی dmenu می‌شود.

ls | rofi -dmenu

اگر argv[0] (دستور فراخواننده) dmenu باشد، rofi در حالت dmenu شروع به کار خواهد کرد. به این ترتیب، می‌توان از آن به عنوان یک جایگزین مستقیم برای dmenu استفاده کرد. کافی است rofi را به dmenu در متغیر محیطی $PATH کپی کرده یا یک پیوند نمادین (symlink) بسازید.

ln -s /usr/bin/rofi /usr/bin/dmenu

حالت Script برای گسترش rofi به کار می‌رود، در حالی که حالت dmenu برای گسترش یک اسکریپت استفاده می‌شود. این دو ساختار، قالب ورودی بسیار مشابهی دارند. لطفاً برای اطلاعات بیشتر به صفحه راهنمای rofi-script(5) مراجعه کنید.

بسیاری از این گزینه‌ها را می‌توان توسط اسکریپت و با استفاده از ورودی‌های ویژه نیز تغییر داد. برای اطلاعات بیشتر در مورد این ساختار نحوی به صفحه راهنمای rofi-script(5) مراجعه کنید.

جداکننده برای dmenu. مثال: برای نمایش فهرستی از `a' تا `e' با جداکننده `|':
echo "a|b|c|d|e" | rofi -sep '|' -dmenu
اعلان (prompt) نمایشی در حالت dmenu را مشخص می‌کند. برای مثال، انتخاب `monkey'، a، b، c، d یا e.
echo "a|b|c|d|e" | rofi -sep '|' -dmenu -p "monkey"

پیش‌فرض: dmenu

حداکثر تعداد خطوطی که منو پیش از پیمایش (scroll) نمایش می‌دهد.
rofi -dmenu -l 25

پیش‌فرض: 15

جستجوهای dmenu را به حروف بزرگ و کوچک حساس نمی‌کند (case-insensitive).
سطر فعال؛ X را به عنوان فعال علامت‌گذاری می‌کند. که در آن X فهرستی جداشده با کاما از اندیس‌ها و بازه‌ها به سبک python(1) است؛ به عنوان مثال، اندیس‌ها از ۰ شروع می‌شوند، -1 به آخرین سطر و -2 به سطر ماقبل آن اشاره دارد، بازه‌ها از چپ-باز و از راست-بسته هستند و غیره. می‌توانید موارد زیر را مشخص کنید:
•
یک سطر تکی: `5'
•
بازه‌ای از سطرها (۳ سطر آخر): `-3:'
•
۴ سطر با شروع از سطر ۷: `7:11' (یا در شیوه نگارش قدیمی: `7-10')
•
مجموعه‌ای از سطرها: `2,0,-9'
•
یا هر ترکیبی: `5,-3:,7:11,2,0,-9'
سطر اضطراری؛ X را به عنوان اضطراری (urgent) علامت‌گذاری می‌کند. برای جزئیات بیشتر به گزینه -a مراجعه کنید.
فقط یک مورد انتخاب‌شده را برمی‌گرداند و اجازه ورود مقادیر سفارشی را نمی‌دهد. این حالت همیشه یک ورودی را برمی‌گرداند و در صورتی که هیچ ورودی منطبقی انتخاب نشود، خارج نخواهد شد.
فقط یک مورد انتخاب‌شده را برمی‌گرداند و اجازه ورود مقادیر سفارشی را نمی‌دهد. این حالت هنگامی که هیچ ورودی‌ای داده نشود، فوراً بازمی‌گردد.
امکان سفارشی‌سازی قالب خروجی dmenu را فراهم می‌کند (N تعداد کل ورودی‌ها است):
•
`s' رشته انتخاب‌شده
•
`i' اندیس (0 - (N-1))
•
`d' اندیس (1 - N)
•
`q' رشته داخل نقل‌قول (quote)
•
`p' رشته انتخاب‌شده پس از حذف نشانه‌گذاری‌های Pango (باید یک رشته معتبر باشد)
•
`f' رشته فیلتر (ورودی کاربر)
•
`F' رشته فیلتر داخل نقل‌قول (ورودی کاربر)

پیش‌فرض: `s'

اولین خطی را که با رشته داده‌شده مطابقت دارد انتخاب می‌کند.
یک خط پیام در زیر کادر ورودی فیلتر اضافه می‌کند. از نشانه‌گذاری Pango پشتیبانی می‌کند. برای اطلاعات بیشتر در مورد نشانه‌گذاری‌های پشتیبانی‌شده به اینجا مراجعه کنید.
فهرست فیلترشده را به خروجی استاندارد (stdout) ریخته و خارج می‌شود. از این گزینه می‌توان برای دریافت فهرستی که rofi آن را فیلتر می‌کند استفاده کرد. به همراه دستور -filter استفاده شود.
به جای ورودی استاندارد (stdin)، داده‌ها را از file می‌خواند.
متن ورودی را پنهان می‌کند. این مورد نباید از نظر امنیتی کاملاً ایمن در نظر گرفته شود!
به rofi اعلام می‌کند که ورودی dmenu با نشانه‌گذاری Pango کدگذاری شده و باید پردازش و رندر شود. برای جزئیات بیشتر در مورد نشانه‌گذاری Pango به اینجا مراجعه کنید.
امکان انتخاب چندین خط را فراهم می‌کند. یک نشانگر کوچک انتخاب در سمت چپ هر ورودی اضافه می‌کند.
حالت rofi را مجبور می‌کند تا ابتدا تمام داده‌ها را از stdin بخواند و سپس پنجره انتخاب را نمایش دهد. این رفتار اصلی dmenu است.

نکته: در صورت استفاده از گزینه‌های متناقض مانند -dump، -only-match یا -auto-select، حالت ناهمگام پیش‌فرض نیز به‌طور خودکار غیرفعال خواهد شد.

نام مورد استفاده برای عنوان پنجره را تنظیم می‌کند. به صورت Rofi - title نمایش داده خواهد شد.
پنجره rofi را بر روی پنجره‌ای با شناسه پنجره X11 داده‌شده قرار می‌دهد.
حالت کوتاه کردن متن (ellipsize) را روی start (شروع) قرار می‌دهد تا انتهای رشته قابل مشاهده باشد.
فهرستی از ستون‌ها برای نمایش که با کاما از یکدیگر جدا شده‌اند.
جداکننده ستون. این یک عبارت باقاعده (regex) است.

پیش‌فرض: ’ ’

هنگامی که قابلیت چند-انتخابی فعال است، این رشته را به عنوان پیشوند عنصر انتخاب‌شده قرار می‌دهد.

پیش‌فرض: “☑”

هنگامی که قابلیت چند-انتخابی فعال است، این رشته را به عنوان پیشوند عنصر انتخاب‌نشده قرار می‌دهد.

پیش‌فرض: “☐”

تنظیم حالت کوتاه کردن متن در نمای فهرست (listview).

پیش‌فرض “end”

گزینه‌های اضافی برای سطرهای جداگانه نیز قابل تنظیم هستند. برای جزئیات بیشتر به صفحه راهنمای rofi-script(5) مراجعه کنید؛ ساختار نحوی و قابلیت‌های پشتیبانی‌شده کاملاً یکسان هستند.

•
0: سطر با موفقیت توسط کاربر انتخاب و پذیرفته شد.
•
1: کاربر فرآیند انتخاب را لغو کرد.
•
10-28: سطر از طریق کلیدهای میانبر سفارشی پذیرفته شد.

rofi(1), rofi-sensible-terminal(1), dmenu(1), rofi-theme(5), rofi-script(5), rofi-theme-selector(1), ascii(7)

Qball Cow qball@gmpclient.org

Rasmus Steinke rasi@xssn.at

Morgane Glidic sardemff7+rofi@sardemff7.net

کد اصلی مبتنی بر کار زیر است: Sean Pringle sean.pringle@gmail.com

برای مشاهده فهرست کامل نویسندگان، فایل AUTHORS را بررسی کنید.

rofi