| rofi(1) | General Commands Manual | rofi(1) |
نام (NAME)
rofi - پنجرهابزار، اجراکننده برنامهها، دیالوگ ssh، جایگزین dmenu و موارد دیگر
خلاصه دستور (SYNOPSIS)
rofi [ -show mode ]|[ -dmenu ]|[ -e msg ] CONFIGURATION
توضیحات (DESCRIPTION)
دستور rofi یک پنجرهابزار پاپآپ X11، کادر محاورهای اجرا، جایگزین dmenu و مواردی فراتر از اینها است. تمرکز این ابزار بر سرعت عملکرد بالا و کمترین میزان حواسپرتی کاربر است. این برنامه از ناوبری با صفحهکلید و ماوس، تایپ برای فیلتر کردن، جستجوی نشانهای (tokenized) و قابلیتهای متعدد دیگر پشتیبانی میکند.
نحوه استفاده (USAGE)
کارکرد اصلی rofi کمک به جریان کاری شما است که امکان جابهجایی سریع میان پنجرهها، اجرای برنامهها یا ورود به ماشینهای دوردست از طریق ssh را فراهم میسازد. حالتهای مختلفی (modes) برای انواع گوناگون اقدامات وجود دارد. ابزار rofi یک برنامه مستقل است و نباید درون اسکریپتها ادغام گردد. جهت یکپارچهسازی در اسکریپتها، دارای یک حالت ویژه است که به عنوان جایگزین مستقیم (drop-in) برای dmenu(1) عمل میکند. بخش شبیهسازی dmenu را در ادامه ببینید.
اجرای rofi (Running rofi)
برای اجرای مستقیم rofi در یک حالت مشخص، حالت را با دستور rofi -show <mode> تعیین کنید. جهت نمایش دیالوگ drun:
-
rofi -show drun
یک پیکربندی کاربردی در مدیر پنجرههای مینیمال، ترکیب حالتهای drun و run با حالت window است:
-
rofi -show combi -modes combi -combi-modes "window,drun,run"
در این چیدمان، ابتدا تمام برنامههای باز فهرست میشوند و سپس تمام برنامههای نصبشده نمایش مییابند. بنابراین اگر firefox را تایپ کرده و Enter را فشار دهید، به فایرفاکس در حال اجرا جابهجا میشوید یا در صورتی که در حال اجرا نباشد، اجرا خواهد شد.
شبیهسازی dmenu (Emulating dmenu)
ابزار rofi میتواند در صورت اجرا با فلگ -dmenu، برنامه dmenu(1) (منوی پویا برای X11) را شبیهسازی کند.
برای اطلاعات بیشتر به rofi-dmenu(5) مراجعه فرمایید.
نمایش پیام خطا (Display Error message)
دیالوگ خطای rofi را نیز میتوان از خط فرمان فراخوانی کرد.
-
rofi -e "my message"
پشتیبانی از نشانهگذاری (Markup) را میتوان فعال کرد، گزینههای پیکربندی را ببینید.
پیکربندی (CONFIGURATION)
در حال حاضر سه روش برای تنظیم گزینههای پیکربندی وجود دارد (به ترتیبی که در زیر ارزیابی میشوند):
- •
- فایل پیکربندی سیستم (به عنوان مثال /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
در ادامه فهرستی از مهمترین گزینهها آمده است:
عمومی (General)
- -help
- گزینه help فهرست کاملی از گزینههای خط فرمان و مقادیر تنظیمشده فعلی را نمایش میدهد. این موارد شامل گزینههای پویا (تولیدشده در زمان اجرا) نیز میشوند.
- -info
- گزینه info اطلاعات مفیدی را جهت درج هنگام گزارش یک اشکال نمایش میدهد. این اطلاعات شامل گزینههای زمان کامپایل، مانیتورهای شناساییشده و موارد دیگر است. لطفاً پیش از ارسال آنلاین، خروجی را از نظر وجود اطلاعات شخصی بررسی کنید.
- -version
- نسخه rofi را نمایش داده و خارج میشود.
- -dump-config
- پیکربندی فعال فعلی را در فرمت rasi روی خروجی استاندارد (stdout) ریخته و خارج میشود. اطلاعات مربوط به فرمت rasi را میتوان در صفحه راهنمای rofi-theme(5) یافت.
- -dump-theme
- پوسته فعال فعلی را در فرمت rasi روی خروجی استاندارد ریخته و خارج میشود.
- -rasi-validate filename
- تلاش برای تجزیه فایل؛ در صورت موفقیت کد 0 و در صورت شکست مقداری غیر صفر برمیگرداند.
- -list-keybindings
- فهرست کردن تمام کلیدهای میانبر شناختهشده بدون تلاش برای تجزیه آنها. از این گزینه میتوان برای بررسی کلیدهای تکراری استفاده کرد.
- -threads num
- تعیین تعداد رشتههایی (threads) که rofi باید استفاده کند:
- •
- 0: تشخیص خودکار تعداد رشتههای سختافزاری پشتیبانیشده.
- •
- 1: غیرفعال کردن چندرشتهای
- •
- 2..n: تعیین حداکثر تعداد رشتههای مورد استفاده در استخر رشتهها (thread pool).
پیشفرض: Autodetect (تشخیص خودکار)
- -display display
- سرور 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) را ببینید.
- -show mode
- باز کردن rofi در یک حالت خاص. حالتهای موجود عبارتند از window، run، drun، ssh و combi. آرگومان ویژه keys را میتوان برای باز کردن فهرستی قابل جستجو از کلیدهای میانبر پشتیبانیشده استفاده کرد (صفحه راهنمای rofi-keys(5) را ببینید).
برای نمایش دیالوگ run:
-
rofi -show run
اگر -show آخرین گزینه ارسالشده به rofi باشد، اولین حالت فعالشده نمایش داده میشود.
- -modes mode1,mode2
- تعیین فهرستی مرتب و جداشده با کاما از حالتهای فعال. حالتهای فعال را میتوان در زمان اجرا تغییر داد. کلید پیشفرض 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"
- -case-sensitive
- شروع در حالت حساس به حروف بزرگ و کوچک. این گزینه را میتوان در زمان اجرا با استفاده از میانبر کلیدی -kb-toggle-case-sensitivity تغییر داد.
- -case-smart
- شروع در حالت حساسیت هوشمند حروف، مشابه با رفتار smartcase در vim، که حساسیت به حروف را بر اساس ورودی تعیین میکند. در صورت فعال بودن، تنظیمات -case-sensitive نادیده گرفته میشود.
- -cycle
- چرخش در فهرست نتایج. پیشفرض `true' است.
- -filter filter
- فیلتر کردن فهرست با قرار دادن متن در نوار ورودی روی filter.
- -config filename
- بارگذاری یک فایل پیکربندی جایگزین.
- -cache-dir filename
- دایرکتوری مورد استفاده برای قرار دادن فایلهای موقت، مانند تاریخچه.
- -scroll-method method
- انتخاب روش پیمایش. 0: صفحهای (Per page)، 1: پیوسته (continuous).
- -normalize-match
- نرمالسازی رشته پیش از تطبیق؛ بنابراین o با ö و é با e تطبیق مییابد. این پیادهسازی کامل نیست، اما به خوبی کار میکند. در حال حاضر، برجستهسازی بخش تطبیقیافته را غیرفعال میکند.
- -no-lazy-grab
- غیرفعال کردن گرفتن تنبل (lazy grab)؛ این امر گرفتن صفحهکلید را پیش از نمایش رابط کاربری گرافیکی اجباری میکند.
- -no-plugins
- غیرفعال کردن بارگذاری افزونهها.
- -plugin-path directory
- تعیین دایرکتوری که rofi باید در آن به دنبال افزونهها بگردد.
- -show-icons
- نمایش آیکون برنامهها در حالتهای drun و window.
- -icon-theme
- تعیین پوسته آیکون مورد استفاده. در صورت عدم تعیین، پوسته پیشفرض محیط رومیزی استفاده میشود؛ پوستههای Adwaita و gnome به عنوان پوستههای جایگزین عمل میکنند.
- -markup
- استفاده از نشانهگذاری Pango برای قالببندی خروجی در هر کجا که امکانپذیر باشد.
- -normal-window
- وادار کردن rofi به داشتن واکنشی مانند یک پنجره معمولی برنامه. برای اسکریپتهایی مانند Clerk که اساساً یک برنامه هستند مفید است.
- -transient-window
- وادار کردن rofi به رفتاری مانند یک دیالوگ مدال که نسبت به پنجره دارای فوکوس فعلی گذرا (transient) است. زمانی مفید است که از میانبر صفحهکلید برای اجرا و نمایش روی پنجرهای که با آن کار میکنید استفاده میکنید.
- -[no-]steal-focus
- وادار کردن rofi به ربودن فوکوس هنگام اجرا و بازگرداندن آن به پنجره قبلی هنگام بسته شدن.
- -refilter-timeout-limit
- حد زمانی (به میلیثانیه) که فیلتر میتواند پیش از تغییر از حالت آنی به تاخیری مصرف کند.
پیشفرض: 300
میتوان برای هر حالت یک آیکون جایگزین تعیین کرد:
-
configuration { <mode>{ fallback-icon: "<icon name>"; } }
مثال
-
configuration { run,drun { fallback-icon: "application-x-addon"; } }
تطبیق (Matching)
- -matching method
- تعیین الگوریتم تطبیق مورد استفاده. در حال حاضر، روشهای زیر پشتیبانی میشوند:
- •
- normal: تطبیق کل رشته
- •
- regex: تطبیق با ورودی عبارت منظم (regex)
- •
- glob: تطبیق با الگوی گلوب (glob)
- •
- fuzzy: انجام تطبیق فازی (تقریبی)
- •
- prefix: تطبیق با پیشوند
پیشفرض: normal
میتوان چندین روش تطبیق را در فهرستی جداشده با کاما تعیین کرد. کلیدهای میانبر تطبیق بالا/پایین امکان جابهجایی چرخشی در زمان اجرا را فراهم میکنند.
نکته: تطبیق با glob ممکن است برای فهرستهای بزرگ کند باشد.
- -tokenize
- نشانهگذاری (توکنسازی) ورودی.
- -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
- -matching-negate-char string
- تعیین نویسه مورد استفاده برای نقیض کردن عبارت جستجو (یعنی اگر با کلمه کلیدی بعدی تطبیق نداشت). برای غیرفعال کردن روی `''` تنظیم کنید. نخستین نویسه ASCII از رشته را در نظر میگیرد.
پیشفرض: `-`
مرتبسازی منوی فیلترشده (Filtered menu sort)
- -[no]-sort
- فعال یا غیرفعال کردن مرتبسازی برای منوی فیلترشده. این تنظیم را میتوان در زمان اجرا تغییر داد (به -kb-toggle-sort مراجعه کنید).
- -sorting-method `method` برای تعیین روش مرتبسازی.
- ۲ روش وجود دارد:
- •
- levenshtein (پیشفرض)
- •
- fzf
چیدمان و پوستهبندی (Layout and Theming)
مهم: در نسخههای جدیدتر rofi، تمام گزینههای مربوط به پوسته به فرمت جدید پوسته (theme format) منتقل شدهاند. آنها دیگر گزینههای عادی rofi که بتوان مستقیماً در خط فرمان ارسال کرد نیستند (زیرا تعداد آنها بسیار زیاد است). میتوان قطعهکدهای کوچک را در خط فرمان ارسال کرد: rofi -theme-str 'window {width: 50%;}' تا یک تنظیم منفرد بازنویسی شود. این قطعهکدها در پوسته فعلی ادغام میشوند. همچنین میتوان آنها را به انتهای فایل کانفیگ rofi ضمیمه کرد تا بخشهایی از پوسته بازنویسی شود.
بیشتر گزینههای زیر منسوخ شدهاند (deprecated) و نباید استفاده شوند. لطفاً برای سفارشیسازی rofi از فرمت جدید پوسته بهره بگیرید. اطلاعات بیشتر درباره فرمت جدید را میتوان در صفحه راهنمای rofi-theme(5) یافت.
- -location
- تعیین محل قرارگیری پنجره. اعداد به موقعیتهای زیر بر روی صفحه مپ میشوند:
-
1 2 3 8 0 4 7 6 5
پیشفرض: 0
- -fixed-num-lines
- حفظ تعداد ثابتی از خطوط قابل مشاهده.
- باز شدن در حالت نوار کناری (sidebar-mode). در این حالت، فهرستی از تمام حالتهای فعال در پایین نمایش داده میشود (گزینه -modes را ببینید). برای نمایش نوار کناری، دستور زیر را اجرا کنید:
-
rofi -show run -sidebar-mode
- -hover-select
- انتخاب خودکار گزینهای که ماوس روی آن قرار میگیرد (hover). این گزینه در ترکیب با کلیدهای سفارشی ماوس بهترین کاربرد را دارد. برای استفاده از hover-select و پذیرش یک گزینه با یک کلیک:
-
rofi -show run -hover-select -me-select-entry '' -me-accept-entry MousePrimary
- -eh number
- تنظیم ارتفاع سطر (به نویسه). پیشفرض: 1
- -auto-select
- هنگامی که تنها یک مدخل باقی مانده باشد، آن را به صورت خودکار انتخاب میکند.
- -m num, -m name, -monitor num, -monitor name
- انتخاب مانیتور برای نمایش rofi. این گزینه به عنوان ورودی موارد زیر را میپذیرد: primary (اگر خروجی اصلی تنظیم شده باشد)، نام خروجی xrandr، یا یک عدد صحیح (به ترتیب شناسایی). با اعداد منفی به گونهای متفاوت رفتار میشود:
- •
- -1: مانیتور دارای فوکوس فعلی.
- •
- -2: پنجره دارای فوکوس فعلی (به این معنی که rofi روی پنجره دارای فوکوس نمایش داده میشود).
- •
- -3: موقعیت ماوس (تنظیمات مکان را لغو میکند تا رفتار عادی منوی متنی به دست آید).
- •
- -4: مانیتور حاوی پنجره دارای فوکوس.
- •
- -5: مانیتوری که اشارهگر ماوس را نشان میدهد.
پیشفرض: -5
خروجی rofi -h را برای مانیتورهای شناساییشده، موقعیت و اندازه آنها ببینید.
- -theme filename
- مسیر فایل پوسته، یا نام یک پوسته نصبشده. برای چگونگی حل و شناسایی پوستهها صفحه راهنمای rofi-theme(5) را ببینید.
- -theme-str string
- امکان تعیین بخشهایی از پوسته در خط فرمان به عنوان بازنویسی (override).
به عنوان مثال:
-
rofi -theme-str '#window { fullscreen: true; }'
این گزینه را میتوان چندین بار تعیین کرد. این شیوه اکنون روش اصلی برای تنظیم پوسته از طریق خط فرمان است.
- -dpi number
- بازنویسی تنظیمات پیشفرض DPI.
روی X11:
- •
- اگر روی 0 تنظیم شود، تلاش میکند بر اساس اندازه صفحه X11 به صورت خودکار شناسایی کند (مشابه با i3 و GTK).
- •
- اگر روی 1 تنظیم شود، تلاش میکند بر اساس اندازه مانیتوری که rofi روی آن نمایش داده میشود به صورت خودکار شناسایی کند (مشابه با جدیدترین نسخه Qt 5).
روی Wayland:
- •
- اگر روی 0 یا 1 تنظیم شود، در صورت وجود یک مانیتور یا تعیین نام -monitor، تلاش میکند به صورت خودکار شناسایی کند.
- -selected-row selected row
- انتخاب یک سطر مشخص.
پیشفرض: 0
تنظیمات الگو (PATTERN setting)
- -terminal
- تعیین ترمینالی که باید راهاندازی شود.
-
rofi -terminal xterm
الگو: {terminal}
پیشفرض: x-terminal-emulator
- -ssh-client client
- بازنویسی کلاینت ssh مورد استفاده.
الگو: {ssh-client}
پیشفرض: ssh
تنظیمات SSH (SSH settings)
- -ssh-command cmd
- تنظیم دستوری که هنگام شروع یک نشست ssh اجرا میشود. الگوی {host} با مدخل ssh انتخابشده جایگزین میگردد.
الگو: {ssh-client}
پیشفرض: {terminal} -e {ssh-client} {host}
- -parse-hosts
- تجزیه فایل /etc/hosts جهت استخراج مدخلها.
پیشفرض: disabled (غیرفعال)
- -[no-]parse-known-hosts
- تجزیه فایل ~/.ssh/known_hosts برای استخراج مدخلها.
پیشفرض: enabled (فعال)
تنظیمات Run (Run settings)
- -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 switcher settings)
- -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 (Combi settings)
- -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، این تنظیم نادیده گرفته میشود.
تاریخچه (History)
- -[no-]disable-history
- غیرفعال کردن یا فعالسازی مجدد تاریخچه.
- -max-history-size number
- حداکثر تعداد مدخلها برای ذخیره در تاریخچه. پیشفرض 25 است. (هشدار: تنظیم مقادیر بیش از حد بالا میتواند باعث افت سرعت شود)
دیالوگ پیام (Message dialog)
- -e message
- نمایش یک کادر محاورهای پیام (به صورت داخلی برای نمایش خطاها استفاده میشود) حاوی message. پیام میتواند چندخطی باشد.
ارسال -e - به صورت مسدودکننده (blocking) از ورودی استاندارد میخواند و آن را نمایش میدهد.
تنظیمات مرورگر فایل (File browser settings)
رفتار مرورگر فایل را میتوان از طریق گزینههای زیر کنترل کرد:
-
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 نیز تغییر وضعیت داد.
تنظیمات مرورگر بازگشتی (Recursive Browser settings)
رفتار مرورگر بازگشتی فایل را میتوان با استفاده از گزینههای زیر کنترل کرد:
-
configuration { recursivebrowser { /** دایرکتوری شروع به کار مرورگر فایل */ directory: "/some/directory"; /** بازگرداندن ۱ هنگام لغو */ cancel-returns-1: true; /** فیلتر کردن مدخلها با عبارت منظم */ filter-regex: "(.*cache.*|.*\.o)"; /** دستور اجرا */ command: "xdg-open"; } }
تاریخچه ورودیها (Entry history)
تعداد ورودیهای پیشین برای کادر ورود متن را میتوان با تنظیم max-history روی جعبه ورودی تغییر داد.
-
configuration { entry { max-history: 30; } }
به طور پیشفرض این فایل در دایرکتوری حافظه موقت (cache) سیستم، در فایلی به نام rofi-entry-history.txt ذخیره میشود.
سایر موارد (Other)
- -drun-use-desktop-cache
- ایجاد و استفاده از حافظه موقت (cache) برای محتوای فایلهای desktop. کاربردی برای سیستمهای دارای دیسکهای سخت کند.
- -drun-reload-desktop-cache
- در صورت فعال بودن drun-use-desktop-cache، کش محتوای فایلهای desktop را مجدداً بازسازی میکند.
- -drun-url-launcher command
- دستور باز کردن مدخل Desktop که از نوع پیوند (Link) است.
- -pid path
- وادار کردن rofi به ساخت فایل pid و بررسی آن هنگام راهاندازی. فایل pid از اجرای همزمان چندین نمونه از rofi جلوگیری میکند. این قابلیت هنگام اجرای rofi از طریق یک دیمن کلید میانبر بسیار مفید است.
- -replace
- اگر rofi بر اساس فایل pid از قبل در حال اجرا باشد، تلاش میکند آن نمونه را متوقف سازد.
- -display-{mode} string
- تنظیم نام مورد استفاده برای mode. این نام به عنوان اعلان (prompt) و در combi-browser به کار میرود.
اکنون ترجیح بر استفاده از فایل پیکربندی است:
-
configuration { {mode} { display-name: *string*; } }
- -[no-]click-to-exit
- کلیک ماوس در خارج از پنجره rofi برای خروج.
پیشفرض: enabled (فعال)
- -global-kb -no-global-kb
- (wayland) بازنویسی کلیدهای میانبر کامپوزیتور، تا rofi بتواند مجدداً از آنها استفاده کند.
پیشفرض: disabled (غیرفعال)
- -xserver-i300-workaround
- راهکار دور زدن اشکال در Xserver. گزارشهای شماره #611 و #1642 را در سامانه پیگیری اشکالات rofi ببینید.
پیشفرض: disabled (غیرفعال)
الگو (PATTERN)
برای اجرای دستورات (به عنوان مثال، هنگام استفاده از اجراکننده ssh)، کاربر میتواند از خط فرمان استفادهشده بهره ببرد. کلیدهای زیر را میتوان استفاده کرد که در زمان اجرا جایگزین خواهند شد:
- •
- {host}: میزبان مقصد برای برقراری اتصال
- •
- {terminal}: ترمینال پیکربندیشده (به -terminal مراجعه کنید)
- •
- {ssh-client}: کلاینت ssh پیکربندیشده (به -ssh-client مراجعه کنید)
- •
- {cmd}: دستور قابل اجرا
- •
- {window}: شناسه پنجره برای پنجره انتخابشده (در window-command)
رشته به این صورت پردازش میشود: {key} با مقدار خود جایگزین میشود؛ اگر {key} تنظیم نشده باشد، حذف میگردد. اگر {key} بین [] قرار داشته باشد و {key} تنظیم نشده باشد، تمام متن بین [] حذف میشود. در غیر این صورت، کلید جایگزین شده و علامتهای [] برداشته میشوند.
به عنوان مثال: {ssh-client} [-p {port}] {host}
پوستهبندی (THEMING)
لطفاً برای اطلاعات بیشتر درباره پوستهها به صفحه راهنمای rofi-theme(5) مراجعه فرمایید.
کلیدهای میانبر (KEY BINDINGS)
لطفاً برای اطلاع از کلیدهای میانبر و چگونگی تنظیم آنها، صفحه راهنمای rofi-keys(5) را ببینید.
از کلیدهای میانبر میتوان برای اقدامات (actions) نیز استفاده کرد؛ هنگامی که اقدام اجرا میشود، کلید مذکور فشرده میشود:
مهلت زمانی (Timeout)
میتوان اقدامی را پیکربندی کرد تا زمانی که rofi برای تعداد مشخصی ثانیه بدون تعامل باقی بماند، انجام پذیرد. میتوان یک میانبر کلیدی را برای فعال شدن پس از X ثانیه تعیین کرد.
-
configuration { timeout { delay: 15; action: "kb-cancel"; } }
تغییر ورودی (Input change)
هنگامی که ورودی جعبه متن تغییر کند:
-
configuration { inputchange { action: "kb-row-first"; } }
حالتهای موجود (Available Modes)
window
نمایش فهرستی از تمام پنجرهها و امکان جابهجایی میان آنها. فشردن کلید میانبر delete-entry (shift-delete) پنجره را میبندد. فشردن کلید میانبر accept-custom (control-enter یا shift-enter) دستوری را روی پنجره اجرا میکند. (گزینه window-command را ببینید)؛
در صورت عدم وجود تطبیق، تلاش میکند ورودی را اجرا کند.
windowcd
نمایش فهرستی از پنجرههای موجود در میزکار فعلی و امکان جابهجایی میان آنها. فشردن میانبر delete-entry (shift-delete) پنجره را متوقف میسازد. فشردن میانبر accept-custom (control-enter یا shift-enter) دستوری را روی پنجره اجرا میکند. (گزینه window-command را ببینید)؛
در صورت نبود تطبیق، تلاش میکند متن ورودی را اجرا کند.
run
فهرستی از فایلهای اجرایی موجود در $PATH را نشان میدهد و میتواند آنها را اجرا کند (اختیاری در ترمینال).
- •
- فشردن میانبر delete-entry (shift-delete) این مدخل را از تاریخچه اجرا حذف میکند.
- •
- فشردن میانبر accept-custom (control-enter) دستور را همانطور که در کادر ورودی وارد شده اجرا میکند.
- •
- فشردن میانبر accept-alt (shift-enter) دستور را در یک ترمینال اجرا خواهد کرد.
با فشردن میانبر mode-complete (Control-l)، میتوانید از حالت File Browser برای اجرای برنامه همراه با یک فایل به عنوان نخستین آرگومان استفاده کنید.
drun
مشابه با اجراکنندههای 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 شما نمایش میدهد و اجازه میدهد سریعاً به آنها ssh بزنید.
keys
فهرستی قابل جستجو از کلیدهای میانبر را نمایش میدهد.
script
امکان افزودن حالتهای سفارشی اسکریپتشده را فراهم میسازد؛ برای اطلاعات بیشتر صفحه راهنمای rofi-script(5) را ببینید.
combi
چندین حالت را در یک فهرست ترکیب میکند. حالتهای گنجاندهشده را با گزینه -combi-modes مشخص کنید.
هنگام استفاده از حالت combi، میتوان از !bang برای فیلتر کردن نتایج بر اساس حالتها استفاده کرد. تمام حالتهایی که با bang به عنوان پیشوند مطابقت داشته باشند گنجانده میشوند. برای مثال فرض کنید گزینه -combi-modes run,window,windowcd را تعیین کردهاید. اگر عبارت جستجوی شما با !w آغاز شود، تنها نتایج حالتهای window و windowcd نمایش داده میشوند، حتی اگر ادامه متن ورودی با نتایج run مطابقت داشته باشد.
در صورت نبود تطبیق، ورودی توسط نخستین حالت ترکیبشده پردازش میشود.
پرسشهای متداول (FAQ)
متن در جابهجاگر پنجره به خوبی تراز نشده است
استفاده از یک فونت با عرض یکسان (mono-space) یا تبها همراه با تنظیم tab-stops را امتحان کنید.
پنجره کاملاً سیاه است
نقلقولهای استفادهشده در خط فرمان را بررسی کنید: ممکن است به جای " (نقلقولهای استاندارد) از “ (نقلقولهای هوشمند) استفاده کرده باشید.
آیکون گوشه بالا سمت راست چه چیزی را نشان میدهد؟
نشانگر موارد زیر را نمایش میدهد:
- •
- `` غیرحساس به حروف بزرگ و کوچک و بدون مرتبسازی.
- •
- - حساسیت به حروف فعال، بدون مرتبسازی.
- •
- + غیرحساس به حروف و مرتبسازی فعال.
- •
- ± مرتبسازی و حساسیت به حروف فعال.
چرا آیکونهای متفاوتی برای حالتهای run، drun و window میبینم
هر یک از این حالتها از روشهای متفاوتی برای تعیین آیکون استفاده میکنند:
- •
- Window: ابتدا از آیکونی که برنامه از طریق سرور X11 مشخص کرده استفاده میکند؛ اگر چیزی تنظیم نشده باشد، نام کلاس پنجره را در پوسته آیکون جستجو میکند.
- •
- drun: از آیکون تعیینشده در فایل دسکتاپ بهره میبرد.
- •
- run: جستجو را با استفاده از نام فایل اجرایی انجام میدهد.
مثالها (EXAMPLES)
چند مثال کاربردی پایه از 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
در i3 بهتر است اجرای rofi را به رها شدن کلید (key release) مقید کنید. در غیر این صورت، نمیتواند صفحهکلید را تسخیر کند. همچنین به راهنمای کاربری در i3 مراجعه فرمایید:
برخی ابزارها (مانند import یا xdotool) ممکن است نتوانند هنگام رخداد KeyPress اجرا شوند، زیرا صفحهکلید/اشارهگر همچنان در تصرف است. برای این موقعیتها میتوان از فلگ --release استفاده کرد، زیرا دستور را پس از رها شدن کلیدها اجرا خواهد کرد.
Hyprland
پویانماییهای Hyprland اجرای Rofi را کندتر از حد معمول جلوه میدهند. برای جلوگیری از این حالت، قاعده زیر را به فایل hyprland.conf خود اضافه کنید:
-
layerrule = noanim,^(rofi)$
این دستور پویانماییها را روی پنجره Rofi غیرفعال میکند.
مجوز (LICENSE)
-
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.
وبگاه (WEBSITE)
وبگاه rofi در اینجا در دسترس است.
پشتیبانی (SUPPORT)
پشتیبانی rofi از راههای زیر امکانپذیر است:
- •
- گفتگوهای گیتهاب (GitHub Discussions)
- •
- IRC (کانال #rofi در irc.libera.chat)،
اشکالزدایی (DEBUGGING)
برای اطلاعات بیشتر صفحه راهنمای rofi-debugging(5) را ببینید.
سامانه گزارش باگ (ISSUE TRACKER)
سامانه پیگیری باگهای rofi در اینجا قابل مشاهده است. پیش از ایجاد یک گزارش باگ، ابتدا ارسال پرسش در انجمن گفتگو را مد نظر قرار دهید. هنگام ایجاد یک issue، لطفاً ابتدا این سند را مطالعه فرمایید.
همچنین ببینید (SEE ALSO)
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)
نویسنده (AUTHOR)
- •
- Qball Cow qball@blame.services
- •
- Rasmus Steinke rasi@xssn.at
- •
- Morgane Glidic sardemff7+rofi@sardemff7.net
کد اصلی بر اساس کار توسعه داده شده توسط: Sean Pringle sean.pringle@gmail.com
برای مشاهده فهرست کامل نویسندگان، فایل AUTHORS را بررسی کنید.
| rofi |