rofi(1) General Commands Manual rofi(1)

rofi - پنجره‌ابزار، اجراکننده برنامه‌ها، دیالوگ ssh، جایگزین dmenu و موارد دیگر

rofi [ -show mode ]|[ -dmenu ]|[ -e msg ] CONFIGURATION

دستور rofi یک پنجره‌ابزار پاپ‌آپ X11، کادر محاوره‌ای اجرا، جایگزین dmenu و مواردی فراتر از این‌ها است. تمرکز این ابزار بر سرعت عملکرد بالا و کمترین میزان حواس‌پرتی کاربر است. این برنامه از ناوبری با صفحه‌کلید و ماوس، تایپ برای فیلتر کردن، جستجوی نشانه‌ای (tokenized) و قابلیت‌های متعدد دیگر پشتیبانی می‌کند.

کارکرد اصلی rofi کمک به جریان کاری شما است که امکان جابه‌جایی سریع میان پنجره‌ها، اجرای برنامه‌ها یا ورود به ماشین‌های دوردست از طریق ssh را فراهم می‌سازد. حالت‌های مختلفی (modes) برای انواع گوناگون اقدامات وجود دارد. ابزار rofi یک برنامه مستقل است و نباید درون اسکریپت‌ها ادغام گردد. جهت یکپارچه‌سازی در اسکریپت‌ها، دارای یک حالت ویژه است که به عنوان جایگزین مستقیم (drop-in) برای dmenu(1) عمل می‌کند. بخش شبیه‌سازی dmenu را در ادامه ببینید.

برای اجرای مستقیم rofi در یک حالت مشخص، حالت را با دستور rofi -show <mode> تعیین کنید. جهت نمایش دیالوگ drun:

rofi -show drun

یک پیکربندی کاربردی در مدیر پنجره‌های مینیمال، ترکیب حالت‌های drun و run با حالت window است:

rofi -show combi -modes combi -combi-modes "window,drun,run"

در این چیدمان، ابتدا تمام برنامه‌های باز فهرست می‌شوند و سپس تمام برنامه‌های نصب‌شده نمایش می‌یابند. بنابراین اگر firefox را تایپ کرده و Enter را فشار دهید، به فایرفاکس در حال اجرا جابه‌جا می‌شوید یا در صورتی که در حال اجرا نباشد، اجرا خواهد شد.

ابزار rofi می‌تواند در صورت اجرا با فلگ -dmenu، برنامه dmenu(1) (منوی پویا برای X11) را شبیه‌سازی کند.

برای اطلاعات بیشتر به rofi-dmenu(5) مراجعه فرمایید.

دیالوگ خطای rofi را نیز می‌توان از خط فرمان فراخوانی کرد.

rofi -e "my message"

پشتیبانی از نشانه‌گذاری (Markup) را می‌توان فعال کرد، گزینه‌های پیکربندی را ببینید.

در حال حاضر سه روش برای تنظیم گزینه‌های پیکربندی وجود دارد (به ترتیبی که در زیر ارزیابی می‌شوند):

•
فایل پیکربندی سیستم (به عنوان مثال /etc/rofi.rasi). ابتدا XDG_CONFIG_DIRS و سپس SYSCONFDIR (که در زمان کامپایل ارسال می‌شود) بررسی می‌گردد. اولین فایل کانفیگی را که بیابد بارگذاری می‌کند و چندین فایل کانفیگ سیستمی را با یکدیگر ادغام نمی‌نماید.
•
فایل پوسته Rasi: فرمت جدید theme را می‌توان برای تنظیم مقادیر پیکربندی به کار برد.
•
گزینه‌های خط فرمان: آرگومان‌هایی که به rofi ارسال می‌شوند.

برای دریافت یک فایل پیکربندی الگو، دستور زیر را اجرا کنید: rofi -dump-config > config.rasi

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

برای دریافت فایل کانفیگ الگو که پوسته آیکون را تعیین می‌کند اجرا کنید: rofi -icon-theme hicolor -dump-config.

اکیداً توصیه می‌شود که از این فایل به عنوان نقطه شروعی برای پیکربندی خود بهره بگیرید.

یک بخش پیکربندی خالی در فایل کانفیگ به این صورت است:

configuration {
 // set config options here
}

بیشتر گزینه‌های پیکربندی ذکر شده در زیر (به جز گزینه‌هایی مانند -show و -dump-config که برای یک اجرای منفرد اعمال می‌شوند) را می‌توان در اینجا تنظیم کرد.

به عنوان مثال برای تنظیم مقدار dpi روی 72:

configuration {
 dpi: 72;
}

سیستم پیکربندی از انواع داده‌های زیر پشتیبانی می‌کند:

•
string (رشته)
•
integer (عدد صحیح علامت‌دار و بدون علامت)
•
char (نویسه)
•
boolean (بولی)
•
lists (لیست‌ها)

برای ساختار نحوی این گزینه‌ها، صفحه راهنمای rofi-theme(5) را ببینید.

برای استفاده در خط فرمان، گزینه‌های بولی ساختار متفاوتی در خط فرمان دارند. مثال برای فعال‌سازی گزینه X:

-X

برای غیرفعال‌سازی گزینه X:

