kitten-choose-fonts(1) kitty kitten-choose-fonts(1)

kitten-choose-fonts - ابزار انتخاب و تنظیم قلم‌ها در ترمینال kitty

علاقه‌مندان به ترمینال تمام روز را به تماشای متن می‌گذرانند؛ از این رو رندرینگ درست و دقیق متن بسیار حائز اهمیت است. kitty امکانات فوق‌العاده قدرتمندی برای تنظیم دقیق رندرینگ متن دارد. این ترمینال از ویژگی‌های OpenType https://en.wikipedia.org/wiki/List_of_typographic_features برای انتخاب اشکال جایگزین گلیف‌ها و همچنین فونت‌های متغیر (Variable fonts) https://en.wikipedia.org/wiki/Variable_font برای کنترل دقیق ضخامت (weight) یا فاصله‌گذاری فونت پشتیبانی می‌کند. شما همچنین می‌توانید مشخص کنید که کدام فونت برای رندر کدپوینت‌های خاص یونیکد استفاده شود <#opt-kitty.symbol_map>، سنجه‌های فونت (font metrics) را اصلاح کنید <#opt-kitty.modify_font> و حتی منحنی‌های گاما را تنظیم کنید <#opt-kitty.text_composition_strategy> که برای رندر متن روی رنگ پس‌زمینه به کار می‌روند.

نخستین گام، انتخاب قلم‌هایی (faces) است که kitty برای رندر متن‌های معمولی (regular)، ضخیم (bold) و مورب (italic) استفاده خواهد کرد. kitty همراه با یک رابط کاربری مناسب برای انتخاب فونت‌ها در قالب برنامه جانبی (kitten) به نام choose-fonts ارائه می‌شود. کافی است دستور زیر را اجرا کنید:

kitten choose-fonts

و اعلان‌های روی صفحه را دنبال کنید.

ابتدا، خانواده فونت مورد نظر خود را انتخاب کنید؛ فهرست خانواده‌ها را می‌توان با تایپ چند حرف از نام خانواده‌ای که به دنبال آن هستید به آسانی فیلتر کرد. صفحه انتخاب خانواده پیش‌نمایشی از نحوه نمایش آن خانواده را به شما نشان می‌دهد.

پس از انتخاب یک خانواده با فشردن کلید Enter، پیش‌نمایشی از شکل ظاهری قلم‌های معمولی، بولد و ایتالیک آن خانواده به شما نشان داده می‌شود. شما می‌توانید هر یک از این سبک‌ها را به دلخواه تنظیم دقیق کنید. کار را با فشردن کلید R برای تنظیم دقیق قلم معمولی آغاز کنید. سایر سبک‌ها بر اساس انتخابی که برای قلم معمولی انجام می‌دهید، به‌طور خودکار تنظیم خواهند شد.

می‌توانید با کلیک روی یک سبک خاص یا ویژگی فونت، آن را انتخاب کنید. مقدار دقیق هر محور متغیر (variable axes) با استفاده از اسلایدر قابل انتخاب است؛ در تصویر بالا، فونت از تنظیم دقیق ضخامت (weight) پشتیبانی می‌کند. اگر شانس با شما یار باشد، طراح فونت نام‌های توصیفی را برای ویژگی‌های فونت قرار داده است که نمایش داده خواهند شد؛ در غیر این صورت، برای اطلاع از کارکرد هر ویژگی به مستندات فونت مراجعه کنید.

اگر به برنامه choose fonts علاقه‌ای ندارید یا صرفاً می‌خواهید گزینه‌های انتخاب فونت را بشناسید و خودتان در فایل kitty.conf بنویسید، ادامه را بخوانید.

چهار کلید برای انتخاب قلم فونت وجود دارد: font_family، bold_font، italic_font و bold_italic_font. هر یک از این‌ها از نحو شرح داده شده در زیر پشتیبانی می‌کنند. مقادیر آن‌ها می‌تواند از سه نوع باشد: نام یک خانواده فونت، کلمه کلیدی auto، یا نحو گسترده key=value برای مشخص کردن دقیق انتخاب فونت.

