| fuzzel.ini(5) | File Formats Manual | fuzzel.ini(5) |
نام (NAME)
fuzzel.ini - فایل پیکربندی لانچر برنامه Fuzzel
توضیحات (DESCRIPTION)
برنامه fuzzel از قالب استاندارد پیکربندی یونیکس بر پایه جفتهای کلید/مقدار در بخشهای مختلف استفاده میکند. بخش پیشفرض معمولاً بدون نام است، یعنی پیشوند [section] ندارد. با این حال، در صورتی که نیاز باشد پس از هر یک از بخشهای دیگر مجدداً باز شود، میتوان آن را صراحتاً [main] نامید.
برنامه fuzzel پرونده پیکربندی را به ترتیب در مکانهای زیر جستجو میکند:
- XDG_CONFIG_HOME/fuzzel/fuzzel.ini (در صورت تنظیم نشدن، به صورت پیشفرض ~/.config/fuzzel/fuzzel.ini)
- XDG_CONFIG_DIRS/fuzzel/fuzzel.ini (در صورت تنظیم نشدن، به صورت پیشفرض /etc/xdg/fuzzel/fuzzel.ini)
یک نمونه پرونده پیکربندی که شامل تمام گزینهها با مقادیر پیشفرض آنها به صورت کامنتشده است، معمولاً در مسیر /etc/xdg/fuzzel/fuzzel.ini نصب میشود.
SECTION: main
include
پرونده واردشده محدوده بخش (section scope) مختص به خود را دارد. به این معنی که پیکربندی فراخوانیکننده، بدون توجه به اینکه پرونده واردشده در چه بخشی به پایان میرسد، پس از include همچنان در بخش پیشفرض باقی میماند.
- مسیر باید یک مسیر مطلق باشد، یا با ~/ آغاز شود.
- استفاده از چندین دستور include مجاز است، اما در هر دستور فقط یک مسیر مجاز میباشد.
- وارد کردن تودرتو (Nested imports) مجاز است.
پیشفرض: تنظیم نشده (not set).
namespace
پیشفرض: launcher
output
مثال: DP-1
پیشفرض: تنظیم نشده -- به کامپوزیتور اجازه داده میشود خروجی را انتخاب کند.
font
مثالها:
- Dina:weight=bold:slant=italic
- Courier New:size=12
- Fantasque Sans Mono:fontfeatures=ss01
پیشفرض: monospace.
use-bold
dpi-aware
هنگامی که روی yes تنظیم شود، اندازه قلم با استفاده از DPI نمایشگر تعیین میشود، به طوری که یک قلم با اندازه مشخص، بدون توجه به نمایشگر، اندازه فیزیکی یکسانی خواهد داشت.
در این حالت، ضریب مقیاس (scaling factor) نمایشگر نادیده گرفته میشود؛ دو برابر شدن ضریب مقیاس، اندازه قلم را دو برابر نخواهد کرد.
هنگامی که روی no تنظیم شود، DPI نمایشگر نادیده گرفته میشود. در عوض، اندازه قلم با استفاده از ضریب مقیاس نمایشگر تعیین میشود؛ دو برابر شدن ضریب مقیاس، اندازه قلم را دو برابر میکند.
در نهایت، اگر روی auto تنظیم شود، در صورتی که همه نمایشگرها ضریب مقیاس ۱ داشته باشند، اندازه قلم با استفاده از DPI نمایشگر تعیین میشود. اگر حداقل یک نمایشگر ضریب مقیاسی بزرگتر از ۱ داشته باشد (صرفنظر از اینکه پنجره fuzzel روی آن نمایشگر قرار گرفته باشد یا خیر)، اندازه قلمها بر اساس ضریب مقیاس تغییر خواهد کرد.
توجه داشته باشید که این گزینه معمولاً با قلمهای بیتی (bitmap) که فقط شامل مجموعهای از اندازههای از پیش تعریفشده هستند و نمیتوان آنها را به صورت پویا مقیاسبندی کرد، کار نمیکند. از بین اندازههای موجود، هر اندازهای که بهترین تطابق را با DPI یا ضریب مقیاس داشته باشد، استفاده خواهد شد.
همچنین توجه داشته باشید که اگر اندازه قلم بر حسب پیکسل مشخص شده باشد (:pixelsize=N بهجای :size=N)، مقیاسبندی DPI (dpi-aware=yes) هیچ تأثیری نخواهد داشت (اندازه پیکسلی مشخصشده بدون تغییر استفاده میشود). اما اگر ضریب مقیاس نمایشگر برای تعیین اندازه قلم استفاده شود (dpi-aware=no)، اندازه پیکسلی قلم در ضریب مقیاس ضرب خواهد شد.
پیشفرض: auto.
gamma-correct-blending
در مقایسه با حالت پیشفرض (غیرفعال)، گلیفهای روشن روی پسزمینه تیره ضخیمتر به نظر میرسند و گلیفهای تیره روی پسزمینه روشن نازکتر دیده خواهند شد.
فناوری FreeType میتواند با روشی به نام «تیرهسازی ساقهها» (stem darkening) تأثیر مورد دوم را محدود کند. این قابلیت فقط برای قلمهای CFF (فرمتهای OpenType و .otf) در دسترس است و به طور پیشفرض (در FreeType) غیرفعال است. میتوانید قبل از اجرای fuzzel با تنظیم متغیر محیطی FREETYPE_PROPERTIES="cff:no-stem-darkening=0" آن را فعال کنید.
همچنین آگاه باشید که بسیاری از قلمها روی سیستمهایی طراحی شدهاند که ترکیب تصحیح گاما را انجام نمیدهند، بنابراین ممکن است هنگام رندر با ترکیب تصحیح گاما ضخیمتر از حد انتظار دیده شوند، زیرا طراح قلم وزن خطوط را بر اساس رندر نادرست تنظیم کرده است.
برای نمایش دقیق رنگها، به بافرهای تصویر با دقت بالاتر نیاز است. به همین دلیل، fuzzel هنگام فعال بودن ترکیب تصحیح گاما، از بافرهای تصویر ۱۶ بیتی (بهجای ۸ بیتی) استفاده میکند.
در نسخههای کامپایلشده fuzzel با پشتیبانی از cairo امکان فعالسازی ترکیب تصحیح گاما وجود ندارد، زیرا cairo از بافرهای تصویر ۱۶ بیتی پشتیبانی نمیکند.
placeholder
prompt
message
message-mode
wrap: هر خطی که طولانیتر از width باشد به خط بعدی شکسته میشود. در صورت امکان روی مرز فاصلهها شکسته میشود و فاصلههای ابتدایی ناشی از برش خط حذف میگردند. در صورتی که فاصلهای وجود نداشته باشد، خط پس از تعداد نویسههای مشخصشده در width شکسته میشود.
expand: اگر طولانیترین خط در message طولانیتر از width باشد، کادر محاوره عریضتر میشود تا پیام message در آن جا گیرد.
icon-theme
icons-enabled
hide-before-typing
fields
اگرچه fuzzel فقط نام برنامهها را نمایش میدهد، عملیات تطبیق میتواند (و به صورت پیشفرض نیز چنین است) بر روی فیلدهای دیگر نیز انجام شود. فیلدهای پشتیبانیشده عبارتند از:
- filename
- name
- generic
- exec
- categories
- keywords
- comment
فیلد "filename" نام فایل ".desktop" است.
پیشفرض: filename,name,generic.
password-character
match-mode
exact: آنچه تایپ میکنید به طور دقیق با هر یک از فیلدهای موجود در فهرست fields تطبیق داده میشود.
fzf: تطبیق به سبک fzf، که در آن زیررشتههای متن تایپشده با هر فیلد در فهرست fields مطابقت داده میشوند.
fuzzy: تطبیق فازی مبتنی بر الگوریتم لوناشتاین (levenshtein) برای متن تایپشده در برابر هر فیلد در فهرست fields.
پیشفرض: fzf
sort-result
غیرفعال کردن این گزینه میتواند زمان تأخیر جستجو را هنگام جستجو در مجموعههای داده بسیار بزرگ بهبود بخشد.
پیشفرض: yes
match-counter
پیشفرض: no.
filter-desktop
show-actions
terminal
دستور میتواند حاوی جاینگهدار {cmd} باشد که با دستور واقعی برای اجرا جایگزین خواهد شد. هنگامی که {cmd} وجود داشته باشد، دستور تنها در همان مکانها جایگزین میشود و به انتهای آن اضافه نمیشود.
مثالها:
- foot -a '{cmd}' -T '{cmd}' {cmd} شناسه برنامه (app-id) و عنوان را روی نام دستور تنظیم کرده و سپس آن را اجرا میکند
- xterm -e {cmd} دستور را در xterm اجرا میکند
- xterm -e (بدون {cmd}) از رفتار قدیمی استفاده میکند: دستور را پس از آرگومانهای ترمینال میافزاید
پیشفرض: $TERMINAL -e.
list-executables-in-path
launch-prefix
- DESKTOP_ENTRY_ID (همچنین برای سازگاری با نسخههای پیشین با نام FUZZEL_DESKTOP_FILE_ID صادر میشود)
- DESKTOP_ENTRY_PATH
- DESKTOP_ENTRY_NAME
- DESKTOP_ENTRY_COMMENT
- DESKTOP_ENTRY_NAME_L (بومیسازیشده)
- DESKTOP_ENTRY_COMMENT_L (بومیسازیشده)
- DESKTOP_ENTRY_ICON
- DESKTOP_ENTRY_ACTION (شناسه اقدام)
- DESKTOP_ENTRY_ACTION_NAME
- DESKTOP_ENTRY_ACTION_NAME_L (بومیسازیشده)
- DESKTOP_ENTRY_ACTION_ICON
پیشفرض: تنظیم نشده (not set).
anchor
- top-left
- top
- top-right
- left
- center
- right
- bottom-left
- bottom
- bottom-right
پیشفرض: center
x-margin
نکته: این گزینه هنگامی که anchor برابر با center، top یا bottom باشد تأثیری ندارد.
y-margin
نکته: این گزینه هنگامی که anchor برابر با center، left یا right باشد تأثیری ندارد.
lines
hide-prompt
minimal-lines
width
tabs
horizontal-pad
vertical-pad
inner-pad
image-size-ratio
line-height
letter-spacing
layer
مقدار top پنجره را بالاتر از پنجرههای عادی، اما معمولاً زیر پنجرههای تمامصفحه و صفحه قفل رندر میکند.
مقدار overlay پنجره را روی پنجرههای عادی و همچنین پنجرههای تمامصفحه رندر میکند. توجه داشته باشید که اگر چندین پنجره از یک لایه مشترک استفاده کنند، ترتیب قرارگیری نامشخص خواهد بود. از آنجا که صفحههای قفل معمولاً از overlay استفاده میکنند، این بدان معناست که fuzzel ممکن است روی صفحه قفل ظاهر شود یا نشود.
پیشفرض: overlay
keyboard-focus
حالت exclusive فوکوس صفحهکلید را روی fuzzel قفل میکند و تا زمان بسته شدن، تمام ورودیهای صفحهکلید را دریافت مینماید.
حالت on-demand فوکوس fuzzel را مانند یک پنجره معمولی تنظیم میکند و به سایر پنجرهها اجازه میدهد مثلاً با کلیک کردن روی آنها، فوکوس صفحهکلید را به دست آورند. به طور پیشفرض، تغییر فوکوس صفحهکلید بلافاصله باعث بسته شدن fuzzel میشود؛ با استفاده از exit-on-keyboard-focus-loss=no میتوانید در حین باز بودن fuzzel با سایر پنجرهها تعامل داشته باشید.
پیشفرض: exclusive
exit-on-keyboard-focus-loss
غیرفعال کردن این گزینه میتواند در کامپوزیتورهایی که در آنها فعال بودن قابلیت «focus-follows-mouse» با حرکت موشواره روی پنجره دیگر باعث خروج فوری fuzzel میشود، مفید باشد. به عنوان مثال، در Sway (نسخه ۱٫۷ یا قدیمیتر) چنین رفتاری دیده میشود.
پیشفرض: yes
render-workers
در صورتی که تعداد بسیار زیادی هسته یا نخ پردازشی دارید، محدود کردن تعداد render-workers را مد نظر قرار دهید؛ زیرا fuzzel نمیتواند بیش از تعداد موارد نمایشدادهشده را به صورت موازی پردازش کند.
match-workers
در صورتی که تعداد بسیار زیادی هسته یا نخ پردازشی دارید، محدود کردن تعداد match-workers را مد نظر قرار دهید؛ زیرا fuzzel نمیتواند بیش از تعداد مدخلهای موجود را به صورت موازی پردازش کند.
delayed-filter-ms
delayed-filter-limit
scaling-filter
گزینههای none، nearest و bilinear سریعترین گزینهها هستند، اما کمترین کیفیت خروجی را نیز دارند.
گزینههای cubic، lanczos2، lanczos3 و lanczos3-stretched کندترین گزینهها بوده و بهترین کیفیت خروجی را دارند.
گزینه box و تا حدودی linear از نظر کارایی در حد وسط قرار دارند، در حالی که در بیشتر موارد کیفیت آنها به اندازه یا نزدیک به cubic و فیلترهای lanczos است.
پیشفرض: box
cache
auto-select
enable-mouse
SECTION: colors
تمامی مقادیر رنگها در قالب RGBA هستند.
background
text
message
prompt
placeholder
input
match
selection
selection-text
selection-match
counter=HEX
border
SECTION: border
width
radius
selection-radius
SECTION: dmenu
mode
exit-immediately-if-empty
SECTION: key-bindings
این بخش به شما امکان میدهد کلیدهای میانبر پیشفرض را بازنویسی کنید.
قالب کلی به صورت action=combo1...comboN است. یعنی هر عمل (action) میتواند یک یا چند ترکیب کلید داشته باشد که با فاصله از هم جدا میشوند. هر ترکیب به شکل mod1+mod2+key است. نام کلیدهای تبدیلکننده (modifiers) و کلید اصلی باید نامهای معتبر کلید در XKB باشند.
توجه داشته باشید که اگر Shift یکی از کلیدهای تبدیلکننده باشد، نام کلید نباید با حروف بزرگ نوشته شود. برای مثال، Control+Shift+V هرگز فعال نخواهد شد، اما Control+Shift+v کار خواهد کرد.
توجه داشته باشید که کلید Alt معمولاً Mod1 نامیده میشود.
دستور xkbcli interactive-wayland میتواند برای یافتن نام کلیدها (keysym) مفید باشد.
یک ترکیب کلید فقط میتواند به یک عمل اختصاص یابد. فرض کنید میخواهید Control+k را به عمل next اختصاص دهید. از آنجا که این کلید میانبر پیشفرض برای delete-line-forward است، باید نگاشت پیشفرض را لغو کنید. این کار با تنظیم action=none قابل انجام است؛ مثلاً delete-line-forward=none.
cancel
execute
execute-or-next
execute-input
cursor-left
cursor-left-word
cursor-right
cursor-right-word
cursor-home
cursor-end
delete-line-backward
delete-line-forward
delete-line
delete-prev
delete-prev-word
delete-next
delete-next-word
insert-selected
expunge
clipboard-paste
primary-paste
prev
prev-with-wrap
prev-page
next
next-with-wrap
next-page
first
last
custom-1, custom-2, ..., custom-19
پیشفرض:
- custom-1: Mod1+1
- custom-2: Mod1+2
- custom-3: Mod1+3
- custom-4: Mod1+4
- custom-5: Mod1+5
- custom-6: Mod1+6
- custom-7: Mod1+7
- custom-8: Mod1+8
- custom-9: Mod1+9
- custom-10: Mod1+10
- custom-11: Mod1+11
- custom-12: Mod1+12
- custom-13: Mod1+13
- custom-14: Mod1+14
- custom-15: Mod1+15
- custom-16: Mod1+16
- custom-17: Mod1+17
- custom-18: Mod1+18
- custom-19: Mod1+19
FONT CONFIG
فناوری Fontconfig از یک قالب متنی منعطف برای تعیین قلمها استفاده میکند که به شما امکان میدهد خانواده قلم، سبکها، وزنها و مشخصههای گوناگون را تعریف کنید. نحو پایه از الگوی زیر پیروی میکند:
مشخصههای رایج:
- family - نام خانواده قلم
- style - italic، oblique، roman
- weight - light، normal، bold، black (یا مقادیر عددی ۱۰۰-۹۰۰)
- size - اندازه قلم بر حسب پوینت (Point size)
- slant - italic، oblique، roman
- width - condensed، normal، expanded
فناوری Fontconfig از قلمهای جایگزین (fallback fonts) پشتیبانی میکند. میتوانید چندین خانواده قلم را که با کاما از هم جدا شدهاند، مشخص کنید. قلمهای جایگزین به همان ترتیبی که نوشته شدهاند جستجو میشوند. اگر گلیفی در هیچیک از قلمهای جایگزین پیدا نشود، فهرست پویای قلمهای جایگزین در fontconfig (برای قلم اصلی) جستجو میشود. مثال:
ابزار Fontconfig صرفنظر از نام قلمی که به آن میدهید، همیشه مقداری را برمیگرداند مگر اینکه هیچ قلمی روی سیستم شما نصب نشده باشد. با دستور `fc-match -s YourFontName` میتوانید قلمهایی را که تطبیق داده میشوند، بررسی کنید.
کتابخانه قلمی که Fuzzel استفاده میکند، یعنی fcft، هر زمان گلیفی در قلم اصلی یافت نشود، قلمهای جایگزین صریح را جستجو خواهد کرد. هنگامی که نتواند گلیفی را در قلمهای جایگزین صریح پیدا کند، قلمهای جایگزین fontconfig برای اولین قلم در فهرست Fuzzel را جستجو میکند.
این طراحی هم امکان تعیین ترتیب دلخواه برای قلمهای جایگزین و هم گزینههای سفارشی قلم برای هر قلم جایگزین را فراهم میکند.
همچنین ببینید (SEE ALSO)
| 2026-09-03 |