-no-X

در ادامه فهرستی از مهم‌ترین گزینه‌ها آمده است:

گزینه help فهرست کاملی از گزینه‌های خط فرمان و مقادیر تنظیم‌شده فعلی را نمایش می‌دهد. این موارد شامل گزینه‌های پویا (تولیدشده در زمان اجرا) نیز می‌شوند.
گزینه info اطلاعات مفیدی را جهت درج هنگام گزارش یک اشکال نمایش می‌دهد. این اطلاعات شامل گزینه‌های زمان کامپایل، مانیتورهای شناسایی‌شده و موارد دیگر است. لطفاً پیش از ارسال آنلاین، خروجی را از نظر وجود اطلاعات شخصی بررسی کنید.
نسخه rofi را نمایش داده و خارج می‌شود.
پیکربندی فعال فعلی را در فرمت rasi روی خروجی استاندارد (stdout) ریخته و خارج می‌شود. اطلاعات مربوط به فرمت rasi را می‌توان در صفحه راهنمای rofi-theme(5) یافت.
پوسته فعال فعلی را در فرمت rasi روی خروجی استاندارد ریخته و خارج می‌شود.
تلاش برای تجزیه فایل؛ در صورت موفقیت کد 0 و در صورت شکست مقداری غیر صفر برمی‌گرداند.
فهرست کردن تمام کلیدهای میانبر شناخته‌شده بدون تلاش برای تجزیه آن‌ها. از این گزینه می‌توان برای بررسی کلیدهای تکراری استفاده کرد.
تعیین تعداد رشته‌هایی (threads) که rofi باید استفاده کند:
•
0: تشخیص خودکار تعداد رشته‌های سخت‌افزاری پشتیبانی‌شده.
•
1: غیرفعال کردن چندرشته‌ای
•
2..n: تعیین حداکثر تعداد رشته‌های مورد استفاده در استخر رشته‌ها (thread pool).

پیش‌فرض: Autodetect (تشخیص خودکار)

سرور X مورد نظر برای برقراری ارتباط. پیش‌فرض $DISPLAY است.
اجرای rofi در حالت dmenu. این ویژگی امکان تعامل با اسکریپت‌ها را فراهم می‌سازد. در حالت dmenu، دستور rofi از ورودی استاندارد (STDIN) می‌خواند و در خروجی استاندارد (STDOUT) می‌نویسد. مثالی ساده برای نمایش سه گزینه از پیش تعریف‌شده:
echo -e "Option #1\nOption #2\nOption #3" | rofi -dmenu

یا دریافت گزینه‌ها از یک اسکریپت:

~/my_script.sh | rofi -dmenu

برای اطلاعات بیشتر صفحه راهنمای rofi-dmenu(5) را ببینید.

باز کردن rofi در یک حالت خاص. حالت‌های موجود عبارتند از window، run، drun، ssh و combi. آرگومان ویژه keys را می‌توان برای باز کردن فهرستی قابل جستجو از کلیدهای میانبر پشتیبانی‌شده استفاده کرد (صفحه راهنمای rofi-keys(5) را ببینید).

برای نمایش دیالوگ run:

rofi -show run

اگر -show آخرین گزینه ارسال‌شده به rofi باشد، اولین حالت فعال‌شده نمایش داده می‌شود.

تعیین فهرستی مرتب و جداشده با کاما از حالت‌های فعال. حالت‌های فعال را می‌توان در زمان اجرا تغییر داد. کلید پیش‌فرض Ctrl+Tab است. اگر حالتی تعیین نشود، تمام حالت‌های پیکربندی‌شده فعال خواهند بود. برای نمایش فقط اجراکننده‌های run و ssh:
rofi -modes "run,ssh" -show run

حالت‌های سفارشی را می‌توان با استفاده از حالت داخلی script اضافه کرد. هر یک از این حالت‌ها دو پارامتر دارد:

<name>:<script>