اگر نام خانواده فونت مشخص شود، kitty از APIهای سیستم‌عامل برای جستجوی فونت منطبق استفاده خواهد کرد. کلمه کلیدی auto بدین معناست که kitty فونت را کاملاً خودکار انتخاب می‌کند؛ این حالت معمولاً برای انتخاب خودکار انواع بولد/ایتالیک پس از تعیین font_family <#opt-kitty.font_family> استفاده می‌شود. سپس گونه‌های بولد و ایتالیک به‌طور خودکار از همان مجموعه ویژگی‌های قلم اصلی استفاده خواهند کرد.

برای مشخص کردن دقیق‌تر انتخاب قلم فونت، از نحو key=value استفاده می‌شود. ابتدا به چند مثال نگاهی بیندازیم:

# انتخاب تنها بر اساس خانواده، انتخاب قلم واقعی خودکار است
font_family family="Fira Code"
# انتخاب یک قلم دقیق با نام Postscript
font_family postscript_name=FiraCode
# انتخاب یک قلم دقیق بر اساس خانواده همراه با ویژگی‌ها و ضخامت متغیر
font_family family=SourceCodeVF variable_name=SourceCodeUpright features="+zero cv01=2" wght=380

کلیدهای شناخته‌شده در ادامه آورده شده‌اند؛ هر کلید دیگری به عنوان نام یک محور متغیر (variable axis) در نظر گرفته می‌شود، بدین معنی که برای تعیین مقدار متغیر برای مشخصه‌ای از فونت به کار می‌رود.

نام یک خانواده فونت. یک خانواده معمولاً شامل چندین قلم واقعی مختلف است، مانند گونه‌های بولد و ایتالیک. حتی یک یا چند قلم می‌توانند متغیر باشند که امکان تنظیم دقیق مشخصه‌های فونت را فراهم می‌کند.
نام سبک برای انتخاب یک فونت خاص از خانواده مشخص‌شده. تنها با کلید family مفید است، زمانی که روش‌های دقیق‌تری برای انتخاب قلم تعیین نشده باشد. همچنین می‌تواند برای مشخص کردن یک سبک متغیر نام‌گذاری‌شده در فونت‌های متغیر استفاده شود.
نام واقعی Postscript برای یک قلم فونت. این امکان انتخاب یک گونه خاص را در یک خانواده فونت فراهم می‌کند. اما توجه داشته باشید که نام‌های Postscript معمولاً برای انتخاب فونت‌های متغیر کافی نیستند.
از این کلید می‌توان برای انتخاب یک قلم فونت خاص در یک خانواده استفاده کرد. با این حال، دقت آن از postscript_name کمتر است و عموماً نباید استفاده شود.
برخی از خانواده‌های دارای فونت‌های متغیر در واقع شامل چندین فایل فونت هستند. برای مثال، یک خانواده می‌تواند دارای وزن‌های متغیر باشد به‌طوری که یک فایل فونت شامل قلم‌های ایستاده با وزن متغیر و فایل دیگر شامل قلم‌های ایتالیک با وزن متغیر باشد. فونت‌های خوش‌طراحی‌شده از یک نام متغیر (variable name) برای تمایز میان چنین فایل‌هایی استفاده می‌کنند. باید همراه با family برای انتخاب فایل فونت متغیر خاص استفاده شود.
فهرستی از ویژگی‌های فونت OpenType که با فاصله از هم جدا شده‌اند تا برای این فونت فعال/غیرفعال شوند یا مقداری برای آن‌ها انتخاب گردد. برای مشاهده ویژگی‌های پشتیبانی‌شده و تأثیر آن‌ها، به مستندات خانواده فونت مراجعه کنید. نحو دقیق مشخص‌سازی ویژگی‌ها توسط HarfBuzz در مستندات آن https://harfbuzz.github.io/harfbuzz-hb-common.html#hb-feature-from-string مستند شده است.
می‌توان از این کلید برای ارسال یک رشته دلخواه، معمولاً نام خانواده یا نام کامل، به APIهای انتخاب فونت سیستم‌عامل استفاده کرد. نباید همراه با هیچ کلید دیگری استفاده شود. عملکرد آن مشابه مشخص کردن تنها نام فونت بدون هیچ کلیدی است.

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

Kovid Goyal

2026, Kovid Goyal

July 30, 2026 0.48.2