rofi-dmenu(5) راهنمای قالب‌های فایل rofi-dmenu(5) نام (NAME) rofi-dmenu - شبیه‌سازی dmenu در rofi توضیحات (DESCRIPTION) برای ادغام rofi در اسکریپت‌ها به عنوان کادرهای محاوره‌ای ساده جهت انتخاب، rofi از شبیه‌سازی dmenu(1) (یک منوی پویا برای سامانه پنجره X11) پشتیبانی می‌کند. وب‌سایت dmenu را می‌توان در اینجا مشاهده کرد. هدف rofi سازگاری ۱۰۰٪ با dmenu نیست؛ چرا که نسخه‌ها و گونه‌های بسیار متنوعی از dmenu وجود دارد. ایده اصلی این است که از پرچم‌های پایه خط فرمان تبعیت شود، اما پرچم‌های مربوط به پوسته و تم نادیده گرفته می‌شوند. علاوه بر این، rofi قابلیت‌های گسترده‌تری (مانند چند-انتخابی، برجسته‌سازی، نوار پیام و کلیدهای میانبر اضافی) را ارائه می‌دهد. مفاهیم پایه (BASIC CONCEPT) در حالت dmenu، برنامه rofi داده‌ها را از ورودی استاندارد (stdin) خوانده، آن‌ها را به ورودی‌های جداگانه تقسیم کرده و نمایش می‌دهد. اگر کاربر سطری را انتخاب کند، آن سطر در خروجی استاندارد (stdout) چاپ می‌شود و به اسکریپت اجازه پردازش بیشتر آن را می‌دهد. به‌طور پیش‌فرض، جداسازی سطرها بر اساس خطوط جدید (newline) انجام می‌شود که لوله‌کشی (pipe) خروجی یک برنامه به rofi و ارسال خروجی rofi به برنامه بعدی را بسیار آسان می‌کند. کاربرد (USAGE) با اجرای rofi همراه با پرچم -dmenu، این برنامه وارد حالت شبیه‌سازی dmenu می‌شود. ls | rofi -dmenu جایگزین مستقیم DMENU (DMENU DROP-IN REPLACEMENT) اگر argv[0] (دستور فراخواننده) dmenu باشد، rofi در حالت dmenu شروع به کار خواهد کرد. به این ترتیب، می‌توان از آن به عنوان یک جایگزین مستقیم برای dmenu استفاده کرد. کافی است rofi را به dmenu در متغیر محیطی $PATH کپی کرده یا یک پیوند نمادین (symlink) بسازید. ln -s /usr/bin/rofi /usr/bin/dmenu حالت DMENU در برابر حالت SCRIPT (DMENU VS SCRIPT MODE) حالت Script برای گسترش rofi به کار می‌رود، در حالی که حالت dmenu برای گسترش یک اسکریپت استفاده می‌شود. این دو ساختار، قالب ورودی بسیار مشابهی دارند. لطفاً برای اطلاعات بیشتر به صفحه راهنمای rofi-script(5) مراجعه کنید. پرچم‌های خط فرمان مخصوص DMENU (DMENU SPECIFIC COMMANDLINE FLAGS) بسیاری از این گزینه‌ها را می‌توان توسط اسکریپت و با استفاده از ورودی‌های ویژه نیز تغییر داد. برای اطلاعات بیشتر در مورد این ساختار نحوی به صفحه راهنمای rofi-script(5) مراجعه کنید. -sep separator جداکننده برای dmenu. مثال: برای نمایش فهرستی از `a' تا `e' با جداکننده `|': echo "a|b|c|d|e" | rofi -sep '|' -dmenu -p prompt اعلان (prompt) نمایشی در حالت dmenu را مشخص می‌کند. برای مثال، انتخاب `monkey'، a، b، c، d یا e. echo "a|b|c|d|e" | rofi -sep '|' -dmenu -p "monkey" پیش‌فرض: dmenu -l number of lines to show حداکثر تعداد خطوطی که منو پیش از پیمایش (scroll) نمایش می‌دهد. rofi -dmenu -l 25 پیش‌فرض: 15 -i جستجوهای dmenu را به حروف بزرگ و کوچک حساس نمی‌کند (case-insensitive). -a X سطر فعال؛ X را به عنوان فعال علامت‌گذاری می‌کند. که در آن X فهرستی جداشده با کاما از اندیس‌ها و بازه‌ها به سبک python(1) است؛ به عنوان مثال، اندیس‌ها از ۰ شروع می‌شوند، -1 به آخرین سطر و -2 به سطر ماقبل آن اشاره دارد، بازه‌ها از چپ-باز و از راست-بسته هستند و غیره. می‌توانید موارد زیر را مشخص کنید: • یک سطر تکی: `5' • بازه‌ای از سطرها (۳ سطر آخر): `-3:' • ۴ سطر با شروع از سطر ۷: `7:11' (یا در شیوه نگارش قدیمی: `7-10') • مجموعه‌ای از سطرها: `2,0,-9' • یا هر ترکیبی: `5,-3:,7:11,2,0,-9' -u X سطر اضطراری؛ X را به عنوان اضطراری (urgent) علامت‌گذاری می‌کند. برای جزئیات بیشتر به گزینه -a مراجعه کنید. -only-match فقط یک مورد انتخاب‌شده را برمی‌گرداند و اجازه ورود مقادیر سفارشی را نمی‌دهد. این حالت همیشه یک ورودی را برمی‌گرداند و در صورتی که هیچ ورودی منطبقی انتخاب نشود، خارج نخواهد شد. -no-custom فقط یک مورد انتخاب‌شده را برمی‌گرداند و اجازه ورود مقادیر سفارشی را نمی‌دهد. این حالت هنگامی که هیچ ورودی‌ای داده نشود، فوراً بازمی‌گردد. -format format امکان سفارشی‌سازی قالب خروجی dmenu را فراهم می‌کند (N تعداد کل ورودی‌ها است): • `s' رشته انتخاب‌شده • `i' اندیس (0 - (N-1)) • `d' اندیس (1 - N) • `q' رشته داخل نقل‌قول (quote) • `p' رشته انتخاب‌شده پس از حذف نشانه‌گذاری‌های Pango (باید یک رشته معتبر باشد) • `f' رشته فیلتر (ورودی کاربر) • `F' رشته فیلتر داخل نقل‌قول (ورودی کاربر) پیش‌فرض: `s' -select string اولین خطی را که با رشته داده‌شده مطابقت دارد انتخاب می‌کند. -mesg string یک خط پیام در زیر کادر ورودی فیلتر اضافه می‌کند. از نشانه‌گذاری Pango پشتیبانی می‌کند. برای اطلاعات بیشتر در مورد نشانه‌گذاری‌های پشتیبانی‌شده به اینجا مراجعه کنید. -dump فهرست فیلترشده را به خروجی استاندارد (stdout) ریخته و خارج می‌شود. از این گزینه می‌توان برای دریافت فهرستی که rofi آن را فیلتر می‌کند استفاده کرد. به همراه دستور -filter استفاده شود. -input file به جای ورودی استاندارد (stdin)، داده‌ها را از file می‌خواند. -password متن ورودی را پنهان می‌کند. این مورد نباید از نظر امنیتی کاملاً ایمن در نظر گرفته شود! -markup-rows به rofi اعلام می‌کند که ورودی dmenu با نشانه‌گذاری Pango کدگذاری شده و باید پردازش و رندر شود. برای جزئیات بیشتر در مورد نشانه‌گذاری Pango به اینجا مراجعه کنید. -multi-select امکان انتخاب چندین خط را فراهم می‌کند. یک نشانگر کوچک انتخاب در سمت چپ هر ورودی اضافه می‌کند. -sync حالت rofi را مجبور می‌کند تا ابتدا تمام داده‌ها را از stdin بخواند و سپس پنجره انتخاب را نمایش دهد. این رفتار اصلی dmenu است. نکته: در صورت استفاده از گزینه‌های متناقض مانند -dump، -only-match یا -auto-select، حالت ناهمگام پیش‌فرض نیز به‌طور خودکار غیرفعال خواهد شد. -window-title title نام مورد استفاده برای عنوان پنجره را تنظیم می‌کند. به صورت Rofi - title نمایش داده خواهد شد. -w windowid پنجره rofi را بر روی پنجره‌ای با شناسه پنجره X11 داده‌شده قرار می‌دهد. -keep-right حالت کوتاه کردن متن (ellipsize) را روی start (شروع) قرار می‌دهد تا انتهای رشته قابل مشاهده باشد. -display-columns فهرستی از ستون‌ها برای نمایش که با کاما از یکدیگر جدا شده‌اند. -display-column-separator جداکننده ستون. این یک عبارت باقاعده (regex) است. پیش‌فرض: ’ ’ -ballot-selected-str string هنگامی که قابلیت چند-انتخابی فعال است، این رشته را به عنوان پیشوند عنصر انتخاب‌شده قرار می‌دهد. پیش‌فرض: “☑” -ballot-unselected-str string هنگامی که قابلیت چند-انتخابی فعال است، این رشته را به عنوان پیشوند عنصر انتخاب‌نشده قرار می‌دهد. پیش‌فرض: “☐” -ellipsize-mode (start|middle|end) تنظیم حالت کوتاه کردن متن در نمای فهرست (listview). پیش‌فرض “end” تجزیه گزینه‌های سطر (PARSING ROW OPTIONS) گزینه‌های اضافی برای سطرهای جداگانه نیز قابل تنظیم هستند. برای جزئیات بیشتر به صفحه راهنمای rofi-script(5) مراجعه کنید؛ ساختار نحوی و قابلیت‌های پشتیبانی‌شده کاملاً یکسان هستند. کدهای بازگشتی (RETURN VALUE) • 0: سطر با موفقیت توسط کاربر انتخاب و پذیرفته شد. • 1: کاربر فرآیند انتخاب را لغو کرد. • 10-28: سطر از طریق کلیدهای میانبر سفارشی پذیرفته شد. همچنین ببینید (SEE ALSO) rofi(1), rofi-sensible-terminal(1), dmenu(1), rofi-theme(5), rofi-script(5), rofi-theme-selector(1), ascii(7) نویسندگان (AUTHORS) Qball Cow Rasmus Steinke Morgane Glidic کد اصلی مبتنی بر کار زیر است: Sean Pringle برای مشاهده فهرست کامل نویسندگان، فایل AUTHORS را بررسی کنید. rofi rofi-dmenu(5)