مثال: داشتن حالتی به نام `Workspaces' با استفاده از اسکریپت i3_switch_workspaces.sh:

rofi -modes "window,run,ssh,Workspaces:i3_switch_workspaces.sh" -show Workspaces

نکات: مدیر پنجره i3 در هنگام تعیین دستور exec با کاما سازگار نیست. در این مورد، می‌توان از # به عنوان جداکننده استفاده کرد.

نکته: نام می‌تواند شامل فاصله (space) باشد:

rofi -modes "My File Browser:fb.sh" -show "My File Browser"
شروع در حالت حساس به حروف بزرگ و کوچک. این گزینه را می‌توان در زمان اجرا با استفاده از میانبر کلیدی -kb-toggle-case-sensitivity تغییر داد.
شروع در حالت حساسیت هوشمند حروف، مشابه با رفتار smartcase در vim، که حساسیت به حروف را بر اساس ورودی تعیین می‌کند. در صورت فعال بودن، تنظیمات -case-sensitive نادیده گرفته می‌شود.
چرخش در فهرست نتایج. پیش‌فرض `true' است.
فیلتر کردن فهرست با قرار دادن متن در نوار ورودی روی filter.
بارگذاری یک فایل پیکربندی جایگزین.
دایرکتوری مورد استفاده برای قرار دادن فایل‌های موقت، مانند تاریخچه.
انتخاب روش پیمایش. 0: صفحه‌ای (Per page)، 1: پیوسته (continuous).
نرمال‌سازی رشته پیش از تطبیق؛ بنابراین o با ö و é با e تطبیق می‌یابد. این پیاده‌سازی کامل نیست، اما به خوبی کار می‌کند. در حال حاضر، برجسته‌سازی بخش تطبیق‌یافته را غیرفعال می‌کند.
غیرفعال کردن گرفتن تنبل (lazy grab)؛ این امر گرفتن صفحه‌کلید را پیش از نمایش رابط کاربری گرافیکی اجباری می‌کند.
غیرفعال کردن بارگذاری افزونه‌ها.
تعیین دایرکتوری که rofi باید در آن به دنبال افزونه‌ها بگردد.
نمایش آیکون برنامه‌ها در حالت‌های drun و window.
تعیین پوسته آیکون مورد استفاده. در صورت عدم تعیین، پوسته پیش‌فرض محیط رومیزی استفاده می‌شود؛ پوسته‌های Adwaita و gnome به عنوان پوسته‌های جایگزین عمل می‌کنند.
استفاده از نشانه‌گذاری Pango برای قالب‌بندی خروجی در هر کجا که امکان‌پذیر باشد.
وادار کردن rofi به داشتن واکنشی مانند یک پنجره معمولی برنامه. برای اسکریپت‌هایی مانند Clerk که اساساً یک برنامه هستند مفید است.
وادار کردن rofi به رفتاری مانند یک دیالوگ مدال که نسبت به پنجره دارای فوکوس فعلی گذرا (transient) است. زمانی مفید است که از میانبر صفحه‌کلید برای اجرا و نمایش روی پنجره‌ای که با آن کار می‌کنید استفاده می‌کنید.
-[no-]steal-focus
وادار کردن rofi به ربودن فوکوس هنگام اجرا و بازگرداندن آن به پنجره قبلی هنگام بسته شدن.
حد زمانی (به میلی‌ثانیه) که فیلتر می‌تواند پیش از تغییر از حالت آنی به تاخیری مصرف کند.

پیش‌فرض: 300

می‌توان برای هر حالت یک آیکون جایگزین تعیین کرد:

configuration {
    <mode>{
      fallback-icon: "<icon name>";
    }
}

مثال

configuration {
    run,drun {
      fallback-icon: "application-x-addon";
    }
}

تعیین الگوریتم تطبیق مورد استفاده. در حال حاضر، روش‌های زیر پشتیبانی می‌شوند:
•
normal: تطبیق کل رشته
•
regex: تطبیق با ورودی عبارت منظم (regex)
•
glob: تطبیق با الگوی گلوب (glob)
•
fuzzy: انجام تطبیق فازی (تقریبی)
•
prefix: تطبیق با پیشوند

پیش‌فرض: normal

می‌توان چندین روش تطبیق را در فهرستی جداشده با کاما تعیین کرد. کلیدهای میانبر تطبیق بالا/پایین امکان جابه‌جایی چرخشی در زمان اجرا را فراهم می‌کنند.

نکته: تطبیق با glob ممکن است برای فهرست‌های بزرگ کند باشد.

نشانه‌گذاری (توکن‌سازی) ورودی.
-drun-categories category1,category2
فقط نمایش فایل‌های Desktop که در دسته‌بندی‌های فهرست‌شده قرار دارند.
-drun-exclude-categories category1,category2
مستثنی کردن فایل‌های Desktop که در دسته‌بندی‌های فهرست‌شده قرار دارند.
-drun-match-fields field1,field2,...
هنگام استفاده از drun، فقط با فیلدهای تعیین‌شده مدخل Desktop تطبیق یابد. فیلدهای مختلف عبارتند از:
•
name: نام برنامه
•
generic: نام عمومی برنامه
•
exec: فایل اجرایی برنامه
•
categories: دسته‌بندی‌های برنامه
•
comment: توضیحات برنامه
•
all: تمام موارد بالا

پیش‌فرض: name,generic,exec,categories,keywords

-drun-display-format
رشته قالب‌بندی برای دیالوگ drun:
•
name: نام برنامه
•
generic: نام عمومی برنامه
•
exec: فایل اجرایی برنامه
•
categories: دسته‌بندی‌های برنامه
•
comment: توضیحات برنامه
•
url: آدرس اینترنتی در صورت فایل دسکتاپ از نوع پیوند (link)

برای قالب‌بندی خروجی می‌توان از نشانه‌گذاری Pango استفاده کرد.

پیش‌فرض: {name} [<span weight='light' size='small'><i>({generic})</i></span>]

نکته: فقط فیلدهای فعال در -drun-match-fields را می‌توان در رشته قالب‌بندی به کار برد.

-[no-]drun-show-actions
نمایش اکشن‌های موجود در فایل‌های Desktop.

پیش‌فرض: false

-window-match-fields field1,field2,...
هنگام استفاده از حالت window، فقط با فیلدهای تعیین‌شده تطبیق یابد. فیلدهای مختلف عبارتند از:
•
title: عنوان پنجره
•
class: کلاس پنجره
•
role: نقش پنجره
•
name: نام پنجره
•
desktop: میزکار فعلی پنجره
•
all: تمام موارد بالا

برای Wayland فهرست فیلدهای قابل قبول متفاوت است:

•
title: عنوان پنجره
•
app-id: شناسه برنامه Wayland یا کلاس پنجره XWayland
•
class: مشابه با app-id
•
all: تمام موارد بالا

پیش‌فرض: all

تعیین نویسه مورد استفاده برای نقیض کردن عبارت جستجو (یعنی اگر با کلمه کلیدی بعدی تطبیق نداشت). برای غیرفعال کردن روی `''` تنظیم کنید. نخستین نویسه ASCII از رشته را در نظر می‌گیرد.

پیش‌فرض: `-`

-[no]-sort
فعال یا غیرفعال کردن مرتب‌سازی برای منوی فیلترشده. این تنظیم را می‌توان در زمان اجرا تغییر داد (به -kb-toggle-sort مراجعه کنید).
۲ روش وجود دارد:
•
levenshtein (پیش‌فرض)
•
fzf

مهم: در نسخه‌های جدیدتر rofi، تمام گزینه‌های مربوط به پوسته به فرمت جدید پوسته (theme format) منتقل شده‌اند. آن‌ها دیگر گزینه‌های عادی rofi که بتوان مستقیماً در خط فرمان ارسال کرد نیستند (زیرا تعداد آن‌ها بسیار زیاد است). می‌توان قطعه‌کدهای کوچک را در خط فرمان ارسال کرد: rofi -theme-str 'window {width: 50%;}' تا یک تنظیم منفرد بازنویسی شود. این قطعه‌کدها در پوسته فعلی ادغام می‌شوند. همچنین می‌توان آن‌ها را به انتهای فایل کانفیگ rofi ضمیمه کرد تا بخش‌هایی از پوسته بازنویسی شود.

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

تعیین محل قرارگیری پنجره. اعداد به موقعیت‌های زیر بر روی صفحه مپ می‌شوند:
1 2 3
8 0 4
7 6 5

پیش‌فرض: 0

حفظ تعداد ثابتی از خطوط قابل مشاهده.
باز شدن در حالت نوار کناری (sidebar-mode). در این حالت، فهرستی از تمام حالت‌های فعال در پایین نمایش داده می‌شود (گزینه -modes را ببینید). برای نمایش نوار کناری، دستور زیر را اجرا کنید:
rofi -show run -sidebar-mode
انتخاب خودکار گزینه‌ای که ماوس روی آن قرار می‌گیرد (hover). این گزینه در ترکیب با کلیدهای سفارشی ماوس بهترین کاربرد را دارد. برای استفاده از hover-select و پذیرش یک گزینه با یک کلیک:
rofi -show run -hover-select -me-select-entry '' -me-accept-entry MousePrimary
تنظیم ارتفاع سطر (به نویسه). پیش‌فرض: 1
هنگامی که تنها یک مدخل باقی مانده باشد، آن را به صورت خودکار انتخاب می‌کند.
انتخاب مانیتور برای نمایش rofi. این گزینه به عنوان ورودی موارد زیر را می‌پذیرد: primary (اگر خروجی اصلی تنظیم شده باشد)، نام خروجی xrandr، یا یک عدد صحیح (به ترتیب شناسایی). با اعداد منفی به گونه‌ای متفاوت رفتار می‌شود:
•
-1: مانیتور دارای فوکوس فعلی.
•
-2: پنجره دارای فوکوس فعلی (به این معنی که rofi روی پنجره دارای فوکوس نمایش داده می‌شود).
•
-3: موقعیت ماوس (تنظیمات مکان را لغو می‌کند تا رفتار عادی منوی متنی به دست آید).
•
-4: مانیتور حاوی پنجره دارای فوکوس.
•
-5: مانیتوری که اشاره‌گر ماوس را نشان می‌دهد.

پیش‌فرض: -5

خروجی rofi -h را برای مانیتورهای شناسایی‌شده، موقعیت و اندازه آن‌ها ببینید.

مسیر فایل پوسته، یا نام یک پوسته نصب‌شده. برای چگونگی حل و شناسایی پوسته‌ها صفحه راهنمای rofi-theme(5) را ببینید.
امکان تعیین بخش‌هایی از پوسته در خط فرمان به عنوان بازنویسی (override).

به عنوان مثال:

rofi -theme-str '#window { fullscreen: true; }'

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

بازنویسی تنظیمات پیش‌فرض DPI.

روی X11:

•
اگر روی 0 تنظیم شود، تلاش می‌کند بر اساس اندازه صفحه X11 به صورت خودکار شناسایی کند (مشابه با i3 و GTK).
•
اگر روی 1 تنظیم شود، تلاش می‌کند بر اساس اندازه مانیتوری که rofi روی آن نمایش داده می‌شود به صورت خودکار شناسایی کند (مشابه با جدیدترین نسخه Qt 5).

روی Wayland:

•
اگر روی 0 یا 1 تنظیم شود، در صورت وجود یک مانیتور یا تعیین نام -monitor، تلاش می‌کند به صورت خودکار شناسایی کند.
انتخاب یک سطر مشخص.

پیش‌فرض: 0

تعیین ترمینالی که باید راه‌اندازی شود.
rofi -terminal xterm

الگو: {terminal}

پیش‌فرض: x-terminal-emulator

-ssh-client client
بازنویسی کلاینت ssh مورد استفاده.

الگو: {ssh-client}

پیش‌فرض: ssh

-ssh-command cmd
تنظیم دستوری که هنگام شروع یک نشست ssh اجرا می‌شود. الگوی {host} با مدخل ssh انتخاب‌شده جایگزین می‌گردد.

الگو: {ssh-client}

پیش‌فرض: {terminal} -e {ssh-client} {host}

تجزیه فایل /etc/hosts جهت استخراج مدخل‌ها.

پیش‌فرض: disabled (غیرفعال)

-[no-]parse-known-hosts
تجزیه فایل ~/.ssh/known_hosts برای استخراج مدخل‌ها.

پیش‌فرض: enabled (فعال)

-run-command cmd
تنظیم دستور ({cmd}) برای اجرا هنگام راه‌اندازی یک برنامه. بخش PATTERN را ببینید.

پیش‌فرض: {cmd}

مثال برای اجرای برنامه‌ها در یک cgroup اختصاصی با استفاده از systemd. نیازمند یک پوسته است تا نام واحد (unit name) را به درستی اسکیپ و درون‌یابی کند.

"bash -c 'systemd-run --user --unit=app-rofi-\$(systemd-escape {cmd})-\$RANDOM {cmd}'"
-run-shell-command cmd
تنظیم دستور جهت اجرا هنگام راه‌اندازی یک برنامه درون پوسته (shell). بخش PATTERN را ببینید.

پیش‌فرض: {terminal} -e {cmd}

-run-list-command cmd
در صورت تنظیم، از یک ابزار خارجی برای تولید فهرستی از دستورات قابل اجرا استفاده می‌کند. از run-command استفاده می‌نماید.

پیش‌فرض: {cmd}

-window-format format
قالب‌بندی آنچه برای پنجره‌ها نمایش داده می‌شود.

format: {field[:len]}

field:

•
w: نام میزکار (desktop)
•
t: عنوان پنجره
•
n: نام
•
r: نقش (role)
•
c: کلاس

len: حداکثر طول فیلد (0 برای تنظیم خودکار اندازه). اگر طول منفی باشد، مدخل بدون تغییر باقی خواهد ماند. اگر طول مثبت باشد، مدخل کوتاه شده یا با فاصله خالی پر (pad) می‌شود تا به آن طول برسد.

پیش‌فرض: {w} {c} {t}

-window-command cmd
تنظیم دستور جهت اجرا روی پنجره انتخاب‌شده برای یک اقدام جایگزین (alt action) (-kb-accept-alt). بخش PATTERN را ببینید.

پیش‌فرض: “wmctrl -i -R {window}”

-window-thumbnail
نمایش بندانگشتی پنجره (در صورت موجود بودن) به عنوان آیکون در جابه‌جاگر پنجره.

می‌توان مانع از خروج rofi هنگام بستن یک پنجره شد (که اجازه می‌دهد چندین پنجره پشت سر هم بسته شوند):

configuration {
  window {
      close-on-delete: false;
  }
}

می‌توان پنجره فعال فعلی را با تنظیم `hide-active-window' پنهان کرد:

configuration {
  window {
      hide-active-window: true;
  }
}

یا با ارسال -window-hide-active-window true در خط فرمان.

می‌توان با تنظیم `prefer-icon-theme' پوسته آیکون را نسبت به آیکون تنظیم‌شده پنجره در اولویت قرار داد:

configuration {
  window {
      prefer-icon-theme: true;
  }
}

یا با ارسال -window-prefer-icon-theme true در خط فرمان.

-combi-modes mode1,mode2
حالت‌هایی که در حالت combi با یکدیگر ترکیب می‌شوند. برای ساختار نحوی -combi-modes به -modes مراجعه کنید. برای به دست آوردن یک نمای ادغام‌شده از window، run و ssh:
rofi -show combi -combi-modes "window,run,ssh" -modes combi

نکته: مدیر پنجره i3 در هنگام تعیین دستور exec با کاما سازگار نیست. در این مورد، می‌توان از # به عنوان جداکننده استفاده کرد.

-combi-display-format
رشته قالب‌بندی برای مدخل‌ها در دیالوگ combi:
•
mode: نام نمایشی حالت
•
text: متن مدخل

برای قالب‌بندی خروجی می‌توان از نشانه‌گذاری Pango استفاده کرد.

پیش‌فرض: {mode} {text}

نکته: در صورت فعال بودن combi-hide-mode-prefix، این تنظیم نادیده گرفته می‌شود.

-[no-]disable-history
غیرفعال کردن یا فعال‌سازی مجدد تاریخچه.
حداکثر تعداد مدخل‌ها برای ذخیره در تاریخچه. پیش‌فرض 25 است. (هشدار: تنظیم مقادیر بیش از حد بالا می‌تواند باعث افت سرعت شود)

نمایش یک کادر محاوره‌ای پیام (به صورت داخلی برای نمایش خطاها استفاده می‌شود) حاوی message. پیام می‌تواند چندخطی باشد.

ارسال -e - به صورت مسدودکننده (blocking) از ورودی استاندارد می‌خواند و آن را نمایش می‌دهد.

رفتار مرورگر فایل را می‌توان از طریق گزینه‌های زیر کنترل کرد:

configuration {
   filebrowser {
      /** دایرکتوری شروع به کار مرورگر فایل */
      directory: "/some/directory";
      /**
        * روش مرتب‌سازی. می‌تواند به این مقادیر تنظیم شود:
        *   - "name" (نام)
        *   - "mtime" (زمان تغییر محتوا)
        *   - "atime" (زمان دسترسی)
        *   - "ctime" (زمان تغییر وضعیت)
        */
      sorting-method: "name";
      /** دسته‌بندی دایرکتوری‌ها قبل از فایل‌ها */
      directories-first: true;
      /** نمایش فایل‌های پنهان */
      show-hidden: false;
      /** بازگرداندن ۱ هنگام لغو */
      cancel-returns-1: true;
      /** دستور اجرا */
      command: "xdg-open";
   }
}

این گزینه‌ها را می‌توان در خط فرمان نیز ارسال کرد، برای مثال:

rofi -filebrowser-cancel-returns-1 true -show filebrowser

گزینه show-hidden را می‌توان با کلید میانبر kb-delete-entry نیز تغییر وضعیت داد.

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

configuration {
   recursivebrowser {
      /** دایرکتوری شروع به کار مرورگر فایل */
      directory: "/some/directory";
      /** بازگرداندن ۱ هنگام لغو */
      cancel-returns-1: true;
      /** فیلتر کردن مدخل‌ها با عبارت منظم */
      filter-regex: "(.*cache.*|.*\.o)";
      /** دستور اجرا */
      command: "xdg-open";
   }
}

تعداد ورودی‌های پیشین برای کادر ورود متن را می‌توان با تنظیم max-history روی جعبه ورودی تغییر داد.

configuration {
    entry  {
        max-history: 30;
    }
}

به طور پیش‌فرض این فایل در دایرکتوری حافظه موقت (cache) سیستم، در فایلی به نام rofi-entry-history.txt ذخیره می‌شود.

-drun-use-desktop-cache
ایجاد و استفاده از حافظه موقت (cache) برای محتوای فایل‌های desktop. کاربردی برای سیستم‌های دارای دیسک‌های سخت کند.
-drun-reload-desktop-cache
در صورت فعال بودن drun-use-desktop-cache، کش محتوای فایل‌های desktop را مجدداً بازسازی می‌کند.
-drun-url-launcher command
دستور باز کردن مدخل Desktop که از نوع پیوند (Link) است.
وادار کردن rofi به ساخت فایل pid و بررسی آن هنگام راه‌اندازی. فایل pid از اجرای همزمان چندین نمونه از rofi جلوگیری می‌کند. این قابلیت هنگام اجرای rofi از طریق یک دیمن کلید میانبر بسیار مفید است.
اگر rofi بر اساس فایل pid از قبل در حال اجرا باشد، تلاش می‌کند آن نمونه را متوقف سازد.
تنظیم نام مورد استفاده برای mode. این نام به عنوان اعلان (prompt) و در combi-browser به کار می‌رود.

اکنون ترجیح بر استفاده از فایل پیکربندی است:

configuration {
  {mode} {
    display-name: *string*;
  }
}
-[no-]click-to-exit
کلیک ماوس در خارج از پنجره rofi برای خروج.

پیش‌فرض: enabled (فعال)

(wayland) بازنویسی کلیدهای میانبر کامپوزیتور، تا rofi بتواند مجدداً از آن‌ها استفاده کند.

پیش‌فرض: disabled (غیرفعال)

راهکار دور زدن اشکال در Xserver. گزارش‌های شماره #611 و #1642 را در سامانه پیگیری اشکالات rofi ببینید.

پیش‌فرض: disabled (غیرفعال)

برای اجرای دستورات (به عنوان مثال، هنگام استفاده از اجراکننده ssh)، کاربر می‌تواند از خط فرمان استفاده‌شده بهره ببرد. کلیدهای زیر را می‌توان استفاده کرد که در زمان اجرا جایگزین خواهند شد:

•
{host}: میزبان مقصد برای برقراری اتصال
•
{terminal}: ترمینال پیکربندی‌شده (به -terminal مراجعه کنید)
•
{ssh-client}: کلاینت ssh پیکربندی‌شده (به -ssh-client مراجعه کنید)
•
{cmd}: دستور قابل اجرا
•
{window}: شناسه پنجره برای پنجره انتخاب‌شده (در window-command)

رشته به این صورت پردازش می‌شود: {key} با مقدار خود جایگزین می‌شود؛ اگر {key} تنظیم نشده باشد، حذف می‌گردد. اگر {key} بین [] قرار داشته باشد و {key} تنظیم نشده باشد، تمام متن بین [] حذف می‌شود. در غیر این صورت، کلید جایگزین شده و علامت‌های [] برداشته می‌شوند.

به عنوان مثال: {ssh-client} [-p {port}] {host}

لطفاً برای اطلاعات بیشتر درباره پوسته‌ها به صفحه راهنمای rofi-theme(5) مراجعه فرمایید.

لطفاً برای اطلاع از کلیدهای میانبر و چگونگی تنظیم آن‌ها، صفحه راهنمای rofi-keys(5) را ببینید.

از کلیدهای میانبر می‌توان برای اقدامات (actions) نیز استفاده کرد؛ هنگامی که اقدام اجرا می‌شود، کلید مذکور فشرده می‌شود:

می‌توان اقدامی را پیکربندی کرد تا زمانی که rofi برای تعداد مشخصی ثانیه بدون تعامل باقی بماند، انجام پذیرد. می‌توان یک میانبر کلیدی را برای فعال شدن پس از X ثانیه تعیین کرد.

configuration {
  timeout {
      delay:  15;
      action: "kb-cancel";
  }
}

هنگامی که ورودی جعبه متن تغییر کند:

configuration {
  inputchange {
      action: "kb-row-first";
  }
}

نمایش فهرستی از تمام پنجره‌ها و امکان جابه‌جایی میان آن‌ها. فشردن کلید میانبر delete-entry (shift-delete) پنجره را می‌بندد. فشردن کلید میانبر accept-custom (control-enter یا shift-enter) دستوری را روی پنجره اجرا می‌کند. (گزینه window-command را ببینید)؛

در صورت عدم وجود تطبیق، تلاش می‌کند ورودی را اجرا کند.

نمایش فهرستی از پنجره‌های موجود در میزکار فعلی و امکان جابه‌جایی میان آن‌ها. فشردن میانبر delete-entry (shift-delete) پنجره را متوقف می‌سازد. فشردن میانبر accept-custom (control-enter یا shift-enter) دستوری را روی پنجره اجرا می‌کند. (گزینه window-command را ببینید)؛

در صورت نبود تطبیق، تلاش می‌کند متن ورودی را اجرا کند.

فهرستی از فایل‌های اجرایی موجود در $PATH را نشان می‌دهد و می‌تواند آن‌ها را اجرا کند (اختیاری در ترمینال).

•
فشردن میانبر delete-entry (shift-delete) این مدخل را از تاریخچه اجرا حذف می‌کند.
•
فشردن میانبر accept-custom (control-enter) دستور را همان‌طور که در کادر ورودی وارد شده اجرا می‌کند.
•
فشردن میانبر accept-alt (shift-enter) دستور را در یک ترمینال اجرا خواهد کرد.

با فشردن میانبر mode-complete (Control-l)، می‌توانید از حالت File Browser برای اجرای برنامه همراه با یک فایل به عنوان نخستین آرگومان استفاده کنید.

مشابه با اجراکننده‌های run است، اما فهرست از فایل‌های دسکتاپ نصب‌شده ساخته می‌شود. در صورت مشخص شدن در Desktop File، برنامه‌ها را به صورت خودکار در یک ترمینال اجرا می‌کند.

•
فشردن میانبر delete-entry (shift-delete) این مدخل را از تاریخچه اجرا حذف می‌کند.
•
فشردن میانبر accept-custom (control-enter) دستور را همان‌گونه که در کادر ورودی وارد شده اجرا می‌کند.
•
فشردن میانبر accept-alt (shift-enter) دستور را در یک ترمینال اجرا می‌نماید.

با فشردن میانبر mode-complete (Control-l)، می‌توانید در صورت تعیین در فایل دسکتاپ، از حالت File Browser برای اجرای برنامه همراه با ارسال یک فایل به عنوان آرگومان بهره ببرید.

حالت DRUN تلاش می‌کند از مشخصات Desktop Entry در XDG پیروی کند و باید با برنامه‌هایی که از این استاندارد استفاده می‌کنند سازگار باشد. برخی برنامه‌ها فایل‌های دسکتاپ نامعتبر ایجاد می‌کنند؛ rofi این مدخل‌ها را کنار می‌گذارد. برای اطلاعات بیشتر در مورد حالت DRUN به بخش اشکال‌زدایی مراجعه کنید که علت کنار گذاشته شدن فایل‌های دسکتاپ را چاپ می‌کند.

چند گزینه پیشرفته برای تنظیم دقیق این رفتار وجود دارد:

configuration {
   drun {
      /** اسکن میزکار کاربر فعلی برای یافتن فایل‌های دسکتاپ */
      scan-desktop: true;
      /** تجزیه فایل‌های دسکتاپ کاربر */
      parse-user:   true;
      /** تجزیه فایل‌های دسکتاپ سیستمی */
      parse-system: false;
      /** غیرفعال کردن DBusActivatable */
      DBusActivatable: false;
   }
}

فهرستی از مقاصد SSH را بر اساس فایل کانفیگ ssh شما نمایش می‌دهد و اجازه می‌دهد سریعاً به آن‌ها ssh بزنید.

فهرستی قابل جستجو از کلیدهای میانبر را نمایش می‌دهد.

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

چندین حالت را در یک فهرست ترکیب می‌کند. حالت‌های گنجانده‌شده را با گزینه -combi-modes مشخص کنید.

هنگام استفاده از حالت combi، می‌توان از !bang برای فیلتر کردن نتایج بر اساس حالت‌ها استفاده کرد. تمام حالت‌هایی که با bang به عنوان پیشوند مطابقت داشته باشند گنجانده می‌شوند. برای مثال فرض کنید گزینه -combi-modes run,window,windowcd را تعیین کرده‌اید. اگر عبارت جستجوی شما با !w آغاز شود، تنها نتایج حالت‌های window و windowcd نمایش داده می‌شوند، حتی اگر ادامه متن ورودی با نتایج run مطابقت داشته باشد.

در صورت نبود تطبیق، ورودی توسط نخستین حالت ترکیب‌شده پردازش می‌شود.

استفاده از یک فونت با عرض یکسان (mono-space) یا تب‌ها همراه با تنظیم tab-stops را امتحان کنید.

نقل‌قول‌های استفاده‌شده در خط فرمان را بررسی کنید: ممکن است به جای " (نقل‌قول‌های استاندارد) از “ (نقل‌قول‌های هوشمند) استفاده کرده باشید.

نشانگر موارد زیر را نمایش می‌دهد:

•
`` غیرحساس به حروف بزرگ و کوچک و بدون مرتب‌سازی.
•
- حساسیت به حروف فعال، بدون مرتب‌سازی.
•
+ غیرحساس به حروف و مرتب‌سازی فعال.
•
± مرتب‌سازی و حساسیت به حروف فعال.

هر یک از این حالت‌ها از روش‌های متفاوتی برای تعیین آیکون استفاده می‌کنند:

•
Window: ابتدا از آیکونی که برنامه از طریق سرور X11 مشخص کرده استفاده می‌کند؛ اگر چیزی تنظیم نشده باشد، نام کلاس پنجره را در پوسته آیکون جستجو می‌کند.
•
drun: از آیکون تعیین‌شده در فایل دسکتاپ بهره می‌برد.
•
run: جستجو را با استفاده از نام فایل اجرایی انجام می‌دهد.

چند مثال کاربردی پایه از rofi:

نمایش دیالوگ run:

rofi -modes run -show run

نمایش دیالوگ run، و امکان جابه‌جایی به دیالوگ فایل دسکتاپ (drun):

rofi -modes run,drun -show run

ترکیب دیالوگ run و دیالوگ فایل دسکتاپ (drun):

rofi -modes combi -show combi -combi-modes run,drun

ترکیب دیالوگ run و دیالوگ فایل دسکتاپ (drun)، و امکان جابه‌جایی به جابه‌جاگر پنجره:

rofi -modes combi,window -show combi -combi-modes run,drun

نمایش یک پیام متنی با این اعلان که این پایان کار است:

rofi -e "This is the end"

نمایش یک پیام متنی قرمز رنگ و بولد با این اعلان که هنوز پایان کار است:

rofi -e "<span color='red'><b>This is still the end</b></span>" -markup

نمایش تمامی کلیدهای میانبر:

rofi -show keys

در i3 بهتر است اجرای rofi را به رها شدن کلید (key release) مقید کنید. در غیر این صورت، نمی‌تواند صفحه‌کلید را تسخیر کند. همچنین به راهنمای کاربری در i3 مراجعه فرمایید:

برخی ابزارها (مانند import یا xdotool) ممکن است نتوانند هنگام رخداد KeyPress اجرا شوند، زیرا صفحه‌کلید/اشاره‌گر همچنان در تصرف است. برای این موقعیت‌ها می‌توان از فلگ --release استفاده کرد، زیرا دستور را پس از رها شدن کلیدها اجرا خواهد کرد.

پویانمایی‌های Hyprland اجرای Rofi را کندتر از حد معمول جلوه می‌دهند. برای جلوگیری از این حالت، قاعده زیر را به فایل hyprland.conf خود اضافه کنید:

layerrule = noanim,^(rofi)$

این دستور پویانمایی‌ها را روی پنجره Rofi غیرفعال می‌کند.

MIT/X11
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

وبگاه rofi در اینجا در دسترس است.

پشتیبانی rofi از راه‌های زیر امکان‌پذیر است:

•
گفتگوهای گیت‌هاب (GitHub Discussions)
•
IRC (کانال #rofi در irc.libera.chat)،

برای اطلاعات بیشتر صفحه راهنمای rofi-debugging(5) را ببینید.

سامانه پیگیری باگ‌های rofi در اینجا قابل مشاهده است. پیش از ایجاد یک گزارش باگ، ابتدا ارسال پرسش در انجمن گفتگو را مد نظر قرار دهید. هنگام ایجاد یک issue، لطفاً ابتدا این سند را مطالعه فرمایید.

rofi-sensible-terminal(1), dmenu(1), rofi-debugging(5), rofi-theme(5), rofi-script(5), rofi-keys(5),rofi-theme-selector(1),rofi-dmenu(5)

•
Qball Cow qball@blame.services
•
Rasmus Steinke rasi@xssn.at
•
Morgane Glidic sardemff7+rofi@sardemff7.net

کد اصلی بر اساس کار توسعه داده شده توسط: Sean Pringle sean.pringle@gmail.com

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

rofi