| kitty.conf(5) | kitty | kitty.conf(5) |
نام (NAME)
kitty.conf - پرونده پیکربندی شبیهساز ترمینال kitty
بررسی اجمالی (OVERVIEW)
kitty بسیار سفارشیپذیر است؛ از میانبرهای صفحهکلید گرفته تا نرخ فریم رندر. در ادامه بررسی اجمالی تمام امکانات سفارشیسازی آمده است.
میتوانید پرونده پیکربندی را درون kitty با فشردن ctrl+shift+f2 (⌘+, در macOS) باز کنید. اگر پرونده وجود نداشته باشد، یک kitty.conf حاوی توضیحات و مقادیر پیشفرض کامنتشده ایجاد میشود. با تغییر پرونده، پیکربندی بهطور خودکار بارگذاری مجدد میشود که توسط auto_reload_config کنترل میشود. بارگذاری مجدد دستی با فشردن ctrl+shift+f5 (⌃+⌘+, در macOS) یا ارسال سیگنال SIGUSR1 به kitty با دستور kill -SIGUSR1 $KITTY_PID انجامپذیر است. همچنین برای نمایش پیکربندی فعلی میتوانید ctrl+shift+f6 (⌥+⌘+, در macOS) را فشار دهید.
kitty پرونده پیکربندی را در مسیرهای پیکربندی سیستمعامل (معمولاً ~/.config/kitty/kitty.conf) جستجو میکند، اما میتوان مسیری مشخص را با گزینه kitty --config <#cmdoption-kitty-config> منتقل کرد یا از متغیر محیطی KITTY_CONFIG_DIRECTORY <#envvar-KITTY_CONFIG_DIRECTORY> استفاده نمود. برای جزئیات کامل kitty --config <#cmdoption-kitty-config> را ببینید.
توضیحات (کامنتها) با افزودن نویسه # در ابتدای خط ایجاد میشوند. این قابلیت تنها زمانی کار میکند که نویسه # نخستین نویسه خط باشد.
شکستن خطوط با شروع خط بعدی با نویسه \ انجام میشود. تمامی فاصلههای خالی ابتدایی و نویسه \ حذف خواهند شد.
میتوان پروندههای پیکربندی ثانویه را درج کرد با دستور include. اگر مسیر نسبی برای include استفاده شود، نسبت به مکان پرونده پیکربندی فعلی سنجیده میشود. متغیرهای محیطی بسط داده میشوند، بنابراین ${USER}.conf در صورت USER=name تبدیل به name.conf میشود. متغیر محیطی ویژه KITTY_OS <#envvar-KITTY_OS> برای تشخیص سیستمعامل در دسترس است و مقادیر linux، macos یا bsd دارد. همچنین میتوان از globinclude برای درج پروندههای منطبق با الگوی glob پوسته و از envinclude برای درج پیکربندی از متغیرهای محیطی استفاده کرد. در نهایت، با اجرای برنامه توسط geninclude میتوان پیکربندی را بهصورت پویا تولید کرد. برای نمونه:
# درج other.conf include other.conf # درج پروندههای *.conf از تمام زیرپوشههای kitty.d درون دایرکتوری پیکربندی kitty globinclude kitty.d/**/*.conf # درج محتوای تمام متغیرهای محیطی که با KITTY_CONF_ شروع میشوند envinclude KITTY_CONF_* # اجرای اسکریپت dynamic.py واقع در دایرکتوری همین پرونده پیکربندی # و درج خروجی استاندارد :file:`STDOUT` آن. اسکریپتهای پایتون سریعترین هستند # زیرا از مفسر درونبرنامهای پایتون استفاده میکنند، اما هر اسکریپت یا برنامه اجرایی # به هر زبانی پشتیبانی میشود. نشاندار کردن پرونده اسکریپت بهعنوان قابل اجرا فراموش نشود. geninclude dynamic.py
قلمها (FONTS)
kitty دارای مدیریت قلم بسیار قدرتمندی است. میتوانید قلمهای منفرد را پیکربندی کرده و حتی قلمهای خاصی برای نویسههای مشخص تعیین کنید.
font_family monospace bold_font auto italic_font auto bold_italic_font auto
میتوانید قلمهای متفاوتی برای گونههای bold/italic/bold-italic مشخص کنید. سادهترین راه برای انتخاب قلمها اجرای دستور kitten choose-fonts است که یک رابط کاربری مناسب با قابلیت پیشنمایش و پشتیبانی از انتخاب قلمهای متغیر و ویژگیهای قلم ارائه میدهد. برای یادگیری انتخاب دستی قلمها، ساختار نحوی مشخصکردن قلم <#font-spec-syntax> را مطالعه کنید.
font_size 11.0
اندازه قلم (بر حسب pt).
force_ltr no
kitty از متن دوجهته (BIDI) پشتیبانی نمیکند، با این حال برای خطوط راستبهچپ (RTL)، کلمات بهطور خودکار راستبهچپ نمایش داده میشوند. یعنی در یک خط RTL، کلمات "HELLO WORLD" در kitty بهصورت "WORLD HELLO" نمایش مییابند، و اگر بخشی از یک رشته راستبهچپ را انتخاب کنید، نویسهای را دریافت میکنید که در صورت چپبهراست بودن رشته در آنجا قرار میگرفت. برای نمونه در کلمه عبری ירושלים، انتخاب نویسهای که روی صفحه ם دیده میشود در واقع نویسه י را در بافر انتخاب مینویسد. رفتار پیشفرض kitty در ترکیب با فیلتری برای معکوس کردن ترتیب کلمات مفید است؛ با این حال اگر مایل به کار با گلیفهای RTL باشید، کار با آن میتواند دشوار باشد، بنابراین این گزینه برای غیرفعالسازی آن ارائه شده است. علاوه بر این، این گزینه را میتوان همراه با برنامه خط فرمان GNU FriBidi https://github.com/fribidi/fribidi#executable برای دریافت پشتیبانی BIDI استفاده کرد، زیرا kitty را مجبور میکند همیشه با متن بهصورت چپبهراست (LTR) رفتار کند، چیزی که FriBidi برای ترمینالها انتظار دارد.
مقدار پیشفرضی ندارد. مقادیر نمونه در زیر نشان داده شده است:
symbol_map U+E0A0-U+E0A3,U+E0C0-U+E0C7 PowerlineSymbols
نگاشت کدپوینتهای یونیکد مشخصشده به یک قلم خاص. در صورت نیاز به رندر ویژه برای برخی نمادها، مانند Powerline، مفید است و نیاز به قلمهای پچشده را رفع میکند. هر کدپوینت یونیکد به قالب U+<code point in hexadecimal> مشخص میشود. میتوانید چندین کدپوینت را با کاما و بازهها را با خط پیوند جدا کنید. این گزینه میتواند چندین بار مشخص شود. نحو دستور:
symbol_map codepoints Font Family Name
مقدار پیشفرضی ندارد. مقادیر نمونه در زیر نشان داده شده است:
narrow_symbols U+E0A0-U+E0A3,U+E0C0-U+E0C7 1
معمولاً برای نویسههای یونیکد ناحیه استفاده اختصاصی (Private Use) و برخی نویسههای نماد/dingbat، اگر نویسه با یک یا چند فاصله همراه باشد، در صورت داشتن نسبت تصویر عریض در قلم، kitty از آن سلولهای اضافی برای رندر بزرگتر نویسه استفاده میکند. با این گزینه میتوانید kitty را ملزم کنید کدپوینتهای مشخص را تنها در تعداد سلول مشخصشده (پیشفرض یک سلول) رندر کند. این گزینه میتواند چندین بار مشخص شود. نحو دستور:
narrow_symbols codepoints [optionally the number of cells]
disable_ligatures never
نحوه مدیریت خطنگاشتهای چندنویسهای (ligatures). حالت پیشفرض رندر همیشگی آنها است. میتوانید با cursor به kitty بگویید هنگام قرارگیری مکاننما روی آنها رندر نشوند تا ویرایش آسانتر شود، یا با always رندر آنها را کلاً غیرفعال کنید. استراتژی خطنگاشت میتواند برای هر پنجره بهطور جداگانه با قابلیت کنترل از راه دور kitty یا با تعریف میانبرها در kitty.conf تنظیم شود، برای نمونه:
map alt+1 disable_ligatures_in active always map alt+2 disable_ligatures_in all never map alt+3 disable_ligatures_in tab cursor
توجه داشته باشید این مورد به خطنگاشتهای برنامهنویسی اشاره دارد که معمولاً با ویژگی OpenType با نام calt پیادهسازی میشوند. برای غیرفعالسازی خطنگاشتهای عمومی از گزینه font_features استفاده کنید.
مقدار پیشفرضی ندارد. مقادیر نمونه در زیر نشان داده شده است:
font_features none
انتخاب دقیق ویژگیهای OpenType جهت فعال یا غیرفعالسازی. توجه داشته باشید که برای قلمهای اصلی، ویژگیها هنگام انتخاب قلم با kitten با نام choose-fonts قابل تعیین هستند. این تنظیم برای قلمهای جایگزین (fallback) کاربرد دارد.
برخی قلمها ویژگیهای مفیدی برای ترمینال دارند. برای نمونه، Fira Code شامل ویژگی اختیاری zero است که شکل صفر (0) را تغییر میدهد تا از Ø متمایز شود. Fira Code همچنین شامل مجموعههای سبکشناسی (Stylistic Sets) با برچسبهای ss01 تا ss20 است.
برای نحو دقیق استفاده از ویژگیهای منفرد، مستندات HarfBuzz را ببینید: https://harfbuzz.github.io/harfbuzz-hb-common.html#hb-feature-from-string.
توجه داشته باشید که این پیکربندی با نام PostScript نمایهگذاری میشود و نه با نام خانواده قلم (font family). این قابلیت امکان تنظیم بسیار دقیق را میدهد؛ مثلاً غیرفعال کردن یک ویژگی در قلم italic بدون تأثیر بر قلم regular.
در لینوکس، ویژگیهای قلم ابتدا از پایگاه داده FontConfig خوانده شده و سپس این گزینه اعمال میشود؛ بنابراین میتوان آنها را در مکانی واحد و مرکزی پیکربندی کرد.
برای دریافت نام PostScript قلم، از دستور fc-scan file.ttf در لینوکس یا ابزار Font Book در macOS استفاده کنید https://apple.stackexchange.com/questions/79875/how-can-i-get-the-postscript-name-of-a-ttf-font-installed-in-os-x.
فعالسازی صفر جایگزین و ارقام سبک قدیم:
font_features FiraCode-Retina +zero +onum
فعالسازی فقط صفر جایگزین در قلم bold:
font_features FiraCode-Bold +zero
غیرفعالسازی خطنگاشتهای عادی با حفظ ویژگی calt که (در این قلم) یکنواختی را از بین میبرد:
font_features TT2020StyleB-Regular -liga +calt
همراه با force_ltr، ممکن است بخواهید اتصال حروف عربی (shaping) را کاملاً غیرفعال کنید تا فقط اشکال مجزا نمایش یابند. برای نمونه:
font_features UnifontMedium +isol -medi -fina -init
تغییر ویژگیهای قلم مانند موقعیت یا ضخامت خط زیرین (underline) و خطخورده (strikethrough). پسوند px نشاندهنده پیکسل و % نشاندهنده درصد مقدار اصلی است. عدم وجود پسوند به معنی واحد pt است. برای نمونه:
modify_font underline_position -2 modify_font underline_thickness 150% modify_font strikethrough_thickness 200% modify_font strikethrough_position 2px
علاوه بر این، میتوانید اندازه سلولی که هر گلیف قلم در آن رندر میشود و خط مبنا (baseline) قرارگیری گلیف در سلول را تغییر دهید. برای نمونه:
modify_font cell_width 80% modify_font cell_height -2px modify_font baseline 3
توجه کنید که تغییر خط مبنا، موقعیت خط زیرین و خطخورده را به همان میزان تنظیم میکند. افزایش خط مبنا گلیفها را در سلول بالاتر میبرد و کاهش آن، گلیفها را پایینتر میآورد. کاهش اندازه سلول ممکن است خطاهای گرافیکی رندر ایجاد کند؛ با احتیاط استفاده شود.
box_drawing_scale 0.001, 1, 1.5, 2
اندازه خطوط استفادهشده برای نویسههای یونیکد رسم جعبه (box drawing). این مقادیر بر حسب pt هستند و بر اساس DPI نمایشگر به پیکسل مقیاسبندی میشوند. باید چهار مقدار متناظر با خطوط نازک، معمولی، ضخیم و خیلی ضخیم مشخص شوند.
undercurl_style thin-sparse
سبک رندر خطوط موجدار زیرین (undercurl). این گزینه به صورت (thin|thick)-(sparse|dense) مقدار میگیرد. گزینههای Thin و thick ضخامت موج را کنترل میکنند. گزینههای Sparse و dense بسامد نوسان موج را کنترل میکنند. در حالت sparse موج به ازای هر نویسه یک قله و در dense دو قله خواهد داشت. تغییر پویای این گزینه با بارگذاری مجدد پیکربندی یا کنترل از راه دور تعریفنشده است.
underline_exclusion 1
بهطور پیشفرض kitty در خطوط زیرین در محل تداخل با دنباله پایین حروف (descenderها، مانند بخش پایینی در y، q، p و غیره) فاصله ایجاد میکند. این گزینه ضخامت این فاصلهها را کنترل میکند. میتواند عددی بدون واحد (کسری از ضخامت خط زیرین مشخصشده در قلم) باشد یا دارای پسوند px برای پیکسل یا pt برای پوینت باشد. برای غیرفعالسازی این فاصله مقدار را صفر بگذارید. تغییر پویای این گزینه از طریق بارگذاری مجدد پیکربندی یا کنترل از راه دور تعریفنشده است.
text_composition_strategy platform
کنترل نحوه ترکیب گلیفهای متن روی رنگ پسزمینه توسط kitty. مقدار پیشفرض platform تلاش میکند رندر متن تا حد امکان نزدیک به حالت بومی (native) پلتفرمی باشد که kitty روی آن اجرا میشود.
مقدار legacy از روش قدیمی (پیش از kitty 0.28) برای ترکیب گلیفها استفاده میکند. این کار متن تیره روی پسزمینه روشن را ضخیمتر و متن روشن روی پسزمینه تیره را نازکتر نشان میدهد؛ همچنین ممکن است در برخی متون خطوط ناهموار به نظر برسند.
میتوانید منحنی کنتراست واقعی مورد استفاده برای ترکیب گلیفها را با تعیین حداکثر دو عدد جداشده با فاصله تنظیم دقیق کنید.
عدد نخست تنظیم گاما است که ضخامت متن تیره روی پسزمینه روشن را کنترل میکند. افزایش مقدار، متن را ضخیمتر میکند. مقدار پیشفرض آن در لینوکس 1.0 و در macOS برابر 1.7 است. مقادیر مجاز 0.01 و بالاتر هستند. نتیجه بر اساس تفاوت روشنایی (luminance) پسزمینه و پیشزمینه مقیاسبندی میشود؛ متن تیره روی پسزمینه روشن بیشترین تأثیر را از منحنی میگیرد، در حالی که متن روشن روی پسزمینه تیره تأثیر بسیار کمی میپذیرد.
عدد دوم کنتراست ضربی اضافی است؛ درصدی از 0 تا 100. مقدار پیشفرض در لینوکس 0 و در macOS برابر 30 است.
برای دستیابی به ضخامت ظاهری مشابه در پوستههای روشن و تیره، نقطه شروع مناسب مقدار 1.0 0 روی پوسته تیره است. سپس پارامتر دوم را تا رسیدن به ظاهر مطلوب تنظیم کنید. پس از آن به پوسته روشن رفته و پارامتر اول را طوری تغییر دهید که ضخامت متن با پوسته تیره هماهنگ شود.
text_fg_override_threshold 0
تنظیمی برای جلوگیری از کنتراست پایین میان رنگهای پیشزمینه و پسزمینه. هنگام کار با برنامههایی که رنگهای ناسازگار با طرح رنگی انتخابی دارند کاربرد دارد. مقدار پیشفرض 0 است، به معنی عدم بازنویسی رنگها. دو حالت عملکردی وجود دارد:
مقداری با پسوند ratio نشاندهنده حداقل نسبت کنتراست پذیرفتهشده میان رنگ پیشزمینه و پسزمینه است. مقادیر مجاز از 0.0 ratio تا 21.0 ratio هستند. برای نمونه، جهت انطباق با سطح AA در استانداردهای WCAG https://en.wikipedia.org/wiki/Web_Content_Accessibility_Guidelines مقدار 4.5 ratio مناسب است. این الگوریتم با HSLuv https://www.hsluv.org پیادهسازی شده که روشنایی ادراکشده رنگ را دقیقاً به میزان لازم و بدون تغییر فام و اشباع تنظیم میکند.
مقداری با پسوند % نشاندهنده حداقل تفاوت روشنایی پذیرفتهشده میان رنگ پیشزمینه و پسزمینه است که در مقادیر کمتر از آن، kitty رنگ پیشزمینه را بازنویسی میکند؛ درصدی از 0 % تا 100 %. اگر تفاوت روشنایی کمتر از این آستانه باشد، رنگ پیشزمینه برای پسزمینههای تیره روی سفید و برای پسزمینههای روشن روی سیاه تنظیم خواهد شد.
هشدار: برخی برنامهها از نویسهها (مانند نویسههای بلوکی) برای نمایش گرافیکی استفاده کرده و انتظار دارند پیشزمینه و پسزمینه را روی رنگ یکسان (یا مشابه) تنظیم کنند. در صورت مشاهده راهراهها، نقاط، خطوط غیرمنتظره، رنگ نادرست، عدم نمایش رنگ مورد انتظار یا هرگونه اشکال در نمایش گرافیکی، مقدار text_fg_override_threshold را روی 0 قرار دهید تا ریشه مشکل مشخص شود، یا از حالت ratio به جای حالت % استفاده کنید.
سفارشیسازی مکاننمای متن (Text cursor customization)
cursor #cccccc
رنگ پیشفرض مکاننمای متن. در صورت تنظیم روی مقدار ویژهٔ none، مکاننما با جلوهٔ «وارونگی تصویر» ("reverse video") ترسیم میشود. رنگ آن رنگِ متن سلولی خواهد بود که روی آن قرار دارد و متن نیز با رنگ پسزمینهٔ سلول نمایش داده میشود. توجه داشته باشید که اگر برنامهٔ در حال اجرا در ترمینال رنگ مکاننما را تعیین کند، اولویت با آن خواهد بود. همچنین در صورت کنتراست بسیار کم میان رنگ پسزمینه و پیشزمینهٔ سلول، رنگهای مکاننما اصلاح میشوند. توجه داشته باشید که برخی پوستهها این مقدار را تنظیم میکنند؛ بنابراین برای بازنویسی آن، مقدار خود را بعد از خطوط گنجاندن پروندهٔ پوسته قرار دهید.
cursor_text_color #111111
رنگ متنِ زیر مکاننما. اگر میخواهید با رنگ پسزمینهٔ سلول زیرین رندر شود، از کلیدواژهٔ ویژهٔ background استفاده کنید. توجه داشته باشید در صورتی که cursor روی none تنظیم شده باشد، این گزینه نادیده گرفته میشود. همچنین برخی پوستهها این مقدار را تعیین میکنند، بنابراین برای بازنویسی آن، مقدار خود را بعد از خطوط مربوط به پوسته قرار دهید.
cursor_shape block
شکل مکاننما میتواند یکی از مقادیر block، beam یا underline باشد. توجه داشته باشید که هنگام بارگذاری مجدد پیکربندی، این مقدار تنها در صورتی تغییر میکند که شکل مکاننما توسط برنامهٔ در حال اجرا در ترمینال تنظیم نشده باشد. این گزینه شکل پیشفرض مکاننما را تعیین میکند و برنامههای ترمینال میتوانند آن را بازنویسی کنند. بهویژه یکپارچهسازی پوسته <#shell-integration> در kitty شکل مکاننما را در اعلان خط فرمان به beam تغییر میدهد. میتوانید با تنظیم shell_integration به no-cursor از این رفتار جلوگیری کنید.
cursor_shape_unfocused hollow
شکل مکاننمای متن را هنگامی که پنجرهٔ سیستمعامل فوکوس ندارد تعیین میکند. شکل مکاننمای بدون فوکوس میتواند یکی از مقادیر block، beam، underline، hollow و unchanged (بدون تغییر ماندن شکل مکاننما) باشد.
cursor_beam_thickness 1.5
ضخامت مکاننمای خطی (beam) بر حسب پوینت (pts).
cursor_underline_thickness 2.0
ضخامت مکاننمای خط زیرین (underline) بر حسب پوینت (pts).
cursor_blink_interval -1
بازهٔ زمانی چشمکزدن مکاننما (بر حسب ثانیه). برای غیرفعال کردن چشمکزدن، روی صفر تنظیم کنید. مقادیر منفی به معنای استفاده از پیشفرض سیستم است. توجه داشته باشید که کمینهٔ این بازه به repaint_delay محدود خواهد شد. همچنین میتوانید با تعیین یک تابع گذار <#term-easing-function> به چشمکزدن پویانمایی بدهید. برای نمونه، تنظیم این گزینه روی 0.5 ease-in-out باعث میشود چشمکزدن در طول یک ثانیه پویانمایی شود؛ در نیم ثانیه اول از کدر به شفاف و در نیم ثانیه بعدی به حالت اول بازگردد. میتوانید توابع گذار متفاوتی را برای دو نیمه مشخص کنید، مانند: -1 linear ease-out. برنامهٔ kitty از تمام توابع گذار CSS https://developer.mozilla.org/en-US/docs/Web/CSS/easing-function پشتیبانی میکند. توجه داشته باشید که فعالسازی پویانمایی مصرف انرژی را افزایش میدهد زیرا صفحه در هر بازهٔ چشمکزدن چندین بار بازترسیم میشود. همچنین ببینید: cursor_stop_blinking_after. این تنظیم متنهای چشمکزن را نیز که دقیقا همگام با مکاننما چشمک میزنند کنترل میکند.
cursor_stop_blinking_after 15.0
توقف چشمکزدن مکاننما پس از تعداد ثانیههای مشخص عدم فعالیت صفحهکلید. مقدار صفر باعث میشود چشمکزدن هرگز متوقف نشود. این تنظیم بر متنهای چشمکزن نیز اثر میگذارد و با همان ریتم مکاننما چشمک میزنند.
cursor_trail 0
تنظیم این گزینه روی مقداری بزرگتر از صفر، پویانمایی «رد مکاننما» ("cursor trail") را فعال میکند. این پویانمایی «ردی» را به دنبال حرکت مکاننمای متن نمایش میدهد که دنبال کردن جهشهای بزرگ مکاننما را سادهتر کرده و جلوهٔ بصری جذابی ایجاد میکند. مقدار این گزینه مشخص میکند که پویانمایی چه زمانی فعال شود (بر حسب میلیثانیه). پویانمایی رد تنها برای مکاننماهایی اعمال میشود که بیش از این تعداد میلیثانیه در جای خود ثابت مانده باشند. این کار از ایجاد رد هنگام بهروزرسانی سریع رابط کاربری در برنامههای پیچیده جلوگیری میکند. برای کنترل سرعت پویانمایی به cursor_trail_decay و برای کنترل آستانهٔ شروع رد به cursor_trail_start_threshold مراجعه کنید.
cursor_trail_decay 0.1 0.4
مدت زمان محو شدن اثر رد مکاننما را در صورت فعال بودن cursor_trail کنترل میکند. این گزینه دو مقدار اعشاری مثبت دریافت میکند که کمترین و بیشترین زمان محو شدن را بر حسب ثانیه مشخص میکنند. مقدار اول مربوط به سریعترین زمان محو شدن (کمینه) و مقدار دوم مربوط به کندترین زمان (بیشینه) است. مقدار دوم باید مساوی یا بزرگتر از مقدار اول باشد. مقادیر کوچکتر باعث محو شدن سریعتر رد مکاننما میشوند. این مقادیر را برای کنترل سرعت محو شدن رد مکاننما تنظیم کنید.
cursor_trail_start_threshold 2
آستانهٔ مسافت برای شروع رد مکاننما. این گزینه یک یا دو مقدار عدد صحیح مثبت میپذیرد. در صورت تعیین یک مقدار، همان آستانه برای هر دو جهت افقی (x) و عمودی (y) اعمال میشود. در صورت تعیین دو مقدار، مقدار اول آستانهٔ افقی و مقدار دوم آستانهٔ عمودی است. این مقادیر حداقل تعداد سلولهایی هستند که مکاننما باید در هر راستا حرکت کند تا پویانمایی رد فعال شود. اگر حرکت مکاننما در هر دو جهت کمتر از آستانه باشد، پویانمایی رد اعمال نمیشود تا از پویانماییهای غیرضروری جلوگیری شود.
cursor_trail_color none
تنظیم رنگ رد مکاننما هنگامی که cursor_trail فعال است. اگر روی 'none' (پیشفرض) تنظیم شود، رد مکاننما از رنگ پسزمینهٔ مکاننما استفاده میکند. در غیر این صورت، یک مقدار رنگ (مانند #ff0000 برای قرمز یا نام یک رنگ مانند 'red') تعیین کنید. این امکان اجازه میدهد ظاهر رد مکاننما را مستقل از رنگ خود مکاننما سفارشیسازی کنید.
پیمایش به عقب (Scrollback)
scrollback_lines 2000
تعداد خطوط پیشینه که برای پیمایش به عقب در حافظه نگهداری میشوند. حافظه بر حسب نیاز تخصیص مییابد. اعداد منفی به معنای پیمایش نامحدود هستند. توجه داشته باشید که تعیین مقادیر بسیار بزرگ توصیه نمیشود چون میتواند کارایی ترمینال را کاهش داده و مقدار زیادی حافظهٔ رم مصرف کند. به جای آن، استفاده از scrollback_pager_history_size را مد نظر قرار دهید. توجه کنید که در بارگذاری مجدد پیکربندی، تغییر این گزینه تنها پنجرههای تازه ایجاد شده را تحت تأثیر قرار میدهد، نه پنجرههای موجود را.
scrollbar scrolled
کنترل زمان نمایش نوار پیمایش.
- scrolled
- به معنای نمایش هنگام آغاز پیمایش به عقب است.
- hovered
- به معنای نمایش هنگام قرار گرفتن اشارهگر موشواره روی لبهٔ راست پنجره است.
- scrolled-and-hovered
- به معنای نمایش هنگامی است که موشواره روی ناحیهٔ نوار پیمایش قرار دارد و پیمایش به عقب آغاز شده باشد.
- always
- به معنای نمایش دائمی هر زمان که تاریخچهٔ پیمایشی وجود داشته باشد.
- never
- به معنای غیرفعال کردن نوار پیمایش است.
scrollbar_interactive yes
در صورت غیرفعال بودن، نوار پیمایش توسط موشواره قابل کنترل نخواهد بود و تمام رویدادهای موشواره از نوار پیمایش عبور میکنند.
scrollbar_jump_on_click yes
هنگام فعال بودن، کلیک روی مسیر نوار پیمایش باعث پرش موقعیت پیمایش به محل کلیک میشود؛ در غیر این صورت، موقعیت پیمایش تنها به اندازهٔ یک صفحه به سمت آن نقطه حرکت میکند (رفتار سنتی نوارهای پیمایش).
scrollbar_width 0.5
عرض نوار پیمایش بر حسب واحد عرض سلول.
scrollbar_hover_width 1
عرض نوار پیمایش هنگامی که موشواره روی آن قرار دارد، بر حسب واحد عرض سلول.
scrollbar_handle_opacity 0.5
میزان کدر بودن دستگیرهٔ نوار پیمایش؛ 0 کاملاً شفاف و 1 کاملاً کدر.
scrollbar_radius 0.3
شعاع (انحنای) دستگیرهٔ نوار پیمایش بر حسب واحد عرض سلول. باید کمتر از scrollbar_width باشد.
scrollbar_gap 0.1
فاصلهٔ میان نوار پیمایش و لبهٔ پنجره بر حسب واحد عرض سلول.
scrollbar_min_handle_height 1
حداقل ارتفاع دستگیرهٔ نوار پیمایش بر حسب واحد ارتفاع سلول. از بیش از حد کوچک شدن دستگیره هنگام وجود تاریخچهٔ پیمایش طولانی جلوگیری میکند.
scrollbar_hitbox_expansion 0.25
ناحیهٔ اضافی اطراف دستگیره برای گرفتن آسانتر نوار پیمایش بر حسب واحد عرض سلول.
scrollbar_track_opacity 0
میزان کدر بودن مسیر نوار پیمایش؛ 0 کاملاً شفاف و 1 کاملاً کدر.
scrollbar_track_hover_opacity 0.1
میزان کدر بودن مسیر نوار پیمایش هنگامی که موشواره روی نوار پیمایش است؛ 0 کاملاً شفاف و 1 کاملاً کدر.
scrollbar_handle_color foreground
رنگ دستگیرهٔ نوار پیمایش. مقدار foreground به معنای استفاده از رنگ پیشزمینهٔ متن جاری و مقدار selection_background به معنای استفاده از رنگ پسزمینهٔ متن انتخابشده است. همچنین میتوانید از رنگهای دلخواه مانند #12af59 یا red استفاده کنید.
scrollbar_track_color foreground
رنگ مسیر نوار پیمایش. مقدار foreground به معنای استفاده از رنگ پیشزمینهٔ متن جاری و مقدار selection_background به معنای استفاده از رنگ پسزمینهٔ متن انتخابشده است. همچنین میتوانید از رنگهای دلخواه مانند #12af59 یا red استفاده کنید.
progress_bar top
هنگامی که برنامهای از توالی گریز OSC 9;4 برای گزارش پیشرفت استفاده میکند، یک نوار پیشرفت در موقعیت مشخصشده از پنجره رسم میشود. این نوار از تنظیمات سبک و رنگ مشابه نوار پیمایش استفاده میکند.
scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER
برنامهای که پیشینهٔ پیمایش با آن در پنجرهای جدید مشاهده میشود. میانگیر پیشینه به عنوان STDIN به این برنامه ارسال میشود. در صورت تغییر آن، اطمینان حاصل کنید که برنامهٔ مورد نظر توانایی پردازش توالیهای گریز ANSI برای رنگها و قالببندی متن را داشته باشد. متغیر INPUT_LINE_NUMBER در خط فرمان بالا با یک عدد صحیح که نشاندهندهٔ خط بالای صفحه است جایگزین خواهد شد. به همین ترتیب CURSOR_LINE و CURSOR_COLUMN با موقعیت فعلی مکاننما جایگزین میشوند یا در صورت نبود مکاننما (مثلاً هنگام نمایش خروجی آخرین دستور) روی 0 تنظیم میگردند.
اگر ترجیح میدهید از neovim برای مشاهدهٔ پیشینهٔ پیمایش استفاده کنید، تنظیمی شبیه به این به کار ببرید:
scrollback_pager nvim --cmd 'set eventignore=FileType' +'nnoremap q ZQ' +'call nvim_open_term(0, {})' +'set nomodified nolist' +'$' -
دستور بالا برای neovim 0.12 و نسخههای جدیدتر کار میکند. همچنین یک افزونهٔ اختصاصی به نام kitty-scrollback.nvim https://github.com/mikesmithgh/kitty-scrollback.nvim وجود دارد که امکانات بیشتری ارائه داده و با نسخههای قدیمیتر neovim نیز سازگار است.
scrollback_pager_history_size 0
اندازه تاریخچه پیمایش به عقب مجزا (به مگابایت)، که تنها برای مرور بافر پیمایش به عقب با صفحهبند (pager) استفاده میشود. این بافر مجزا برای پیمایش تعاملی در دسترس نیست اما هنگام مشاهده بافر پیمایش به عقب در پنجرهای جداگانه، به برنامه صفحهبند هدایت (pipe) میشود. پیادهسازی فعلی دادهها را به صورت UTF-8 ذخیره میکند، بنابراین برای متن اسکی خالص و بدون قالببندی، به ازای هر ۱۰۰ نویسه در هر خط، تقریباً ۱۰۰۰۰ خط در هر مگابایت خواهد بود. مقدار صفر یا کمتر این قابلیت را غیرفعال میکند. حداکثر اندازه مجاز 4GB است. توجه داشته باشید که در صورت بارگذاری مجدد پیکربندی، تغییر این مقدار تنها روی پنجرههای تازهساختهشده اثر میگذارد، نه پنجرههای موجود.
scrollback_fill_enlarged_window no
پر کردن فضای جدید با خطوط بافر پیمایش به عقب پس از بزرگکردن پنجره.
wheel_scroll_multiplier 5.0
ضریب تعداد خطوط پیمایششده با چرخک موشواره. توجه داشته باشید این مورد تنها برای دستگاههای پیمایش با دقت پایین استفاده میشود، نه دستگاههای پیمایش با دقت بالا در بسترهایی چون macOS و Wayland. برای تغییر جهت پیمایش از اعداد منفی استفاده کنید. همچنین wheel_scroll_min_lines را ببینید.
wheel_scroll_min_lines 1
حداقل تعداد خطوط پیمایششده با چرخک موشواره. scroll multiplier تنها پس از رسیدن به این تعداد اعمال میشود. توجه داشته باشید این گزینه تنها برای دستگاههای پیمایش با دقت پایین نظیر موشوارههای چرخکدار که هنگام استفاده از چرخک به میزان بسیار کمی پیمایش میکنند، کاربرد دارد. با مقدار منفی، حداقل تعداد خطوط همیشه افزوده خواهد شد.
touch_scroll_multiplier 1.0
ضریب تعداد خطوط پیمایششده با تاچپد. توجه داشته باشید این گزینه تنها برای دستگاههای پیمایش با دقت بالا در بسترهایی چون macOS و Wayland استفاده میشود. برای تغییر جهت پیمایش از اعداد منفی استفاده کنید.
pixel_scroll yes
فعالسازی پیمایش پیکسلبهپیکسل در بافر پیمایش به عقب kitty هنگام استفاده از دستگاههای ورودی با دقت بالا (برای نمونه تاچپدها). در صورت فعال بودن، پیمایش به عقب خود kitty بهجای خطوط کامل، با گامهای کسری از خط جابهجا میشود. این تنظیم بر برنامههای در حال اجرا درون ترمینال (مثلاً TUIهای تمامصفحه) که پیمایش را خود مدیریت میکنند، اثر نمیگذارد.
momentum_scroll 0.96
میزان اصطکاک اعمالشده برای کند کردن پیمایش لختی (اینرسیایی). عددی از 0 تا 1، که در آن 0 به معنی عدم پیمایش لختی و 1 به معنی پیمایش نامحدود است. توجه داشته باشید این تنظیم تنها روی بسترهایی نظیر Wayland اعمال میشود که پیمایش لختی بومی ارائه نمیدهند. در macOS از پیمایش لختی بومی سیستمعامل استفاده میشود. همچنین، پیمایش لختی تنها به دستگاههای مبتنی بر «انگشت» نظیر تاچپدها و نمایشگرهای لمسی اعمال میشود. تغییرات این تنظیم تنها پس از راهاندازی مجدد kitty اعمال خواهند شد.
موشواره (MOUSE)
mouse_hide_wait 3.0
پنهانسازی نشانگر موشواره پس از گذشت تعداد ثانیههای مشخصشده در صورت عدم استفاده از موشواره. برای غیرفعال کردن پنهانسازی نشانگر موشواره روی صفر تنظیم کنید. برای پنهانسازی فوری نشانگر موشواره هنگام تایپ متن، روی مقداری منفی تنظیم کنید. به طور پیشفرض در macOS غیرفعال است زیرا راهاندازی پایدار آن در میان دریای باگهای پیوسته در حال تغییر Cocoa زحمت بسیار دارد.
به طور پیشفرض، پس از پنهان شدن نشانگر، با هر رویداد موشواره بعدی بلافاصله آشکار میشود.
- دو قالب پشتیبانی میشود:
- <hide-wait>
- <hide-wait> <unhide-wait> <unhide-threshold> <scroll-unhide>
برای تغییر رفتار آشکارسازی، میتوان پارامترهای اختیاری <unhide-wait>، <unhide-threshold> و <scroll-unhide> را تنظیم کرد.
- <unhide-wait>
- صبر کردن به میزان ثانیههای مشخص پس از رویدادهای موشواره پیش از آشکارسازی نشانگر موشواره. برای آشکارسازی فوری نشانگر موشواره هنگام فعالیت موشواره، روی صفر تنظیم کنید. این گزینه برای جلوگیری از آشکار شدن نشانگر هنگام کشیدنهای تصادفی روی ترکپد مفید است.
- <unhide-threshold>
- تنظیم
آستانه
فعالیت
موشواره
مورد نیاز
برای
آشکارسازی
نشانگر، در
صورتی که
گزینه <unhide-wait>
غیرصفر
باشد. در
صورت صفر
بودن <unhide-wait>،
بیاثر است.
برای نمونه، اگر <unhide-threshold> برابر ۴۰ و <unhide-wait> برابر ۲.۵ باشد، هنگام تشخیص رویداد موشواره توسط kitty، تعداد رویدادهای موشواره در ۲.۵ ثانیه بعدی ثبت شده و بررسی میشود که آیا از ۴۰ * ۲.۵ = ۱۰۰ فراتر میرود یا خیر. در این صورت، نشانگر موشواره آشکار میشود، در غیر این صورت هیچ اتفاقی نمیافتد.
- <scroll-unhide>
- کنترل اینکه کدام رویدادهای موشواره میتوانند نشانگر را آشکار کنند. در صورت فعال بودن، هر دو رویداد پیمایش و حرکت میتوانند نشانگر را آشکار سازند. در صورت غیرفعال بودن، تنها حرکات موشواره نشانگر را آشکار میکنند.
- نمونههایی از مقادیر معتبر:
- 0.0
- 1.0
- -1.0
- 0.1 3.0 40 yes
url_color #0087bd url_style curly
رنگ و سبک برجستهسازی نشانیهای وب (URL) هنگام قرار گرفتن موشواره روی آنها. url_style میتواند یکی از موارد زیر باشد: none، straight، double، curly، dotted، dashed.
open_url_with default
برنامه مورد استفاده برای باز کردن نشانیهای وب کلیکشده. مقدار ویژه default ابتدا به دنبال گردانندههای URL تعریفشده از طریق سازوکار اسکریپتنویسی کلیک موشواره <> میگردد و اگر چیزی یافت نشود، از گرداننده URL پیشفرض سیستمعامل (open در macOS و xdg-open در Linux) استفاده خواهد کرد.
url_prefixes file ftp ftps gemini git gopher http https irc ircs kitty mailto news sftp ssh
مجموعه پیشوندهای URL برای جستجو هنگام تشخیص URL زیر نشانگر موشواره.
detect_urls yes
تشخیص URLهای زیر موشواره. URLهای شناساییشده با خط زیرین برجسته میشوند و نشانگر موشواره روی آنها به شکل دست درمیآید. حتی در صورت غیرفعال بودن این گزینه، URLها همچنان قابل کلیک هستند. همچنین برای کنترل نحوه نمایش ابرپیوندها (در مقایسه با URLهای متن ساده) گزینه underline_hyperlinks را ببینید.
نویسههای اضافی غیرمجاز در URLها هنگام تشخیص URLهای زیر نشانگر موشواره. به طور پیشفرض، تمام نویسههای مجاز در URL پذیرفته میشوند. افزون بر این، نویسههای خط جدید مجاز هستند (اما حذف میشوند). این برای سازگاری با برنامههایی چون mutt است که حتی برای خطوط ادامهدار نیز شکستگی خطی سخت اضافه میکنند. برای غیرفعال کردن این رفتار، میتوان \n را به این گزینه افزود. نویسههای خاص را میتوان با گریز بکاسلش مشخص کرد؛ برای مشخص کردن بکاسلش از دو بکاسلش استفاده کنید.
show_hyperlink_targets never
هنگام قرار گرفتن موشواره روی یک ابرپیوند ترمینال، نشانی URL واقعی که هنگام کلیک روی ابرپیوند فعال میشود را نشان میدهد. برای نمایش تنها هنگام فشردن کلید تبدیلکننده متناظر، روی ctrl، cmd، alt یا shift تنظیم کنید (Ctrl، Super (در macOS معادل Cmd)، Shift). در صورت فشرده شدن چند کلید تبدیلکننده، تا زمانی که کلید پیکربندیشده در میان آنها باشد URL نمایش داده میشود. برای نمایش همیشگی روی always یا برای عدم نمایش روی never تنظیم کنید.
underline_hyperlinks hover
کنترل نحوه کشیدن خط زیر ابرپیوندها. ابرپیوندها میتوانند با قرار گرفتن موشواره (hover)، به طور دائمی (always) یا هرگز (never، به این معنی که kitty هیچ سبکی از خط زیرین را به ابرپیوندها اعمال نمیکند) خط زیرین داشته باشند. توجه داشته باشید مقدار always تنها برای ابرپیوندهای واقعی (OSC 8) اعمال میشود، نه متنی که با قرار گرفتن موشواره به عنوان URL تشخیص داده میشود. برای سبک خط زیرین از تنظیمات url_style و url_color استفاده میکند. توجه داشته باشید بارگذاری مجدد پیکربندی و تغییر این مقدار به یا از always، تنها بر متنی اثر میگذارد که پس از آن توسط kitty دریافت میشود.
copy_on_select no
رونوشت به تختهگیره یا بافر اختصاصی هنگام گزینش. با تنظیم این گزینه روی clipboard، گزینش متن با موشواره باعث رونوشت آن به تختهگیره میشود. در بسترهایی چون macOS که مفهوم گزینش اولیه (primary selection) را ندارند مفید است. همچنین میتوانید نامی مانند a1 را برای رونوشت به یک بافر اختصاصی kitty مشخص کنید. یک میانبر را با کنش paste_from_buffer نگاشت کنید تا از این بافر اختصاصی جایگذاری شود. برای نمونه:
copy_on_select a1 map shift+cmd+v paste_from_buffer a1
توجه داشته باشید رونوشت به تختهگیره یک ریسک امنیتی است، زیرا همه برنامهها، از جمله وبگاههای باز در مرورگر، میتوانند محتوای تختهگیره سامانه را بخوانند.
clear_selection_on_clipboard_loss no
هنگامی که محتوای تختهگیره دیگر بازتابدهنده گزینش فعلی نیست، آن را پاک کن. این مورد اساساً روی بسترهایی چون Linux مفید است که گزینش متن به طور خودکار آن را در یک تختهگیره ویژه «گزینش اولیه» رونوشت میکند، یا زمانی که copy_on_select روی clipboard تنظیم شده باشد.
توجه داشته باشید در macOS سامانه هنگام تغییر مالک تختهگیره اعلانی ارائه نمیدهد، بنابراین در آنجا، رونوشت به تختهگیره در برنامهای غیر از kitty حتی اگر copy_on_select فعال باشد، گزینشها را پاک نخواهد کرد.
paste_actions quote-urls-at-prompt,confirm
فهرستی جداشده با کاما از کنشهایی که باید هنگام جایگذاری یا رها کردن متن درون ترمینال انجام شوند. کنشهای جایگذاری پشتیبانیشده عبارتند از:
- quote-urls-at-prompt:
- اگر متن در حال جایگذاری یک URL باشد و مکاننما در اعلان پوسته قرار داشته باشد، URL به طور خودکار درون نقلقول قرار میگیرد (نیازمند shell_integration).
- replace-dangerous-control-codes
- جایگزینی کدهای کنترلی خطرناک از متن جایگذاریشده، بدون تأیید.
- replace-newline
- جایگزینی نویسه خط جدید از متن جایگذاریشده، بدون تأیید.
- confirm:
- تأیید جایگذاری در صورتی که متن جایگذاری شامل کدهای کنترلی ترمینال باشد؛ چرا که اگر پوسته/برنامه در حال اجرا درون ترمینال آنها را به درستی مدیریت نکند، میتواند خطرناک بوده و منجر به اجرای کد شود.
- confirm-if-large
- تأیید جایگذاری در صورتی که بسیار بزرگ باشد (بزرگتر از 16KB)، زیرا جایگذاری حجم بالایی از متن در پوستهها میتواند بسیار کند باشد.
- filter:
- اجرای تابع filter_paste() از پرونده paste-actions.py در شاخه پیکربندی kitty روی متن جایگذاریشده. متنی که توسط تابع بازگردانده شود در عمل جایگذاری خواهد شد.
- no-op:
- هیچ اثری ندارد.
strip_trailing_spaces never
حذف فاصلههای انتهای خطوط هنگام رونوشت به تختهگیره. مقدار smart این کار را هنگام استفاده از گزینشهای عادی انجام میدهد، اما در گزینشهای مستطیلی خیر. مقدار always همواره این کار را انجام میدهد.
select_by_word_characters @-./_~?&=%+#
نویسههایی که هنگام دوبار کلیک، بخشی از کلمه در نظر گرفته میشوند. علاوه بر این نویسهها، هر نویسهای که در پایگاه داده یونیکد به عنوان نویسه الفبایی-عددی علامتگذاری شده باشد نیز تطبیق داده میشود.
نویسههایی که هنگام گسترش گزینش به جلو با دوبار کلیک، بخشی از کلمه در نظر گرفته میشوند. علاوه بر این نویسهها، هر نویسهای که در پایگاه داده یونیکد به عنوان نویسه الفبایی-عددی علامتگذاری شده باشد نیز تطبیق داده خواهد شد.
در صورت خالی بودن (پیشفرض)، select_by_word_characters برای هر دو جهت استفاده خواهد شد.
click_interval -1.0
بازه زمانی میان کلیکهای متوالی برای تشخیص کلیکهای دوگانه/سهگانه (به ثانیه). اعداد منفی در صورت وجود از پیشفرض سامانه استفاده میکنند، یا به عنوان جایگزین به 0.5 برمیگردند.
focus_follows_mouse no
تنظیم پنجره فعال به پنجره زیر موشواره هنگامی که موشواره وارد پنجره دیگری میشود. تا زمانی که موشواره درون یک پنجره تکی حرکت میکند، پنجره فعال تغییر نمییابد؛ بنابراین تکان خوردن تصادفی موشواره تعویض پنجره مبتنی بر صفحهکلید را باطل نمیکند. تنظیم آن روی drop به این معنی است که تمرکز تنها هنگام کشیدن و رها کردن (drag and drop) در یک پنجره تغییر خواهد کرد. در macOS، این کار همچنین باعث میشود تا زمانی که برنامه kitty برنامه فعال است، پنجره سامانه زیر موشواره با ورود موشواره به آن، به صورت خودکار متمرکز شود.
pointer_shape_when_grabbed arrow
شکل نشانگر موشواره هنگامی که برنامه در حال اجرا درون ترمینال، موشواره را به دست میگیرد (grab).
default_pointer_shape beam
شکل پیشفرض نشانگر موشواره.
pointer_shape_when_dragging beam crosshair
شکل پیشفرض نشانگر موشواره هنگام کشیدن روی متن. مقدار اختیاری دوم، شکل نشانگر را هنگام کشیدن در حالت گزینش مستطیلی تعیین میکند.
drag_threshold 5
فاصله آستانهای که موشواره برای شروع کشیدن و رها کردن (drag and drop) باید حرکت کند. کشیدن برای زبانهها و پنجرهها کار میکند. میتوانید زبانهها را برای مرتبسازی مجدد، جدا کردن به پنجرههای سامانهای جدید یا انتقال آنها به پنجره سامانهای دیگر بکشید. به طور مشابه، با کشیدن نوار عنوان پنجره (به toggle_window_title_bars <#action-toggle_window_title_bars> نگاه کنید) میتوانید آن را در چیدمانش بازآرایی کنید، جدا سازید یا به زبانه دیگری انتقال دهید. مقدار صفر تمام قابلیتهای کشیدن را غیرفعال میکند.
توجه داشته باشید در Wayland به دلیل طراحی ضعیف https://gitlab.freedesktop.org/wayland/wayland/-/issues/140 لغو یک کشش باعث جدا شدن زبانه میشود. این مشکل برای ترکیبکنندههایی که از xdg-toplevel-drag https://wayland.app/protocols/xdg-toplevel-drag-v1 پشتیبانی میکنند برطرف شده است.
کنشهای موشواره (Mouse actions)
دکمههای موشواره را میتوان برای انجام کنشهای دلخواه نگاشت کرد. ساختار بدینگونه است:
mouse_map button-name event-type modes action
که در آن button-name یکی از مقادیر left، middle، right، b1 ... b8 به همراه کلیدهای تبدیل صفحهکلید است. برای نمونه: ctrl+shift+left به نگه داشتن کلیدهای Ctrl+Shift هنگام کلیک با دکمه چپ موشواره اشاره دارد. مقادیر b1 ... b8 را میتوان برای ارجاع به حداکثر هشت دکمه روی موشواره به کار برد.
event-type یکی از مقادیر press، release، doublepress، triplepress، click، doubleclick است. modes مشخص میکند که آیا کنش هنگام به دام افتادن موشواره توسط برنامهٔ در حال اجرا در ترمینال (grabbed) انجام شود یا خیر. مقادیر آن grabbed یا ungrabbed یا ترکیبی از آنها با کاما هستند. grabbed به زمانی اشاره دارد که برنامهٔ در حال اجرا در ترمینال رویدادهای موشواره را درخواست کرده باشد. توجه داشته باشید که رویدادهای کلیک و دوبارکلیک دارای تأخیری به میزان click_interval هستند تا از فشردنهای دوبار و سهبار متمایز شوند.
میتوانید kitty را با گزینه خط فرمان kitty --debug-input <#cmdoption-kitty-debug-input> اجرا کنید تا رویدادهای موشواره را ببینید. کنشهای توکار زیر را بررسی کنید تا با امکانات آن آشنا شوید.
اگر میخواهید نگاشت یک دکمه را حذف کنید، آن را به هیچچیز نگاشت کنید. برای نمونه، برای غیرفعال کردن باز کردن URLها با یک کلیک ساده:
mouse_map left click ungrabbed
همه کنشهای قابل نگاشت شامل کنشهای موشواره را اینجا ببینید <>.
نکته:
clear_all_mouse_actions no
حذف همه تعاریف کنشهای موشواره تا این نقطه. برای مثال، برای حذف کنشهای پیشگزیده موشواره کاربرد دارد.
- کلیک روی پیوند زیر موشواره یا جابجایی مکاننما
mouse_map left click ungrabbed mouse_handle_click selection link prompt
ابتدا وجود یک گزینش را بررسی میکند و در صورت وجود، کاری انجام نمیدهد. سپس وجود پیوند زیر مکاننمای موشواره را بررسی کرده و در صورت وجود روی آن کلیک میکند. در نهایت بررسی میکند آیا کلیک در اعلان پوسته (shell prompt) فعلی رخ داده است یا خیر، و در این صورت مکاننما را به محل کلیک منتقل میکند. توجه داشته باشید که این مورد برای کارکرد به یکپارچهسازی با پوسته <#shell-integration> نیاز دارد.
- کلیک روی پیوند زیر موشواره یا جابجایی مکاننما حتی در حالت ضبط موشواره
mouse_map shift+left click grabbed,ungrabbed mouse_handle_click selection link prompt
مشابه بالا، با این تفاوت که کنش حتی در زمانی که موشواره توسط برنامهٔ در حال اجرا در ترمینال ضبط (grabbed) شده باشد نیز انجام میشود.
- کلیک روی پیوند زیر مکاننمای موشواره
mouse_map ctrl+shift+left release grabbed,ungrabbed mouse_handle_click link
نسخهٔ همراه با Ctrl+Shift به این دلیل وجود دارد که نسخهٔ ساده مبتنی بر کلیک دارای تأخیر ناگزیر click_interval است تا کلیکهای تکی را از دوبارکلیک متمایز کند.
- صرفنظر از رویداد فشردن برای کلیک پیوند
mouse_map ctrl+shift+left press grabbed discard_event
جلوگیری از ارسال این رویداد فشردن (press) به برنامهای که موشواره را ضبط کرده است، زیرا رویداد رها کردن (release) متناظر برای باز کردن URL استفاده میشود.
- جایگذاری از گزینش نخستین
mouse_map middle release ungrabbed paste_from_selection
- آغاز گزینش متن
mouse_map left press ungrabbed mouse_selection normal
اگر میخواهید پیوندها یا URLهای شناساییشده را بکشید و رها کنید، به جای normal از drag_or_normal_select استفاده کنید؛ در این صورت اگر پیوندی زیر موشواره باشد بر اساس drag_threshold کشیده میشود، در غیر این صورت یک گزینش معمولی انجام خواهد شد.
- آغاز گزینش متن در یک مستطیل
mouse_map ctrl+alt+left press ungrabbed mouse_selection rectangle
- گزینش یک واژه
mouse_map left doublepress ungrabbed mouse_selection word
- گزینش یک خط
mouse_map left triplepress ungrabbed mouse_selection line
- گزینش خط از اولین خانه
mouse_map alt+left triplepress ungrabbed mouse_selection line_from_begin
- گزینش خط از نقطه
mouse_map ctrl+alt+left triplepress ungrabbed mouse_selection line_from_point
گزینش از نقطهٔ کلیکشده تا پایان خط. اگر میخواهید واژهٔ موجود در آن نقطه گزینش شود و سپس تا انتهای خط گسترش یابد، line_from_point را به word_and_line_from_point تغییر دهید.
- گسترش گزینش فعلی
mouse_map right press ungrabbed mouse_selection extend
اگر میخواهید به جای نزدیکترین مرز، تنها انتهای گزینش جابجا شود، به جای extend از move-end استفاده کنید.
- گسترش گزینش فعلی با shift
mouse_map shift+left press ungrabbed mouse_selection extend
اگر میخواهید به جای نزدیکترین مرز، تنها انتهای گزینش جابجا شود، به جای extend از move-end استفاده کنید.
- جایگذاری از گزینش نخستین حتی در حالت ضبط موشواره
mouse_map shift+middle release ungrabbed,grabbed paste_selection mouse_map shift+middle press grabbed discard_event
- آغاز گزینش متن حتی در حالت ضبط موشواره
mouse_map shift+left press grabbed mouse_selection normal
- آغاز گزینش متن در یک مستطیل حتی در حالت ضبط موشواره
mouse_map ctrl+shift+alt+left press ungrabbed,grabbed mouse_selection rectangle
- گزینش یک واژه حتی در حالت ضبط موشواره
mouse_map shift+left doublepress ungrabbed,grabbed mouse_selection word
- گزینش یک خط حتی در حالت ضبط موشواره
mouse_map shift+left triplepress ungrabbed,grabbed mouse_selection line
- گزینش خط از اولین خانه حتی در حالت ضبط موشواره
mouse_map shift+alt+left triplepress ungrabbed,grabbed mouse_selection line_from_begin
- گزینش خط از نقطه حتی در حالت ضبط موشواره
mouse_map ctrl+shift+alt+left triplepress ungrabbed,grabbed mouse_selection line_from_point
گزینش از نقطهٔ کلیکشده تا پایان خط حتی در حالت ضبط موشواره. اگر میخواهید واژهٔ موجود در آن نقطه گزینش شود و سپس تا انتهای خط گسترش یابد، line_from_point را به word_and_line_from_point تغییر دهید.
- گسترش گزینش فعلی حتی در حالت ضبط موشواره
mouse_map shift+right press ungrabbed,grabbed mouse_selection extend
- نمایش خروجی دستور کلیکشده در صفحهبند
mouse_map ctrl+shift+right press ungrabbed mouse_show_command_output
برای کارکرد به یکپارچهسازی با پوسته <#shell-integration> نیاز دارد.
تنظیم کارایی (PERFORMANCE TUNING)
repaint_delay 10
تأخیر بین بهروزرسانیهای صفحه (به میلیثانیه). کاهش آن باعث افزایش فریم بر ثانیه (FPS) به بهای مصرف بیشتر CPU میشود. مقدار پیشگزیده حدود ۱۰۰ فریم بر ثانیه تولید میکند که برای بیشتر کاربردها بیش از حد کافی است. توجه داشته باشید که برای دستیابی واقعی به ۱۰۰ FPS، باید یا sync_to_monitor را روی no تنظیم کنید یا از نمایشگری با نرخ نوسازی بالا استفاده کنید. همچنین، برای کمینه کردن تاخیر زمانی که ورودی در انتظار پردازش وجود دارد، این گزینه نادیده گرفته میشود.
input_delay 3
تأخیر پیش از پردازش ورودی دریافت شده از برنامه در حال اجرا در ترمینال (به میلیثانیه). توجه داشته باشید که کاهش آن پاسخدهی را افزایش میدهد، اما همچنین مصرف CPU را افزایش داده و ممکن است باعث پرش تصویر در برنامههای تمامصفحهای شود که کل صفحه را در هر حلقه بازطراحی میکنند، زیرا kitty آنچنان سریع است که بهروزرسانیهای جزئی صفحه رسم خواهند شد. این تنظیم زمانی که بافر ورودی تقریباً پر باشد نادیده گرفته میشود.
sync_to_monitor yes
همگامسازی بهروزرسانیهای صفحه با نرخ نوسازی نمایشگر. این کار از بریدگی تصویر https://en.wikipedia.org/wiki/Screen_tearing هنگام پیمایش جلوگیری میکند. با این حال، سرعت رندر را به نرخ نوسازی نمایشگر شما محدود میسازد. با یک موشواره بسیار پرسرعت یا نرخ تکرار بالای صفحهکلید، ممکن است متوجه اندکی تأخیر در ورودی شوید. در این صورت، این گزینه را روی no تنظیم کنید.
زنگ ترمینال (TERMINAL BELL)
enable_audio_bell yes
زنگ صوتی. برای غیرفعال کردن در محیطهایی که نیاز به سکوت دارند کاربردی است.
visual_bell_duration 0.0
مدت زمان زنگ دیداری (به ثانیه). هنگام وقوع زنگ، صفحه برای مدت ثانیههای مشخص شده چشمک میزند. برای غیرفعالسازی روی صفر تنظیم کنید. چشمکزدن متحرک است و در طول مدت مشخص شده محو و ظاهر میشود. تابع تغییر سرعت <#term-easing-function> مورد استفاده برای محو شدن قابل کنترل است. برای نمونه، 2.0 linear باعث میشود چشمکزدن به صورت خطی محو و پدیدار شود. پیشگزیده در صورت عدم تعیین استفاده از ease-in-out است که در ابتدا، میانه و پایان به آرامی محو میشود. میتوانید توابع تغییر سرعت متفاوتی را برای بخشهای پدیدار شدن و محو شدن مشخص کنید، مانند این: 2.0 ease-in linear. kitty از تمام توابع تغییر سرعت CSS https://developer.mozilla.org/en-US/docs/Web/CSS/easing-function پشتیبانی میکند.
visual_bell_color none
رنگ مورد استفاده در زنگ دیداری. تنظیم روی none به رنگ پسزمینهٔ گزینش بازمیگردد. اگر احساس میکنید زنگ دیداری بیش از حد روشن است، میتوانید آن را روی رنگی تیرهتر تنظیم کنید.
window_alert_on_bell yes
درخواست جلب توجه پنجره هنگام زنگ. باعث جهش آیکون dock در macOS یا چشمک زدن نوار وظیفه در لینوکس میشود.
bell_on_tab "🔔 "
مقداری متن یا یک نماد یونیکد برای نمایش روی زبانه در صورتی که پنجرهای در آن زبانه که فوکوس ندارد دچار زنگ شود. اگر میخواهید از فاصلههای ابتدایی یا انتهایی استفاده کنید، متن را درون علامت نقلقول قرار دهید. برای نحوه رندر شدن این مورد به tab_title_template مراجعه کنید.
برای سازگاری با نسخههای پیشین، مقادیر yes، y و true به نماد پیشگزیدهٔ زنگ تبدیل میشوند و مقادیر no، n، false و none به رشتهٔ خالی تبدیل میشوند.
command_on_bell none
برنامهای که هنگام وقوع زنگ اجرا میشود. از متغیر محیطی KITTY_CHILD_CMDLINE <#envvar-KITTY_CHILD_CMDLINE> میتوان برای دریافت برنامه در حال اجرا در پنجرهای که زنگ در آن رخ داده است استفاده کرد.
macos_dock_badge_on_bell yes
نمایش یک نشان روی آیکون dock نرمافزار kitty هنگام وقوع زنگ در زمانی که kitty برنامهٔ فعال نیست (فقط در macOS). این نشان به طور خودکار با بازگشت فوکوس به kitty پاک میشود.
bell_path none
مسیر پرونده صوتی برای پخش به عنوان صدای زنگ. اگر روی none تنظیم شود، از صدای زنگ پیشفرض سیستم استفاده میشود. باید در قالبی باشد که توسط API صوتی سیستمعامل پشتیبانی میشود، مانند WAV یا OGA در لینوکس (libcanberra) یا AIFF، MP3 یا WAV در macOS (NSSound). مسیرهای نسبی نسبت به دایرکتوری پیکربندی kitty سنجیده میشوند.
linux_bell_theme __custom
پوسته صوتی XDG که kitty برای پخش صدای زنگ استفاده خواهد کرد. در Wayland، زمانی که کامپوزیتور از آن پشتیبانی کند، درخواست پخش صدای زنگ پیشفرض سیستم به آن ارسال میشود و این تنظیم تأثیری ندارد. توجه داشته باشید که Hyprland ادعای پشتیبانی از این پروتکل را دارد، اما در عمل صدایی پخش نمیکند https://github.com/hyprwm/Hyprland/issues/10488. این تنظیم به صورت پیشفرض روی نام پوسته سفارشی مشخصشده در مشخصات پوسته صوتی XDG https://specifications.freedesktop.org/sound-theme-spec/latest/sound_lookup.html با محتوای زیر تنظیم شده است:
Inherits=name-of-the-sound-theme-you-want-to-use
عبارت name-of-the-sound-theme-you-want-to-use را با نام واقعی پوسته جایگزین کنید. اکنون تمام برنامههای سازگار باید از صداهای این پوسته استفاده کنند.
چیدمان پنجره (WINDOW LAYOUT)
remember_window_size yes initial_window_width 640 initial_window_height 400
در صورت فعال بودن، اندازه پنجره سیستمعامل (OS Window) <#term-os_window> به خاطر سپرده میشود تا نمونههای جدید kitty همان اندازه نمونه قبلی را داشته باشند. در صورت غیرفعال بودن، پنجره سیستمعامل در ابتدا اندازهای خواهد داشت که توسط initial_window_width/height بر حسب پیکسل پیکربندی شده است. میتوانید از پسوند "c" در مقادیر عرض/ارتفاع استفاده کنید تا به جای پیکسل به عنوان تعداد سلولها تفسیر شوند. توجه داشته باشید که در Wayland، کارکرد اندازههای اولیه پنجره مشخصشده بر حسب سلول هنگام استفاده از مقیاسبندی کسری به کامپوزیتور بستگی دارد.
remember_window_position no
در صورت فعال بودن، موقعیت پنجره سیستمعامل (OS Window) <#term-os_window> به خاطر سپرده میشود تا نمونههای جدید kitty همان موقعیت نمونه قبلی را داشته باشند. در صورت غیرفعال بودن، موقعیت پنجره سیستمعامل توسط مدیر پنجره تعیین میشود. توجه داشته باشید که به خاطر سپردن موقعیت تنها در صورتی کار میکند که محیط رومیزی/مدیر پنجره زیرین از آن پشتیبانی کند. این ویژگی هرگز در Wayland کار نمیکند. همچنین برای تعیین موقعیت هنگام راهاندازی kitty، به kitty --position <#cmdoption-kitty-position> مراجعه کنید.
enabled_layouts *
چیدمانهای فعال پنجره. فهرستی از نامهای چیدمان که با کاما از هم جدا شدهاند. مقدار ویژه all به معنای تمام چیدمانها است. اولین چیدمان فهرستشده به عنوان چیدمان راهاندازی استفاده خواهد شد. پیکربندی پیشفرض شامل تمام چیدمانها به ترتیب الفبایی است. برای فهرستی از چیدمانهای موجود، به Layouts <#layouts> مراجعه کنید.
window_resize_step_cells 2 window_resize_step_lines 2
اندازه گام (بر حسب واحدهای عرض سلول/ارتفاع سلول) برای تغییر اندازه پنجرههای kitty در یک چیدمان با میانبر ctrl+shift+r. مقدار cells برای تغییر اندازه افقی و مقدار lines برای تغییر اندازه عمودی استفاده میشود.
window_border_width 0.5pt
عرض حاشیههای پنجره. میتواند بر حسب پیکسل (px) یا پوینت (pt) باشد. مقادیر بر حسب pt بر اساس وضوح صفحه نمایش به نزدیکترین تعداد پیکسل گرد میشوند. در صورت عدم تعیین، واحد به صورت pt فرض میشود. توجه داشته باشید که حاشیهها تنها زمانی نمایش داده میشوند که بیش از یک پنجره قابل مشاهده باشد. هدف آنها جداسازی چندین پنجره از یکدیگر است.
draw_minimal_borders yes
رسم حداقل حاشیههای مورد نیاز. این بدان معناست که تنها حاشیههایی رسم میشوند که پنجره را از پنجره مجاور جدا میکنند. توجه داشته باشید که تنظیم مقدار غیرصفر برای window_margin_width این گزینه را لغو کرده و باعث میشود همه حاشیهها رسم شوند.
draw_window_borders_for_single_window no
رسم حاشیه در اطراف پنجره حتی زمانی که تنها یک پنجره قابل مشاهده است. در صورت فعال بودن و وجود تنها یک پنجره، حاشیههای کامل در اطراف آن رسم میشود (گویی draw_minimal_borders برابر با false است). هنگام فوکوس بودن پنجره و داشتن فوکوس پنجره سیستمعامل، حاشیه با رنگ فعال نمایش داده میشود و با از دست رفتن فوکوس پنجره سیستمعامل، با رنگ غیرفعال نشان داده میشود. این ویژگی یک نشانگر بصری واضح برای وضعیت فوکوس بودن پنجره kitty فراهم میکند. وقتی چندین پنجره قابل مشاهده باشند، این گزینه تأثیری ندارد و قوانین معمول رسم حاشیه اعمال میشوند.
window_margin_width 0
حاشیه بیرونی پنجره (بر حسب pt) (ناحیه خالی بیرون حاشیه). یک مقدار واحد، هر چهار طرف را تنظیم میکند. دو مقدار، جهتهای عمودی و افقی را تنظیم میکنند. سه مقدار، بالا، افقی و پایین را تنظیم میکنند. چهار مقدار، بالا، راست، پایین و چپ را تنظیم میکنند.
single_window_margin_width -1
حاشیه بیرونی پنجره برای زمانی که تنها یک پنجره قابل مشاهده است (بر حسب pt). مقادیر منفی باعث میشوند مقدار window_margin_width به جای آن استفاده شود. یک مقدار واحد، هر چهار طرف را تنظیم میکند. دو مقدار، جهتهای عمودی و افقی را تنظیم میکنند. سه مقدار، بالا، افقی و پایین را تنظیم میکنند. چهار مقدار، بالا، راست، پایین و چپ را تنظیم میکنند.
window_padding_width 0
فاصلهگذاری درونی پنجره (بر حسب pt) (ناحیه خالی بین متن و حاشیه پنجره). یک مقدار واحد، هر چهار طرف را تنظیم میکند. دو مقدار، جهتهای عمودی و افقی را تنظیم میکنند. سه مقدار، بالا، افقی و پایین را تنظیم میکنند. چهار مقدار، بالا، راست، پایین و چپ را تنظیم میکنند.
single_window_padding_width -1
فاصلهگذاری درونی پنجره برای زمانی که تنها یک پنجره قابل مشاهده است (بر حسب pt). مقادیر منفی باعث میشوند مقدار window_padding_width به جای آن استفاده شود. یک مقدار واحد، هر چهار طرف را تنظیم میکند. دو مقدار، جهتهای عمودی و افقی را تنظیم میکنند. سه مقدار، بالا، افقی و پایین را تنظیم میکنند. چهار مقدار، بالا، راست، پایین و چپ را تنظیم میکنند.
placement_strategy center
هنگامی که اندازه پنجره مضرب دقیقی از اندازه سلول نباشد، ناحیه سلولی پنجره ترمینال دارای مقداری فاصلهگذاری اضافی در لبهها خواهد بود. میتوانید نحوه توزیع این فاصلهگذاری را با این گزینه کنترل کنید. استفاده از مقدار center بدین معنی است که ناحیه سلولی در مرکز قرار میگیرد. مقدار top-left به این معنی است که فاصلهگذاری فقط در لبههای پایینی و راست قرار میگیرد. مقدار میتواند یکی از این موارد باشد: top-left، top، top-right، left، center، right، bottom-left، bottom، bottom-right.
active_border_color #00ff00
رنگ حاشیه پنجره فعال. این مقدار را روی none تنظیم کنید تا حاشیهای در اطراف پنجره فعال رسم نشود.
inactive_border_color #cccccc
رنگ حاشیه پنجرههای غیرفعال.
bell_border_color #ff5a00
رنگ حاشیه پنجرههای غیرفعالی که در آنها زنگ رخ داده است.
inactive_text_alpha 1.0
محو کردن متن در پنجرههای غیرفعال به میزان مشخصشده. این مقدار باید عددی بین -1 و 1 باشد. مقدار مطلق، میزان شفافیت واقعی را کنترل میکند که صفر به معنای محو کامل و یک به معنای کاملاً کدر است. هنگامی که یک عدد مثبت استفاده میشود، متن حتی در صورتی که تنها یک پنجره قابل مشاهده باشد ولی پنجره سیستمعامل فوکوس نداشته باشد، محو میشود. اعداد منفی به این معنی است که متن تنها زمانی محو میشود که بیش از یک پنجره kitty در یک پنجره سیستمعامل قابل مشاهده باشد. محو شدن در تمام پنجرهها به جز پنجره فعال اتفاق میافتد، حتی اگر پنجره سیستمعامل فوکوس نداشته باشد. بنابراین اگر بخواهید به مدیر پنجره برای نشان دادن فوکوس پنجره سیستمعامل تکیه کنید و از این ویژگی برای مشخص کردن پنجره فعال kitty در داخل پنجره سیستمعامل بهره ببرید، این گزینه کاربردی است.
hide_window_decorations no
مخفی کردن تزئینات پنجره (نوار عنوان و حاشیههای پنجره) با مقدار yes. در macOS، مقادیر titlebar-only و titlebar-and-corners میتوانند برای مخفی کردن صرف نوار عنوان و گوشههای گرد استفاده شوند.
در Wayland، مقدار titlebar-only میتواند برای مخفی کردن نوار عنوان ضمن حفظ سایه پنجره برای تغییر اندازه استفاده شود. در کامپوزیتورهایی که دارای تزئینات سمت سرور هستند (مانند هر محیطی جز GNOME)، هر دو مقدار yes و titlebar-only حالت تزئینات سمت کلاینت را تحمیل میکنند.
اینکه این قابلیت کار کند و دقیقاً چه تأثیری داشته باشد به مدیر پنجره/سیستمعامل بستگی دارد. توجه داشته باشید که تأثیرات تغییر این گزینه هنگام بارگذاری مجدد پیکربندی تعریفنشده است. هنگام استفاده از titlebar-only در macOS، تنظیم window_margin_width و placement_strategy نیز برای جلوگیری از بریده شدن متن توسط گوشههای گرد مفید است؛ یا میتوانید از titlebar-and-corners استفاده کنید.
window_logo_path none
مسیر پرونده تصویر نشانواره (لوگو). باید در قالب PNG/JPEG/WEBP/GIF/TIFF/BMP باشد. مسیرهای نسبی نسبت به دایرکتوری پیکربندی kitty تفسیر میشوند. لوگو در گوشهای از هر پنجره kitty نمایش داده میشود. موقعیت آن با window_logo_position کنترل میشود. پنجرههای جداگانه را میتوان طوری پیکربندی کرد که یا با استفاده از کنش launch <#action-launch> یا قابلیت کنترل از راه دور <> لوگوهای متفاوتی داشته باشند.
window_logo_position bottom-right
محل قرارگیری لوگوی پنجره در داخل پنجره. مقدار میتواند یکی از موارد زیر باشد: top-left، top، top-right، left، center، right، bottom-left، bottom، bottom-right.
window_logo_alpha 0.5
میزان محو شدن لوگو در پسزمینه. صفر به معنای محو کامل و یک به معنای کاملاً کدر است.
window_logo_scale 0
درصد (0-100] اندازه پنجره که لوگو باید بر اساس آن مقیاسبندی شود. استفاده از یک عدد واحد بدین معنی است که لوگو با حفظ نسبت ابعاد تصویر، به همان درصد از کوتاهترین بعد پنجره مقیاسبندی میشود.
استفاده از دو عدد بدین معنی است که عرض و ارتفاع لوگو به درصد متناظر از عرض و ارتفاع پنجره مقیاسبندی میشوند.
استفاده از صفر به عنوان درصد، مقیاسبندی در آن بعد را غیرفعال میکند. یک عدد صفر تکی (پیشفرض) تمام مقیاسبندیهای لوگوی پنجره را غیرفعال میکند.
resize_debounce_time 0.1 0.5
زمان انتظار (بر حسب ثانیه) پیش از درخواست از برنامه در حال اجرا در kitty برای تغییر اندازه و بازرسم صفحه حین تغییر اندازه زنده پنجره سیستمعامل، هنگامی که هیچ رویداد تغییر اندازه جدیدی دریافت نشده است، یعنی زمانی که تغییر اندازه یا متوقف شده یا پایان یافته است. در پلتفرمهایی مانند macOS، که سیستمعامل رویدادهای مربوط به شروع و پایان تغییر اندازه زنده را ارسال میکند، عدد دوم برای بازرسم پس از مکث استفاده میشود زیرا kitty میتواند بین مکث و پایان تغییر اندازه تمایز قائل شود. در چنین سیستمهایی عدد اول نادیده گرفته میشود و بازرسم بلافاصله پس از پایان تغییر اندازه انجام میشود. در سایر سیستمها فقط عدد اول استفاده میشود تا kitty به سرعت پس از پایان تغییر اندازه "آماده" شود، ضمن اینکه برای صرفهجویی در مصرف انرژی مدام بازرسم انجام ندهد.
resize_in_steps no
تغییر اندازه پنجره سیستمعامل در گامهایی به بزرگی سلولها، به جای دقت معمول پیکسلی. در ترکیب با initial_window_width و initial_window_height بر حسب تعداد سلولها، این گزینه میتواند برای حفظ حداقل حاشیهها هنگام تغییر اندازه پنجره سیستمعامل استفاده شود. توجه داشته باشید که این گزینه در حال حاضر در Wayland کار نمیکند.
visual_window_select_characters 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
فهرست نویسهها برای انتخاب بصری پنجره. به عنوان مثال، برای انتخاب پنجرهای جهت فوکوس با ctrl+shift+f7. مقدار باید رشتهای از اعداد یا حروف یکتا و بدون حساسیت به حروف بزرگ و کوچک، از مجموعه 0-9A-Z`-=[];',./\ باشد. ترجیح خود را به عنوان رشتهای از نویسهها مشخص کنید.
confirm_os_window_close -1
درخواست تأیید هنگام بستن پنجره سیستمعامل یا زبانهای که حداقل شامل این تعداد پنجره kitty باشد توسط مدیر پنجره (مانند کلیک روی دکمه بستن پنجره یا فشردن میانبر سیستمعامل برای بستن پنجرهها) یا توسط کنش close_tab <#action-close_tab>. مقدار صفر تأیید را غیرفعال میکند. این تأیید همچنین برای درخواستهای خروج از کل برنامه (همه پنجرههای سیستمعامل، از طریق کنش quit <#action-quit>) اعمال میشود. مقادیر منفی به مقادیر مثبت تبدیل میشوند، اما با فعال بودن shell_integration، استفاده از مقادیر منفی به این معنی است که پنجرههای منتظر در اعلان شل شمرده نمیشوند و تنها پنجرههایی که فرمانی در آنها در حال اجراست به حساب میآیند. همچنین میتوانید با افزودن count-background به تنظیم، از بسته شدن هنگام اجرای کارهای پسزمینه جلوگیری کنید؛ به عنوان مثال: -1 count-background. توجه داشته باشید که اگر میخواهید هنگام بستن پنجرههای تکی تأییدیه دریافت کنید، میتوانید کنش close_window_with_confirmation <#action-close_window_with_confirmation> را نگاشت کنید.
window_drag_tolerance 2
کنترل کشیدن حاشیههای پنجره برای تغییر اندازه پنجرههای kitty. این میزان تلورانس بر حسب pt برای ناحیه اطراف حاشیههای پنجره است که در آن فشردن کلید چپ موشواره باعث شروع کشیدن حاشیههای پنجره میشود. برای غیرفعال کردن کشیدن حاشیهها از یک مقدار منفی بزرگ مانند -200 استفاده کنید. توجه داشته باشید از آنجا که kitty از چیدمانها استفاده میکند، کشیدن حاشیهها در واقع خود پنجره را تغییر اندازه نمیدهد، بلکه سطر/ستون/شکاف چیدمان را تغییر اندازه میدهد که میتواند منجر به تغییر اندازه چندین پنجره شود.
window_title_bar top
کنترل موقعیت نوار عنوان پنجره نسبت به محتوای پنجره. از window_title_bar_min_windows برای کنترل زمان نمایش نوارهای عنوان استفاده کنید. از window_title_template برای قالببندی عنوان نمایشی پنجره استفاده کنید.
window_title_bar_min_windows 0
حداقل تعداد پنجرههای نمایان در یک تب پیش از نمایش نوار عنوان پنجره. مقدار 0 یعنی هرگز نمایش داده نشود. 1 یعنی همیشه نمایش داده شود. 2 یا بیشتر یعنی تنها زمانی که حداقل به همین تعداد پنجره نمایان باشد، نمایش داده شود. مشابه tab_bar_min_tabs برای نوار تب.
window_title_template "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.window}{progress_percent}{title}"
الگویی برای رندر متن نوار عنوان پنجره. از همان ساختار الگوی tab_title_template استفاده میکند. متغیرهای در دسترس عبارتند از: {title}، {bell_symbol}، {activity_symbol}، {progress_percent}، {custom}، {fmt}، {is_active}. همچنین میتوانید تابع سفارشی draw_window_title(data) را در پروندهٔ window_title_bar.py در شاخه پیکربندی kitty تعریف کنید که با {custom} در دسترس خواهد بود.
active_window_title_template none
الگوی مورد استفاده برای نوار عنوان پنجره فعال. در صورت تنظیم نشدن (مقدار none)، از window_title_template استفاده میشود.
window_title_bar_active_foreground none
رنگ متن (پیشزمینه) برای نوار عنوان پنجره فعال. در صورت تنظیم روی none، پیشفرض آن رنگ متناظر در نوار تب (active_tab_foreground) است.
window_title_bar_active_background none
رنگ پسزمینه برای نوار عنوان پنجره فعال. در صورت تنظیم روی none، پیشفرض آن رنگ متناظر در نوار تب (active_tab_background) است.
window_title_bar_inactive_foreground none
رنگ متن (پیشزمینه) برای نوار عنوان پنجرههای غیرفعال. در صورت تنظیم روی none، پیشفرض آن رنگ متناظر در نوار تب (inactive_tab_foreground) است.
window_title_bar_inactive_background none
رنگ پسزمینه برای نوار عنوان پنجرههای غیرفعال. در صورت تنظیم روی none، پیشفرض آن رنگ متناظر در نوار تب (inactive_tab_background) است.
window_title_bar_align center
تراز افقی متن در نوارهای عنوان پنجره.
نوار تب (TAB BAR)
tab_bar_edge bottom
لبهای که نوار تب در آن نمایش داده میشود: top، bottom، left یا right.
tab_bar_margin_width 0.0
حاشیه عمود بر لبه نوار تب (بر حسب pt). برای نوارهای تب در بالا یا پایین، این مقدار حاشیه چپ و راست است. برای نوارهای تب در چپ یا راست، این مقدار حاشیه بالا و پایین است.
tab_bar_margin_height 0.0 0.0
حاشیه در امتداد لبه نوار تب (بر حسب pt). عدد نخست، حاشیه میان لبه پنجره سیستمعامل و نوار تب است. عدد دوم، حاشیه میان نوار تب و محتویات تب کنونی است.
tab_bar_style fade
سبک نوار تب، میتواند یکی از موارد زیر باشد:
- fade
- لبههای هر تب در رنگ پسزمینه محو میشوند. (همچنین tab_fade را ببینید)
- slant
- تبها شبیه برگههای یک پوشه فیزیکی به نظر میرسند.
- separator
- تبها با یک جداکننده قابل پیکربندی از هم جدا میشوند. (همچنین tab_separator را ببینید)
- powerline
- تبها به صورت یک خط پیوسته با جداکنندههای شکیل نمایش داده میشوند. (همچنین tab_powerline_style را ببینید)
- custom
- تابع پایتون سفارشی کاربر به نام draw_tab از پروندهٔ tab_bar.py در شاخه پیکربندی kitty بارگذاری میشود. برای نمونههایی از نحوه نوشتن چنین تابعی، توابع با نام draw_tab_with_* در کد منبع kitty را ببینید: kitty/tab_bar.py. همچنین این گفتگو https://github.com/kovidgoyal/kitty/discussions/4447 را برای نمونههایی از کاربران kitty ببینید.
- نوار تب پنهان است. در صورت استفاده از این گزینه، ممکن است بخواهید کلید میانبری برای اقدام select_tab <#action-select_tab> تعریف کنید که فهرستی از تبها را نمایش داده و جابهجایی آسان بین تبها را ممکن میسازد.
یک عبارت جستجو <#search-syntax>. تنها تبهایی که با این عبارت مطابقت داشته باشند در نوار تب نشان داده میشوند. تب فعال کنونی همواره، بدون توجه به مطابقت یا عدم مطابقت، نمایش داده میشود. هنگام استفاده از این گزینه، ممکن است نوار تب با تعداد تب کمتری نسبت به مقدار تعیینشده در tab_bar_min_tabs نمایش یابد، زیرا ارزیابی فیلتر سنگین است و تنها هنگام نمایش انجام میشود. این ویژگی هنگام استفاده از نشستها <#sessions> بیشترین کاربرد را دارد. عبارت session:~ or session:^$ تنها تبهایی را نشان میدهد که متعلق به نشست فعلی هستند یا به هیچ نشستی تعلق ندارند. کنشهای گوناگون ناوبری تب مانند goto_tab <#action-goto_tab>، next_tab <#action-next_tab>، previous_tab <#action-previous_tab> و غیره، به طور خودکار محدود به کار تنها روی تبهای منطبق میشوند.
tab_bar_align start
تراز نوار تب، میتواند یکی از این موارد باشد: start، center، end، left، right. مقادیر left و right به ترتیب نامهای مستعار برای start و end هستند.
tab_bar_show_new_tab_button no
اگر روی yes تنظیم شود، دکمه + همیشه در انتهای نوار تب به عنوان میانبر قابل کلیک برای باز کردن تب جدید نمایش مییابد. هنگام تنظیم روی no (پیشفرض)، دکمه در حالت عادی پنهان است اما هنگام کشیدن (drag) یک پنجره موقتاً ظاهر میشود تا بتوان از آن به عنوان مقصد رهاسازی برای باز کردن پنجره در یک تب جدید استفاده کرد.
tab_bar_min_tabs 2
حداقل تعداد تبهایی که باید وجود داشته باشند تا نوار تب نمایش داده شود.
tab_switch_strategy previous
الگوریتم تعویض تب هنگام بسته شدن تب فعلی. مقدار پیشفرض previous به آخرین تب استفادهشده منتقل میشود. مقدار left به تب سمت چپِ تب بستهشده میرود. مقدار right به تب سمت راستِ تب بستهشده میرود. مقدار last به راستترین تب منتقل میشود.
tab_fade 0.25 0.5 0.75 1
کنترل نحوه محو شدن هر تب در پسزمینه هنگام استفاده از fade در tab_bar_style. هر عدد یک مقدار آلفا (بین صفر و یک) است که میزان محو شدن خانهٔ متناظر در پسزمینه را کنترل میکند؛ صفر یعنی بدون محو شدن و یک یعنی محو کامل. با افزودن/حذف مقادیر از این فهرست میتوانید تعداد خانههای استفادهشده را تغییر دهید.
tab_separator " ┇"
جداکننده میان تبها در نوار تب هنگام استفاده از separator در tab_bar_style.
tab_powerline_style angled
سبک جداکننده powerline میان تبها در نوار تب هنگام استفاده از powerline در tab_bar_style؛ میتواند یکی از این موارد باشد: angled، slanted، round.
tab_activity_symbol none
متن یا نماد یونیکد برای نمایش روی تب، در صورتی که پنجرهای بدون تمرکز در آن تب دارای فعالیتی باشد. برای استفاده از فاصلههای ابتدایی یا انتهایی، متن را در نقلقول قرار دهید. برای نحوه رندر شدن آن tab_title_template را ببینید.
tab_title_max_length 0
حداکثر تعداد خانههایی که میتوان برای رندر متن در یک تب استفاده کرد. مقدار صفر یعنی محدودیتی اعمال نمیشود. برای نوارهای تب عمودی، در صورت تنظیم نشدن این گزینه، kitty از پهنای پیشفرض نوار کناری با گنجایش حدود بیست خانه عنوان استفاده میکند.
tab_title_template "{fmt.fg.red}{bell_symbol}{activity_symbol}{secure_input_symbol}{fmt.fg.tab}{tab.last_focused_progress_percent}{title}"
الگویی برای رندر عنوان تب. حالت پیشفرض تنها عنوان را با نمادهای اختیاری زنگ و فعالیت رندر میکند. اگر مایل به گنجاندن نمایه (index) تب نیز هستید، از ساختاری مانند {index}:{title} استفاده کنید. در صورت داشتن میانبرهایی برای goto_tab N کاربردی است. اگر ترجیح میدهید نمایه به صورت بالانویس نمایش یابد، از {sup.index} استفاده کنید. همه دادههای موجود عبارتند از:
- title
- عنوان تب کنونی.
- index
- نمایه تب قابل استفاده با میانبرهای goto_tab N <#action-goto_tab>.
- layout_name
- نام چیدمان فعلی.
- session_name
- نام پرونده نشست kitty که این تب از آن ایجاد شده است (در صورت وجود).
- active_session_name
- نام پرونده نشست kitty که پنجره فعال در این تب از آن ایجاد شده است (در صورت وجود).
- num_windows
- تعداد پنجرههای موجود در تب.
- num_window_groups
- تعداد گروههای پنجره (یک گروه پنجره شامل یک پنجره و تمام پنجرههای همپوشان آن است) در تب.
- secure_input_symbol
- نماد یک کلید هنگام فعال بودن secure input در macOS و فعال بودن تب؛ در غیر این صورت خالی است.
- tab.active_wd
- شاخه کاری پنجره در حال حاضر فعال در تب (سنگین، نیازمند فراخوان سیستم). از tab.active_oldest_wd برای دریافت شاخه قدیمیترین فرایند پیشزمینه به جای جدیدترین استفاده کنید.
- tab.active_exe
- نام فایل اجرایی در حال اجرا در پیشزمینه پنجره فعال فعلی در تب (سنگین، نیازمند فراخوان سیستم). برای قدیمیترین فرایند پیشزمینه از tab.active_oldest_exe استفاده کنید.
- max_title_length
- حداکثر طول عنوان موجود.
- keyboard_mode
- نام حالت صفحهکلید فعلی <#modal-mappings> یا یک رشته خالی اگر هیچ حالت صفحهکلیدی فعال نباشد.
- tab.last_focused_progress_percent
- اگر دستوری در پنجره پیشرفت کاری را گزارش کند، این پیشرفت را به صورت درصدی از آخرین پنجره فوکوسشده در تب نشان میدهد. در صورت عدم گزارش پیشرفت، رشته خالی است.
- tab.progress_percent
- اگر دستوری در پنجره پیشرفت کاری را گزارش کند، این پیشرفت را به عنوان میانگین درصد همه پنجرههای تب نشان میدهد. در صورت عدم گزارش پیشرفت، رشته خالی است.
- tab.children_mem_usage
- میزان مصرف حافظه فعلی تمام فرایندهای فرزند تب و نوادگان آنها.
- custom
- این مورد تابعی به نام draw_title(data) را از پرونده tab_bar.py واقع در شاخه پیکربندی kitty فراخوانی میکند. یک دیکشنری از دادهها به تابع ارسال میشود، همان دادههایی که میتوان در این الگو به کار برد. سپس تابع میتواند پردازشهای دلخواه را انجام داده و یک رشته برگرداند. برای نمونه: tab_title_template "{custom}" خروجی تابع را به عنوان عنوان تب به کار میبرد. هر دستور چاپ در draw_title() روی STDOUT فرایند kitty چاپ میشود که برای رفع اشکال سودمند است.
توجه داشته باشید قالببندی توسط سازوکار قالببندی رشته پایتون انجام میشود، بنابراین میتوانید به عنوان مثال از {layout_name[:2].upper()} برای نمایش تنها دو حرف اول نام چیدمان با حروف بزرگ استفاده کنید. برای استایل دادن به متن، میتوانید دستورالعملهای استایل را به کار ببرید، مثلاً: {fmt.fg.red}red{fmt.fg.tab}normal{fmt.bg._00FF00}greenbg{fmt.bg.tab}. به همین ترتیب برای ضخیم و کج: {fmt.bold}bold{fmt.nobold}normal{fmt.italic}italic{fmt.noitalic}. رنگهای ۲۵۶گانه ترمینال به صورت fmt.fg.color0 تا fmt.fg.color255 قابل استفاده هستند. توجه داشته باشید برای سازگاری با نسخههای پیشین، اگر {bell_symbol} یا {activity_symbol} در الگو موجود نباشند، به ابتدای آن افزوده میشوند.
active_tab_title_template none
الگوی مورد استفاده برای تبهای فعال. در صورت تعیین نشدن، از tab_title_template استفاده میشود.
active_tab_foreground #000 active_tab_background #eee active_tab_font_style bold-italic inactive_tab_foreground #444 inactive_tab_background #999 inactive_tab_font_style normal
رنگها و سبکهای نوار تب.
tab_bar_background none
رنگ پسزمینه برای نوار تب. پیشفرض آن رنگ پسزمینه ترمینال است.
tab_bar_margin_color none
رنگ ناحیه حاشیه نوار تب. پیشفرض برای حاشیههای بالا و پایین نوار تب، رنگ پسزمینه ترمینال است. برای حاشیههای کناری، رنگ پیشفرض متناسب با رنگ پسزمینه تب مجاور انتخاب میشود، مگر اینکه پنجره نیمهشفاف باشد که در این صورت پسزمینه پیشفرض استفاده میشود چون جلوه بهتری دارد.
طرح رنگ (COLOR SCHEME)
foreground #dddddd background #000000
رنگهای پیشزمینه و پسزمینه.
background_opacity 1.0
میزان کدر بودن (opacity) رنگ پسزمینه ترمینال. عددی بین صفر و یک، که یک کاملاً کدر و صفر کاملاً شفاف است. این ویژگی تنها در صورت پشتیبانی سیستمعامل کار میکند (برای نمونه، هنگام استفاده از کامپوزیتور تحت X11). توجه داشته باشید که این گزینه فقط شفافیت پسزمینه خانههایی (cells) را تنظیم میکند که رنگ پسزمینه یکسانی با پسزمینه پیشفرض ترمینال دارند؛ تا مواردی مانند نوار وضعیت در vim، خط اعلانهای powerline و غیره همچنان درست دیده شوند. اما بدین معناست که اگر در ویرایشگر متنی خود از یک تم رنگی با رنگ پسزمینه مشخص استفاده کنید، آن بخش شفاف رندر نخواهد شد. در عوض باید رنگ پسزمینه پیشفرض را در پیکربندی kitty تغییر داده و در طرح رنگ ویرایشگر از رنگ پسزمینه استفاده نکنید. یا اینکه با کدهای گریز (escape codes) در اسکریپت شل راهاندازی ویرایشگر، رنگهای پیشفرض ترمینال را تنظیم کنید. همچنین گزینه transparent_background_colors را ببینید. توجه داشته باشید که استفاده از مقداری کمتر از 1.0 ممکن است افت عملکرد (احتمالاً قابل توجهی) به همراه داشته باشد. هنگام استفاده از مقادیر کم برای این تنظیم، بهتر است رنگ background را روی رنگی نزدیک به رنگ کلی پسزمینه دسکتاپ قرار دهید تا بهترین کیفیت رندر متن حاصل شود. همچنین توجه کنید این تنظیم روی background_image (در صورت وجود) اعمال نمیشود. تصویر پسزمینه میتواند از طریق کانال آلفا خودش شفافیت داشته باشد که رعایت خواهد شد.
اگر میخواهید شفافیت پنجرهها را بهطور پویا تغییر دهید، گزینه dynamic_background_opacity را روی yes بگذارید (این گزینه بهدلیل هزینه عملکردی بهطور پیشفرض غیرفعال است). تغییر این گزینه هنگام بارگذاری مجدد پیکربندی تنها زمانی کار میکند که dynamic_background_opacity در پیکربندی اولیه فعال بوده باشد.
background_blur 0
یک مقدار مثبت برای فعالسازی محوشدگی پسزمینه (blur شدن عناصر بصری پشت پنجره شفاف) در پلتفرمهای پشتیبانیشده تعیین کنید. تنها زمانی اثر میگذارد که مقدار background_opacity کمتر از یک باشد. در macOS، این مقدار شعاع محوشدگی (میزان بلور) را نیز کنترل میکند. تنظیم آن روی مقادیر بیش از حد بالا باعث افت شدید عملکرد و/یا اختلالات گرافیکی در رندر میشود. معمولاً مقادیر تا 64 خوب کار میکنند. توجه داشته باشید که بسته به نحوه پیادهسازی در پلتفرم، ممکن است مشکلات عملکردی ایجاد کند؛ بنابراین با احتیاط استفاده شود. در حال حاضر در macOS و Wayland (هنگامی که کامپوزیتور از افزونه background blur پشتیبانی کند) پشتیبانی میشود.
فهرستی جداشده با فاصله از حداکثر ۷ رنگ همراه با میزان کدر بودن (opacity). هرگاه رنگ پسزمینه یک خانه با یکی از این رنگها مطابقت داشته باشد، با میزان شفافیت تعیینشده رندر میشود.
در رابطهای کاربری پیچیدهتر مانند ویرایشگرها که ممکن است بخواهید بیش از یک رنگ پسزمینه بهصورت شفاف رندر شود (برای نمونه برای پسزمینه خط برجستهشده مکاننما یا یک بلوک مشخصشده) کاربرد دارد. برنامههای ترمینال میتوانند این رنگ را با استفاده از کد گریز The kitty color control <#id1> تنظیم کنند.
نحو تعیین رنگها بهصورت color@opacity است که بخش @opacity اختیاری میباشد. در صورت عدم تعیین، مقدار background_opacity استفاده میشود. برای مثال:
transparent_background_colors red@0.5 #00ff00@0.3
توجه داشته باشید که برای عملکرد صحیح این تنظیم، باید background_opacity را نیز روی مقداری کمتر از ۱ تنظیم کنید.
dynamic_background_opacity no
امکان تغییر پویای background_opacity با استفاده از کلیدهای میانبر صفحه کلید (ctrl+shift+a>m و ctrl+shift+a>l) یا قابلیت کنترل از راه دور. تغییر این گزینه با بارگذاری مجدد پیکربندی پشتیبانی نمیشود.
background_image none
الگوی گلب (glob) منطبق بر یک یا چند تصویر پسزمینه. باید در قالبهای PNG/JPEG/WEBP/TIFF/GIF/BMP باشد. تصویر اول بهعنوان تصویر پیشفرض استفاده میشود. تصاویر چندگانه (در صورت نیاز) در حافظه VRAM پردازنده گرافیکی ذخیره میشوند تا جابهجایی میان آنها آنی باشد. برای حرکت بین تصاویر در فهرست تصاویر پسزمینه، از دستور کنترل از راه دور set-background-image استفاده کنید؛ برای جزئیات به kitten set-background-image --help مراجعه کنید. میتوانید دستور را بدین شکل به یک کلید نگاشت کنید: map f1 remote_control set-background-image +1. توجه داشته باشید که هنگام استفاده از Change color themes automatically when the OS switches between light and dark <#auto-color-scheme>، این گزینه توسط پرونده طرح رنگ بازنویسی میشود و باید درون آن تنظیم شود تا اعمال گردد.
background_image_layout tiled
تعیین کاشیکاری (tile)، مقیاسبندی (scale) یا برش تصویر پسزمینه. مقدار میتواند یکی از tiled، mirror-tiled، scaled، clamped، centered یا cscaled باشد. مقادیر scaled و cscaled تصویر را به اندازه پنجره تغییر مقیاس میدهند، که cscaled نسبت ابعاد تصویر را حفظ میکند. توجه داشته باشید که هنگام استفاده از Change color themes automatically when the OS switches between light and dark <#auto-color-scheme>، این گزینه توسط پرونده طرح رنگ بازنویسی میشود و برای اعمال باید داخل آن تنظیم گردد.
background_image_linear no
هنگام مقیاسبندی تصویر پسزمینه، مشخص میکند که آیا درونیابی خطی (linear interpolation) باید استفاده شود یا خیر. توجه داشته باشید که هنگام استفاده از Change color themes automatically when the OS switches between light and dark <#auto-color-scheme>، این گزینه توسط پرونده طرح رنگ بازنویسی میشود و برای اعمال باید در آن تنظیم شود.
background_tint 0.0
میزان اعمال تهرنگ (tint) رنگ پسزمینه روی تصویر پسزمینه. این گزینه خوانایی متن را آسانتر میکند. تهرنگ با استفاده از رنگ پسزمینه فعلی هر پنجره اعمال میشود. این گزینه تنها زمانی اعمال میشود که background_image تنظیم شده باشد. توجه داشته باشید که هنگام استفاده از Change color themes automatically when the OS switches between light and dark <#auto-color-scheme>، این گزینه توسط پرونده طرح رنگ بازنویسی میشود و برای اعمال باید در آن تنظیم گردد.
background_tint_gaps 1.0
میزان اعمال تهرنگ رنگ پسزمینه روی تصویر پسزمینه در شکافهای بین پنجرهها (gaps)، پس از اعمال background_tint. از آنجا که این مقدار با background_tint ضرب میشود، میتواند برای کمرنگتر کردن تهرنگ روی شکافهای پنجره جهت ایجاد ظاهری جداگانه (separated) استفاده شود. توجه داشته باشید که هنگام استفاده از Change color themes automatically when the OS switches between light and dark <#auto-color-scheme>، این گزینه توسط پرونده طرح رنگ بازنویسی میشود و برای اعمال باید در آن تنظیم گردد.
dim_opacity 0.4
میزان محوشدگی متنی که صفت DIM/FAINT روی آن تنظیم شده است. مقدار یک یعنی بدون کمنور شدن و صفر یعنی کاملاً محو (نامرئی).
selection_foreground #000000 selection_background #fffacd
رنگهای پیشزمینه و پسزمینه برای متن انتخابشده با موشواره. تنظیم هر دوی آنها روی none باعث ایجاد اثر "تصویر معکوس (reverse video)" برای انتخابها میشود که در آن رنگ انتخاب برابر با رنگ متن خانه و رنگ متن برابر با رنگ پسزمینه خانه خواهد شد. تنظیم فقط selection_foreground روی none باعث استفاده بدون تغییر از رنگ پیشزمینه میشود. توجه داشته باشید که این رنگها ممکن است توسط برنامه در حال اجرا در ترمینال بازنویسی شوند.
palette_generate fixed
نحوه پر کردن رنگهایی که در پالت ۲۵۶ رنگ تنظیم نشدهاند (روی none تنظیم شدهاند). بهطور پیشفرض، برای سازگاری قدیمی (legacy)، این رنگها روی مقادیر ثابتی که در ترمینالهای سنتی استفاده میشدند تنظیم میشوند.
در عوض، میتوانید به kitty اجازه دهید آنها را بر اساس ۱۶ رنگ اول تولید کند https://gist.github.com/jake-stewart/0a8ea46159a7da2c808e5be2177e1783.
مقدار semantic به معنای استفاده از الگوریتمی است که خوانایی خوبی در تمهای روشن ایجاد میکند، اما معنای برخی رنگها را در مقایسه با کدگذاری رنگهای ثابت تغییر میدهد. مقدار legacy خوانایی ضعیفتری در تمهای روشن دارد، اما انحراف کمتری از کدگذاری رنگهای ثابت خواهد داشت.
جدول رنگ (THE COLOR TABLE)
۲۵۶ رنگ ترمینال. برای ۱۶ رنگ اول، ۸ رنگ اصلی وجود دارد که هر رنگ دارای یک نسخه مات و یک نسخه روشن است. میتوانید ۲۴۰ رنگ باقیمانده را از color16 تا color255 تنظیم کنید.
color0 #000000 color8 #767676
سیاه
color1 #cc0403 color9 #f2201f
قرمز
color2 #19cb00 color10 #23fd00
سبز
color3 #cecb00 color11 #fffd00
زرد
color4 #0d73cc color12 #1a8fff
آبی
color5 #cb1ed1 color13 #fd28ff
ارغوانی
color6 #0dcdcd color14 #14ffff
فیروزهای
color7 #dddddd color15 #ffffff
سفید
mark1_foreground black
رنگ برای نشانههای (marks) نوع ۱
mark1_background #98d3cb
رنگ برای نشانههای نوع ۱ (آبی فولادی روشن)
mark2_foreground black
رنگ برای نشانههای نوع ۲
mark2_background #f2dcd3
رنگ برای نشانههای نوع ۲ (بژ)
mark3_foreground black
رنگ برای نشانههای نوع ۳
mark3_background #f274bc
رنگ برای نشانههای نوع ۳ (بنفش)
قالبهای رنگی با گستره رنگی وسیع (Wide gamut color formats)
kitty از قالبهای رنگی مدرن با گستره رنگی وسیع از جمله OKLCH و CIE LAB برای تعیین دقیق رنگ پشتیبانی میکند. از این قالبها میتوان در هر جایی که مقدار رنگ پذیرفته میشود (foreground، background، color0-color255 و غیره) استفاده کرد.
برای مستندات تفصیلی درباره قالبهای رنگی گستره وسیع، ساختار نحو و مثالها، Wide gamut color formats <> را ببینید.
پیشرفته (ADVANCED)
shell .
برنامه شلی که باید اجرا شود. مقدار پیشفرض . به معنی استفاده از مقدار متغیر محیطی SHELL <#envvar-SHELL> است یا در صورت تنظیم نبودن، هر شلی که به عنوان شل پیشفرض کاربر فعلی تنظیم شده باشد. توجه داشته باشید که در macOS اگر این را تغییر دهید، ممکن است نیاز باشد --login و --interactive را اضافه کنید تا مطمئن شوید شل در حالت تعاملی آغاز شده و پروندههای rc راهاندازی خود را میخواند. متغیرهای محیطی در این تنظیم بسط داده میشوند.
editor .
ویرایشگر متن مبتنی بر ترمینال (مانند vim یا nano) برای استفاده هنگام ویرایش پرونده پیکربندی kitty یا وظایف مشابه.
مقدار پیشفرض . به معنی استفاده از متغیرهای محیطی VISUAL <#envvar-VISUAL> و سپس EDITOR <#envvar-EDITOR> به ترتیب است. اگر این متغیرها تنظیم نشده باشند، kitty اقدام به اجرای shell شما ($SHELL -l -i -c env) میکند تا ببیند آیا پروندههای rc راهاندازی شل VISUAL <#envvar-VISUAL> یا EDITOR <#envvar-EDITOR> را تنظیم کردهاند یا خیر. اگر آن هم کار نکرد، kitty در میان ویرایشگرهای شناختهشده مختلف (vim، emacs و غیره) جستجو کرده و اولین ویرایشگر موجود روی سیستم شما را انتخاب میکند.
close_on_child_death no
بستن پنجره هنگام خروج فرایند فرزند (معمولاً شل). با مقدار پیشفرض no، مادامی که فرایندهای دیگری در حال خروجی دادن به ترمینال باشند (مثلاً فرایندهای disown شده یا پسزمینه)، ترمینال پس از خروج فرزند باز خواهد ماند. هنگام فعالسازی با yes، پنجره به محض خروج فرایند فرزند بسته میشود. توجه داشته باشید که تنظیم آن روی yes بدین معنی است که هر فرایند پسزمینهای که همچنان از ترمینال استفاده میکند ممکن است به صورت خاموش شکست بخورد زیرا stdout/stderr/stdin آنها دیگر کار نخواهد کرد.
اجازه دادن به برنامههای دیگر برای کنترل kitty با استفاده از گذرواژهها. این گزینه را میتوان چندین بار برای افزودن چندین گذرواژه مشخص کرد. اگر گذرواژهای وجود نداشته باشد و برنامهای تلاش کند با گذرواژه از کنترل از راه دور استفاده کند، kitty از کاربر اجازه خواهد گرفت. همچنین میتوان یک گذرواژه را به صورت اختیاری به مجموعهای از کنشهای مجاز کنترل از راه دور مرتبط کرد. برای نمونه:
remote_control_password "my passphrase" get-colors set-colors focus-window focus-tab
هنگام استفاده از این گذرواژه تنها کنشهای مشخصشده مجاز خواهند بود. از الگوهای گلوب نیز میتوان استفاده کرد، برای نمونه:
remote_control_password "my passphrase" set-tab-* resize-*
برای دریافت فهرستی از کنشهای موجود، اجرا کنید:
kitten @ --help
مجموعهای از کنشها را که در صورت ارسال نشدن هیچ گذرواژهای مجاز هستند، میتوان با استفاده از یک گذرواژه خالی مشخص کرد. برای نمونه:
remote_control_password "" *-colors
در نهایت، میتوان مسیر یک پودمان python را مشخص کرد که تابعی به نام is_cmd_allowed ارائه میدهد که برای بررسی هر فرمان کنترل از راه دور استفاده میشود. برای نمونه:
remote_control_password "my passphrase" my_rc_command_checker.py
مسیرهای نسبی نسبت به شاخه پیکربندی kitty حل میشوند. برای جزئیات به Customizing authorization with your own program <#rc-custom-auth> مراجعه کنید.
allow_remote_control no
اجازه به برنامههای دیگر برای کنترل kitty. در صورت فعال کردن این گزینه، برنامههای دیگر میتوانند تمام جنبههای kitty را کنترل کنند، از جمله ارسال متن به پنجرههای kitty، باز کردن پنجرههای جدید، بستن پنجرهها، خواندن محتوای پنجرهها و غیره. توجه داشته باشید که این حتی روی اتصالات SSH نیز کار میکند. تنظیم پیشفرض no از هر گونه کنترل از راه دور جلوگیری میکند. معنی مقادیر مختلف به شرح زیر است:
- password
- درخواستهای کنترل از راه دور دریافتشده از طریق هر دو دستگاه TTY و سوکت بر اساس گذرواژهها تأیید میشوند، remote_control_password را ببینید.
- socket-only
- درخواستهای کنترل از راه دور دریافتشده روی سوکت بدون قید و شرط پذیرفته میشوند. درخواستهای دریافتشده روی TTY رد میشوند. listen_on را ببینید.
- socket
- درخواستهای کنترل از راه دور دریافتشده روی سوکت بدون قید و شرط پذیرفته میشوند. درخواستهای دریافتشده روی TTY بر اساس گذرواژه تأیید میشوند.
- no
- کنترل از راه دور کاملاً غیرفعال است.
- yes
- درخواستهای کنترل از راه دور همواره پذیرفته میشوند.
listen_on none
گوش دادن به سوکت مشخصشده برای اتصالات کنترل از راه دور. توجه داشته باشید که این برای تمام نمونههای kitty اعمال خواهد شد. این مقدار میتواند توسط گزینه خط فرمان kitty --listen-on <#cmdoption-kitty-listen-on> بازنویسی شود. برای سوکتهای UNIX مانند unix:${TEMP}/mykitty یا unix:@mykitty (در Linux). متغیرهای محیطی بسط داده شده و مسیرهای نسبی نسبت به شاخه موقت حل میشوند. اگر {kitty_pid} وجود داشته باشد، با PID فرایند kitty جایگزین میشود، در غیر این صورت PID فرایند kitty با یک خط تیره به انتهای مقدار اضافه میشود. برای سوکتهای TCP مانند tcp:localhost:0، همیشه یک پورت تصادفی استفاده میشود حتی اگر شماره پورت غیرصفر مشخص شده باشد. برای جزئیات بیشتر راهنمای kitty --listen-on <#cmdoption-kitty-listen-on> را ببینید. توجه داشته باشید که این مقدار نادیده گرفته خواهد شد مگر اینکه allow_remote_control روی یکی از مقادیر yes، socket یا socket-only تنظیم شده باشد. تغییر این گزینه با بارگذاری مجدد پیکربندی پشتیبانی نمیشود.
مشخص کردن متغیرهای محیطی برای تنظیم در تمامی فرایندهای فرزند. استفاده از نام همراه با علامت مساوی (مانند env VAR=) آن را روی یک رشته خالی تنظیم میکند. مشخص کردن صرفاً نام (مانند env VAR) متغیر را از محیط فرایند فرزند حذف میکند. توجه داشته باشید که متغیرهای محیطی به صورت بازگشتی بسط مییابند، برای نمونه:
env VAR1=a
env VAR2=${HOME}/${VAR1}/b
مقدار VAR2 برابر با <path to home directory>/a/b خواهد بود.
از مقدار ویژه read_from_shell استفاده کنید تا kitty متغیرهای مشخصشده را از پیکربندی login shell شما بخواند. کاربردی است اگر پروندههای راهاندازی شل شما مجموعهای از متغیرهای محیطی را تنظیم میکنند که میخواهید برای kitty و در پروندههای نشست kitty در دسترس باشند. هر نام متغیر به عنوان یک الگوی گلوب برای تطبیق در نظر گرفته میشود. برای نمونه: env read_from_shell=PATH LANG LC_* XDG_* EDITOR VISUAL. توجه داشته باشید که این متغیرها تنها پس از پردازش کامل پیکربندی خوانده میشوند، بنابراین برای بسط بازگشتی در دسترس نیستند و بر هر متغیر تنظیمشده توسط دستورات دیگر env برتری خواهند داشت.
مشخص کردن قواعد برای فیلتر کردن اعلانهای ارسالشده توسط برنامههای در حال اجرا در kitty. میتوان چندین بار برای ایجاد چندین قاعده فیلتر مشخص کرد. مشخصات یک قاعده به شکل field:regexp است. یک قاعده فیلتر میتواند روی هر یک از فیلدهای title، body، app، type تطبیق یابد. مقدار ویژه all تمامی اعلانها را فیلتر میکند. قواعد را میتوان با استفاده از عملگرهای بولی ترکیب کرد. چند نمونه:
filter_notification title:hello or body:"abc.*def" # فیلتر کردن اعلانها از vim به جز مواردی که درباره بهروزرسانی هستند، (?i) # تطبیق را به حروف کوچک و بزرگ حساس نمیکند. filter_notification app:"[ng]?vim" and not body:"(?i)update" # فیلتر کردن تمام اعلانها filter_notification all
فیلد app نام برنامه ارسالکننده اعلان و type نوع اعلان است. همه برنامهها این فیلدها را ارسال نمیکنند، بنابراین میتوانید روی عنوان و متن اعلان نیز تطبیق دهید. فیلترهای برنامهنویسیشده پیشرفتهتر و کنشهای سفارشی روی اعلانها را میتوان با ایجاد یک پرونده notifications.py در شاخه پیکربندی kitty (~/.config/kitty) انجام داد. یک نمونه حاشیهنویسیشده در https://github.com/kovidgoyal/kitty/blob/master/docs/notifications.py در دسترس است.
مسیر پرونده python که برای Watching launched windows <#watchers> بارگذاری خواهد شد. میتوان بیش از یک بار برای بارگذاری چندین ناظر مشخص کرد. ناظرها به هر پنجره kitty اضافه خواهند شد. مسیرهای نسبی نسبت به شاخه پیکربندی kitty حل میشوند. توجه داشته باشید که بارگذاری مجدد پیکربندی فقط روی پنجرههای ایجادشده پس از بارگذاری مجدد تأثیر میگذارد.
کنترل محلی که kitty برنامهها را برای اجرا پیدا میکند. ترتیب جستجوی پیشفرض عبارت است از: ابتدا جستجو در PATH سراسری سیستم، سپس ~/.local/bin و ~/bin. اگر همچنان یافت نشد، PATH تعریفشده در login shell پس از سورس کردن تمام پروندههای راهاندازی آن امتحان میشود. در نهایت در صورت وجود، PATH مشخصشده توسط گزینه env امتحان میشود.
این گزینه به شما امکان میدهد مسیرها را به این ترتیب جستجو پیشوند، پسوند یا از آن حذف کنید. میتوان چندین بار برای چندین مسیر مشخص کرد. یک مسیر ساده به ابتدای ترتیب جستجو اضافه میشود. مسیری که با علامت + شروع شود به انتهای ترتیب جستجو، پس از ~/bin در بالا، اضافه خواهد شد. مسیری که با علامت - شروع شود از کل ترتیب جستجو حذف خواهد شد. برای نمونه:
exe_search_path /some/prepended/path exe_search_path +/some/appended/path exe_search_path -/some/excluded/path
update_check_interval 24
بازه زمانی بررسی دورهای برای در دسترس بودن بهروزرسانی kitty (به ساعت). اگر بهروزرسانی پیدا شود، یک اعلان سیستمی نمایش داده میشود که شما را از بهروزرسانی موجود مطلع میکند. پیشفرض بررسی هر ۲۴ ساعت یکبار است، برای غیرفعالسازی روی صفر تنظیم کنید. بررسی بهروزرسانی فقط توسط بیلدهای دودویی رسمی انجام میشود. بستههای توزیع یا بیلدهای منبع، بررسی بهروزرسانی انجام نمیدهند. تغییر این گزینه با بارگذاری مجدد پیکربندی پشتیبانی نمیشود.
auto_reload_config 0.1
بارگذاری مجدد خودکار پروندههای پیکربندی هنگام تغییر آنها. این تنظیم تعداد ثانیههای انتظار پیش از بارگذاری مجدد پروندههای پیکربندی است. این امکان تثبیت و تجمیع تغییرات متعدد (debounce) را فراهم میکند. از یک مقدار منفی برای غیرفعال کردن بارگذاری مجدد خودکار استفاده کنید. میتوانید به صورت دستی با ctrl+shift+f5 بارگذاری مجدد کنید. توجه داشته باشید که بارگذاری مجدد خودکار تنها در صورتی کار میکند که هنگام راهاندازی kitty پرونده kitty.conf از قبل وجود داشته باشد. تغییرات این تنظیم با بارگذاری مجدد پیکربندی نادیده گرفته میشوند.
startup_session none
مسیر پرونده نشست برای استفاده در تمامی نمونههای kitty. میتواند با استفاده از گزینه خط فرمان kitty --session <#cmdoption-kitty-session> =none برای نمونههای مجزا لغو شود. برای جزئیات، Sessions <#sessions> را در مستندات kitty ببینید. توجه داشته باشید که مسیرهای نسبی نسبت به شاخه پیکربندی kitty تفسیر میشوند. متغیرهای محیطی درون مسیر بسط داده میشوند. تغییر این گزینه با بارگذاری مجدد پیکربندی پشتیبانی نمیشود. توجه داشته باشید که اگر kitty با آرگومانهای خط فرمان مشخصکننده یک فرمان برای اجرا فراخوانی شود، این گزینه نادیده گرفته میشود.
clipboard_control write-clipboard write-primary read-clipboard-ask read-primary-ask
اجازه به برنامههای در حال اجرا در kitty برای خواندن و نوشتن از کلیپبورد. میتوانید دقیقاً کنترل کنید که کدام کنشها مجاز هستند. کنشهای ممکن عبارتند از: write-clipboard، read-clipboard، write-primary، read-primary، read-clipboard-ask، read-primary-ask. پیشفرض اجازه نوشتن در کلیپبورد و انتخاب اصلی و درخواست اجازه هنگام تلاش یک برنامه برای خواندن از کلیپبورد است. توجه داشته باشید که غیرفعال کردن تأیید خواندن یک خطر امنیتی است زیرا بدین معنی است که هر برنامهای، حتی برنامههای در حال اجرا روی یک سرور دوردست از طریق SSH، میتوانند کلیپبورد شما را بخوانند. همچنین clipboard_max_size را ببینید.
clipboard_max_size 512
حداکثر اندازه (به مگابایت) دادههای برنامههای در حال اجرا در kitty که برای نوشتن در کلیپبورد سیستم ذخیره خواهد شد. مقدار صفر به معنی عدم اعمال محدودیت اندازه است. همچنین clipboard_control را ببینید.
گذرواژهای که میتواند به file transfer kitten <> داده شود تا اعلان تایید انتقال نادیده گرفته شود. این گزینه فقط باید هنگام آغاز انتقال از رایانههای مورد اعتماد، بر روی شبکههای مورد اعتماد یا بسترهای رمزگذاریشده استفاده شود، زیرا به هر برنامهای که روی ماشین دوردست اجرا میشود اجازه میدهد بدون اجازه روی فایلسیستم محلی بخواند/بنویسد.
allow_hyperlinks yes
پردازش توالیهای گریز پیوند (hyperlink <#term-hyperlinks>) (کد OSC 8). در صورت غیرفعال بودن، توالیهای گریز OSC 8 نادیده گرفته میشوند. در غیر این صورت آنها به پیوندهای قابل کلیک تبدیل میشوند که میتوانید با موشواره یا با استفاده از hints kitten <> روی آنها کلیک کنید. مقدار ویژه ask به این معنی است که kitty قبل از باز کردن پیوند هنگام کلیک، سوال خواهد کرد.
shell_integration enabled
فعالسازی یکپارچهسازی شل در شلهای پشتیبانیشده. این کار قابلیتهایی مانند پرش به اعلانهای قبلی، مرور خروجی فرمان قبلی در یک صفحهبند و غیره را در شلهای پشتیبانیشده فعال میکند. برای غیرفعال کردن کامل یکپارچهسازی شل، روی disabled تنظیم کنید. همچنین میتوان ویژگیهای مجزا را غیرفعال کرد، با تنظیم روی فهرستی از این مقادیر جدا شده با فاصله: no-rc، no-cursor، no-title، no-cwd، no-prompt-mark، no-complete، no-sudo. برای جزئیات به Shell integration <#shell-integration> مراجعه کنید.
allow_cloning ask
کنترل اینکه آیا برنامههای در حال اجرا در ترمینال میتوانند درخواست ایجاد پنجرههای جدید را بدهند یا خیر. نمونه بارز آن clone-in-kitty <#clone-shell> است. به صورت پیشفرض، kitty برای هر درخواست کلون اجازه خواهد گرفت. اجازه دادن به کلون بدون قید و شرط، به برنامههای در حال اجرا در ترمینال (از جمله از طریق SSH) اجازه میدهد تا کدهای دلخواه را به عنوان کاربری که ترمینال را اجرا میکند، روی رایانهای که ترمینال روی آن اجرا میشود، اجرا کنند.
clone_source_strategies venv,conda,env_var,path
کنترل اینکه هنگام اجرای clone-in-kitty در پنجره تازه کلونشده، چه کد شلی سورس شود. راهبردهای پشتیبانیشده عبارتند از:
- venv
- سورس کردن پرونده $VIRTUAL_ENV/bin/activate. این توسط پودمان venv در کتابخانه استاندارد Python استفاده میشود و امکان کلون خودکار venvها را فراهم میکند.
- conda
- اجرای conda activate $CONDA_DEFAULT_ENV. این از محیطهای مجازی ایجادشده توسط conda پشتیبانی میکند.
- env_var
- اجرای محتوای متغیر محیطی KITTY_CLONE_SOURCE_CODE <#envvar-KITTY_CLONE_SOURCE_CODE> با eval.
- path
- سورس کردن پروندهای که متغیر محیطی KITTY_CLONE_SOURCE_PATH <#envvar-KITTY_CLONE_SOURCE_PATH> به آن اشاره میکند.
این گزینه باید فهرستی جداشده با کاما از مقادیر بالا باشد. فقط اولین تطابق معتبر، به ترتیبی که مشخص شده است، سورس میشود.
notify_on_cmd_finish never
نمایش اعلان دسکتاپ هنگام پایان یافتن یک فرمان طولانیمدت (نیازمند shell_integration). مقادیر ممکن عبارتند از:
- never
- هرگز اعلان ارسال نشود.
- unfocused
- تنها زمانی اعلان ارسال شود که پنجره فوکوس صفحهکلید را ندارد.
- invisible
- تنها زمانی اعلان ارسال شود که پنجره هم بدون فوکوس بوده و هم برای کاربر قابل مشاهده نباشد؛ به عنوان مثال به دلیل قرار داشتن در یک برگه غیرفعال یا اینکه پنجره سیستمعامل در حال حاضر قابل مشاهده نباشد (در پلتفرمهایی که از پرسوجوی وضعیت دید پنجره سیستمعامل پشتیبانی میکنند، یک پنجره سیستمعامل تنها در صورتی مرئی در نظر گرفته میشود که فعال باشد).
- always
- همیشه اعلان ارسال شود، صرفنظر از وضعیت پنجره.
دو آرگومان اختیاری وجود دارد:
نخست، حداقل مدت زمان برای اینکه فرمانی طولانیمدت در نظر گرفته شود. مقدار پیشفرض ۵ ثانیه است. یک آرگومان دوم برای تنظیم مدت زمان مشخص کنید. برای نمونه: invisible 15. این مقدار را خیلی کم تنظیم نکنید، در غیر این صورت فرمانی که پنجره سیستمعامل جدیدی باز کرده و خارج میشود باعث هرز ارسال شدن اعلان خواهد شد.
دوم، کنشی که باید انجام شود. پیشفرض notify است. مقادیر ممکن عبارتند از:
- notify
- ارسال یک اعلان دسکتاپ. آرگومانهای بعدی اختیاری هستند و مشخص میکنند چه زمانی اعلان به صورت خودکار پاک شود. مجموعه رویدادهای ممکن برای پاک شدن اعلان عبارتند از: focus و next. مقدار focus بدین معنی است که وقتی سیاست اعلان unfocused یا invisible باشد، با بازگشت فوکوس به پنجره اعلان به صورت خودکار پاک میشود. مقدار next به این معنی است که با نمایش اعلان بعدی، اعلان قبلی پاک میشود. پیشفرض در صورت مشخص نشدن آرگومانها عبارت است از: focus next.
- bell
- به صدا درآوردن زنگ ترمینال.
- notify-bell
- ارسال اعلان میزکار و به صدا درآوردن زنگ ترمینال. آرگومانها مشابه notify هستند.
- command
- اجرای یک دستور سفارشی. تمام آرگومانهای بعدی خط فرمانی هستند که باید اجرا شود.
چند مثال دیگر:
# ارسال اعلان زمانی که یک دستور بیش از ۵ ثانیه در پنجره غیرفعال طول بکشد notify_on_cmd_finish unfocused # ارسال اعلان زمانی که یک دستور بیش از ۱۰ ثانیه در یک پنجره نامرئی طول بکشد notify_on_cmd_finish invisible 10.0 # به صدا درآوردن زنگ زمانی که یک دستور بیش از ۱۰ ثانیه در یک پنجره نامرئی طول بکشد notify_on_cmd_finish invisible 10.0 bell # اجرای 'notify-send' وقتی دستوری بیش از ۱۰ ثانیه در پنجره نامرئی طول بکشد # در اینجا %c با خط فرمان فعلی و %s با کد خروج جایگزین میشود notify_on_cmd_finish invisible 10.0 command notify-send "job finished with status: %s" %c # پاک نکردن اعلان قبلی هنگام پایان دستور بعدی یا فوکوس مجدد روی پنجره notify_on_cmd_finish invisible 5.0 notify
term xterm-kitty
مقدار متغیر محیطی TERM <#envvar-TERM> برای تنظیم. تغییر این مقدار میتواند عملکرد بسیاری از برنامههای ترمینال را مختل کند؛ تنها در صورتی آن را تغییر دهید که دقیقاً میدانید چه میکنید، نه به این دلیل که در «Stack Overflow» توصیهای برای تغییر آن خواندهاید. متغیر TERM <#envvar-TERM> توسط برنامههای مختلف برای کسب اطلاعات درباره قابلیتها و رفتار ترمینال استفاده میشود. اگر آن را تغییر دهید، بسته به برنامههایی که اجرا میکنید و میزان تفاوت ترمینال انتخابی، موارد گوناگونی از فشردن کلیدها گرفته تا رنگها و ویژگیهای پیشرفته مختلف ممکن است کار نکنند. تغییر این گزینه با بارگذاری مجدد پیکربندی تنها روی پنجرههای تازهساختهشده تأثیر خواهد گذاشت.
terminfo_type path
مقدار متغیر محیطی TERMINFO <#envvar-TERMINFO> برای تنظیم. این متغیر توسط برنامههای در حال اجرا در ترمینال برای جستجوی پایگاهدادههای terminfo استفاده میشود. مقدار پیشفرض path باعث میشود kitty آن را روی مسیری در سیستم فایل که شامل پایگاهداده terminfo مربوط به kitty است تنظیم کند. مقدار direct به معنای قرار دادن مستقیم کل پایگاهداده درون متغیر محیطی است. این مورد برای مثال هنگام اتصال به کانتینرها میتواند مفید باشد. اما توجه داشته باشید که همه نرمافزارها از این قابلیت پشتیبانی نمیکنند. مقدار none به معنای دست نزدن به متغیر است.
forward_stdio no
هدایت STDOUT و STDERR فرایند kitty به فرایندهای فرزند. این قابلیت برای اشکالزدایی مفید است زیرا به فرایندهای فرزند اجازه میدهد مستقیماً در STDOUT مربوط به kitty چاپ کنند. برای مثال، echo hello world >&$KITTY_STDIO_FORWARDED در یک پوسته، در STDOUT والد kitty چاپ خواهد شد. این گزینه متغیر محیطی KITTY_STDIO_FORWARDED=fdnum را تنظیم میکند تا فرایندهای فرزند از این هدایت مطلع شوند. توجه داشته باشید که در macOS این امر از اجرای پوسته از طریق ابزار login جلوگیری میکند، بنابراین getlogin() در برنامههای اجراشده در این نشست کار نخواهد کرد.
مشخص کردن مدخلها برای منوهای مختلف در kitty. در حال حاضر تنها نوار منوی سراسری در macOS پشتیبانی میشود. برای مثال:
menu_map global "Actions::Launch something special" launch --hold --type=os-window sh -c "echo hello world"
این کار یک مدخل منو به نام «Launch something special» در منوی «Actions» در نوار منوی سراسری macOS ایجاد میکند. زیرمنوها را میتوان با افزودن سطوح بیشتر که با نویسههای :: جدا شدهاند ایجاد کرد.
تنظیمات ویژه سیستمعامل (OS SPECIFIC TWEAKS)
wayland_titlebar_color system
رنگ نوار عنوان پنجره kitty در سیستمهای Wayland با تزئینات پنجره سمت کلاینت مانند GNOME. مقدار system به معنای استفاده از رنگهای پیشفرض سیستم است، مقدار background به معنای استفاده از رنگ پسزمینه پنجره فعال فعلی kitty است و در نهایت میتوانید از یک رنگ دلخواه مانند #12af59 یا red استفاده کنید.
macos_titlebar_color system
رنگ نوار عنوان پنجره kitty در macOS. مقدار system به معنای استفاده از رنگ پیشفرض سیستم است، light یا dark نیز میتواند برای تنظیم صریح استفاده شود. مقدار background به معنای استفاده از رنگ پسزمینه پنجره فعال فعلی است و در نهایت میتوانید از یک رنگ دلخواه مانند #12af59 یا red استفاده کنید.
توجه داشته باشید که هنگام استفاده از تغییر خودکار تم رنگی بر اساس تغییر حالت روشن/تاریک سیستمعامل <#auto-color-scheme>، این گزینه توسط پرونده طرح رنگ بازنویسی میشود و برای اعمال باید داخل آن تنظیم گردد.
macos_option_as_alt no
استفاده از کلید Option به عنوان کلید Alt در macOS. با تنظیم این گزینه روی no، kitty از رفتار بومی macOS برای فشردن Option+Key جهت درج نویسههای یونیکد استفاده خواهد کرد. این کار تمام میانبرهای صفحهکلید Alt+Key را در برنامههای ترمینال شما از کار میاندازد، اما میتوانید از روش ورودی یونیکد macOS بهره ببرید. میتوانید از مقادیر: left، right یا both استفاده کنید تا به جای آن فقط کلیدهای چپ، راست یا هر دو کلید Option به عنوان Alt عمل کنند. توجه داشته باشید که خود kitty همیشه با Option همانند Alt رفتار میکند. این بدان معناست که نمیتوانید از این گزینه برای پیکربندی میانبرهای متفاوت kitty برای Option+Key در مقابل Alt+Key استفاده کنید. همچنین، هر میانبر kitty که از Option/Alt+Key استفاده کند اولویت خواهد داشت، به طوری که چنین فشردن کلیدهایی به برنامههای ترمینال در حال اجرا داخل kitty ارسال نخواهند شد. تغییر این گزینه با بارگذاری مجدد پیکربندی پشتیبانی نمیشود.
macos_hide_from_tasks no
پنهان کردن پنجره kitty از لیست وظایف در حال اجرا در macOS (⌘+Tab و داک). تغییر این گزینه با بارگذاری مجدد پیکربندی پشتیبانی نمیشود.
macos_quit_when_last_window_closed no
خروج از kitty هنگامی که تمام پنجرههای سطح بالا (top-level) در macOS بسته میشوند. بهطور پیشفرض، kitty حتی بدون پنجرههای باز در حال اجرا باقی میماند، همانطور که رفتار مورد انتظار در macOS است.
macos_window_resizable yes
اگر میخواهید پنجرههای سطح بالای سیستمعامل kitty در macOS غیرقابل تغییر اندازه باشند، این گزینه را غیرفعال کنید.
macos_thicken_font 0
ترسیم یک حاشیه اضافی در اطراف قلم با عرض مشخصشده، برای افزایش خوانایی در اندازههای کوچک قلم در macOS. برای مثال، مقدار 0.75 منجر به رندری میشود که در اندازههای معمول قلم شبیه به sub-pixel antialiasing به نظر میرسد. توجه داشته باشید که در نگارشهای مدرن kitty، این گزینه منسوخ شده است (اگرچه هنوز پشتیبانی میشود). به جای آن استفاده از text_composition_strategy را در نظر داشته باشید.
macos_traditional_fullscreen no
استفاده از حالت تمامصفحه سنتی macOS که سریعتر اما از نظر بصری سادهتر است.
macos_fullscreen_ignore_safe_area_insets no
هنگام استفاده از macos_traditional_fullscreen، فاصلههای حاشیه امن (safe area insets) در نمایشگرهایی مانند صفحهنمایش مکبوکهای دارای ناچ نادیده گرفته میشود. این به kitty اجازه میدهد تا به جای خالی گذاشتن فضا برای ناحیه ناچ، از تمام کادر نمایشگر استفاده کند.
macos_use_physical_screen_frame no
استفاده از کادر فیزیکی صفحه به جای کادر مرئی هنگام قرار دادن پنلهای میزکار macOS مانند پنلهای ایجادشده توسط kitty +kitten panel. این به پنلها اجازه میدهد در نواحیای که معمولاً برای نوار منوی بومی یا داک رزرو شدهاند ترسیم شوند. همچنین macos_ns_window_layer را ببینید.
macos_ns_window_layer unset
تنظیم سطح NSWindow در macOS برای پنجرههای پنل تازهساختهشده سیستمعامل مانند موارد ساختهشده با panel kitten <>. مقدار پیشفرض unset مدیریت سطح عادی را بدون تغییر باقی میگذارد. مقادیر میتوانند سطوح عددی صحیح پنجره، نام ثابتهای سطح پنجره در AppKit/CoreGraphics، یا عبارتهای محاسباتی ساده ترکیبی از آنها با اعداد صحیح باشند. برای مثال: NSFloatingWindowLevel، kCGBackstopMenuLevel، NSPopUpMenuWindowLevel - 1. همچنین :macos_use_physical_screen_frame` را ببینید.
macos_show_window_title_in all
کنترل محل نمایش عنوان پنجره در macOS. مقدار window عنوان پنجره فعال فعلی را در بالای پنجره macOS نشان میدهد. مقدار menubar عنوان پنجره فعال فعلی را در نوار منوی سراسری macOS نشان میدهد و از فضای بیاستفاده بهره میبرد. مقدار all عنوان را در هر دو مکان نشان میدهد و none عنوان را پنهان میکند. برای نحوه کنترل طول عنوان در نوار منو، macos_menubar_title_max_length را ببینید.
macos_menubar_title_max_length 0
حداکثر تعداد نویسههای عنوان پنجره برای نمایش در نوار منوی سراسری macOS. مقادیر کمتر از یک به این معنی است که هیچ محدودیتی وجود ندارد.
macos_custom_beam_cursor no
استفاده از مکاننمای موشواره سفارشی برای macOS که دیدن آن در هر دو پسزمینه روشن و تاریک آسانتر است. امروزه، مکاننمای پیشفرض macOS از قبل با یک حاشیه سفید ارائه میشود. هشدار: این گزینه ممکن است مکاننمای موشواره شما را در دستگاههای دارای دو پردازنده گرافیکی (dual GPU) نامرئی کند. تغییر این گزینه با بارگذاری مجدد پیکربندی پشتیبانی نمیشود.
macos_colorspace srgb
فضای رنگی که رنگهای ترمینال در آن تفسیر میشوند. مقدار پیشفرض srgb باعث میشود رنگها با رنگهای مشاهدهشده در مرورگرهای وب مطابقت داشته باشند. مقدار default از هر آنچه که فضای رنگی بومی نمایشگر است استفاده میکند. مقدار displayp3 از فضای رنگی ویژه Display P3 اپل استفاده خواهد کرد که منجر به رنگهای اشباعشدهتر (روشنتر) همراه با مقداری تغییر رنگ میشود. بارگذاری مجدد پیکربندی این مقدار را فقط برای پنجرههای تازه ایجاد شده سیستمعامل تغییر میدهد.
linux_display_server auto
انتخاب بین زیرسیستمهای گرافیکی Wayland و X11. بهطور پیشفرض، بکاند مناسب بر اساس وضعیت سیستم بهطور خودکار انتخاب میشود. برای اجبار در انتخاب، آن را روی x11 یا wayland تنظیم کنید. تغییر این گزینه با بارگذاری مجدد پیکربندی پشتیبانی نمیشود.
wayland_enable_ime yes
فعالسازی افزونه روش ورودی (IME) در Wayland. این مورد معمولاً برای وارد کردن متن در زبانهای شرق آسیا استفاده میشود. با این حال، پیادهسازی آن در Wayland اغلب دارای باگ است و باعث ایجاد تاخیر در حلقه ورودی میشود؛ بنابراین اگر میدانید به آن نیازی ندارید آن را غیرفعال کنید. تغییر این گزینه با بارگذاری مجدد پیکربندی پشتیبانی نمیشود و هیچ تأثیری نخواهد داشت.
میانبرهای صفحهکلید (KEYBOARD SHORTCUTS)
کلیدها به سادگی با نویسههای یونیکد کوچک خود مشخص میشوند. برای مثال: a برای کلید A، [ برای کلید براکت چپ، و غیره. برای کلیدهای کاربردی، مانند Enter یا Escape، نامها در تعاریف کلیدهای کاربردی <#functional> موجود است. برای کلیدهای تبدیلکننده (modifier)، نامها عبارتند از: ctrl (control، ⌃)، shift (⇧)، alt (opt، option، ⌥)، super (cmd، command، ⌘).
نگاشت ساده میانبرها با دستور map انجام میشود. برای جزئیات کامل درباره نگاشتهای پیشرفته از جمله نگاشتهای حالتی (modal) و مختص هر برنامه، به Making your keyboard dance <> مراجعه کنید. چند مثال سریع برای نشان دادن وظایف معمول:
# لغو نگاشت میانبر صفحهکلید و ارسال آن به برنامه در حال اجرا در kitty map kitty_mod+space # نادیده گرفتن کامل یک رویداد صفحهکلید map ctrl+alt+f1 discard_event # ترکیب چند عمل map kitty_mod+e combine : new_window : next_layout # میانبرهای چندکلیدی map ctrl+x>ctrl+y>z action
برای چیدمانهای صفحهکلید غیرلاتین (روسی، عربی و غیره)، گزینه --allow-fallback رفتار کلید جایگزین فیزیکی را کنترل میکند. مقادیر: shifted (پیشفرض — کلید جایگزین با کلید shift)، ascii (کلید جایگزین / موقعیت فیزیکی کلید، فقط برای کلیدهای غیر ASCII)، none (غیرفعال کردن تمام حالتهای جایگزین)، یا ترکیبی از آنها که با کاما جدا شده باشد. تمام میانبرهای پیشفرض از --allow-fallback=shifted,ascii استفاده میکنند:
map --allow-fallback=shifted,ascii kitty_mod+c copy_to_clipboard
میتوانید با فشردن ctrl+shift+f3 برای اجرای پالت دستورات، این عملها را مرور و فراخوانی کنید. فهرست کامل عملهایی که میتوان به فشردن کلیدها نگاشت کرد در اینجا <> در دسترس است.
kitty_mod ctrl+shift
نام مستعار ویژه کلید تبدیلکننده (modifier) برای میانبرهای پیشفرض. میتوانید مقدار این گزینه را تغییر دهید تا تمام میانبرهای پیشفرضی که از kitty_mod استفاده میکنند تغییر یابند.
clear_all_shortcuts no
حذف تمام تعاریف میانبرها تا این نقطه از پرونده. برای مثال، جهت حذف میانبرهای پیشفرض کاربرد دارد.
map_timeout 0.0
مهلت زمانی پیشفرض (به ثانیه) برای نگاشتهای چندکلیدی و حالتهای modal صفحهکلید. اگر کلید(های) اول یک نگاشت چندکلیدی را فشار دهید و کلید بعدی را درون این مهلت زمانی فشار ندهید، نگاشت لغو شده و از آن حالت خارج میشود. مقدار صفر مهلت زمانی را غیرفعال میکند. این مورد را میتوان برای حالتهای خاص با استفاده از گزینه --timeout هنگام ایجاد حالت صفحهکلید با --new-mode بازنویسی کرد. برای مثال:
# مهلت زمانی ۲ ثانیهای برای تمام نگاشتها map_timeout 2.0 # این حالت دارای مهلت زمانی ۵ ثانیهای خواهد بود (مهلت زمانی سراسری ۲ ثانیهای را بازنویسی میکند) map --new-mode resize --timeout 5.0 kitty_mod+r
هیچ مقدار پیشفرضی ندارد. مقادیر نمونه در زیر نشان داده شده است:
action_alias launch_tab launch --type=tab --cwd=current
تعریف نامهای مستعار برای عملها جهت جلوگیری از تکرار گزینههای یکسان در نگاشتهای مختلف. نامهای مستعار را میتوان برای هر عملی تعریف کرد و به صورت بازگشتی گسترش مییابند. برای مثال، نام مستعار بالا به شما امکان میدهد نگاشتهایی برای باز کردن یک برگه جدید در دایرکتوری کاری فعلی بدون تکرار کد ایجاد کنید:
map f1 launch_tab vim map f2 launch_tab emacs
به طور مشابه، برای نام مستعار فراخوانی kitten:
action_alias hints kitten hints --hints-offset=0
مقدار پیشفرضی ندارد. مقادیر نمونه در زیر نشان داده شده است:
kitten_alias hints hints --hints-offset=0
مانند action_alias در بالا، ولی بهطور خاص برای kittenها. بهطور کلی، استفاده از action_alias ترجیح داده میشود. این گزینه یک نسخه قدیمی است که برای سازگاری با نسخههای پیشین وجود دارد. این گزینه باعث میشود تمام فراخوانیهای kitten ناممستعار جایگزین شوند. بنابراین مثال بالا باعث میشود همه فراخوانیهای kitten مربوط به hints با گزینه --hints-offset=0 <#cmdoption-kitty-kitten-hints-hints-offset> اعمال شوند.
بریدهدان (Clipboard)
- کپی به بریدهدان
map --allow-fallback=shifted,ascii ctrl+shift+c copy_to_clipboard
همچنین کنش copy_or_interrupt <#action-copy_or_interrupt> وجود دارد که میتواند بهصورت اختیاری روی Ctrl+C نگاشت شود. این کنش تنها در صورت وجود متن انتخابشده کپی میکند و در غیر این صورت سیگنال وقفه (interrupt) میفرستد. بهطور مشابه، copy_and_clear_or_interrupt <#action-copy_and_clear_or_interrupt> متن انتخابشده را کپی و پاک میکند یا در صورت عدم انتخاب، وقفه میفرستد. کنش copy_or_noop <#action-copy_or_noop> در صورت وجود انتخاب کپی کرده و در صورت نبودن آن، کلید را بدون تغییر به برنامه در حال اجرا در ترمینال ارسال میکند.
- کپی به بریدهدان یا ارسال مستقیم کلید
map --allow-fallback=shifted,ascii cmd+c copy_or_noop 🍎
- جایگذاری از بریدهدان
map --allow-fallback=shifted,ascii ctrl+shift+v paste_from_clipboard map --allow-fallback=shifted,ascii cmd+v paste_from_clipboard 🍎
- جایگذاری از متن انتخابشده
map --allow-fallback=shifted,ascii ctrl+shift+s paste_from_selection map shift+insert paste_from_selection
- ارسال متن انتخابشده به برنامه
map --allow-fallback=shifted,ascii ctrl+shift+o pass_selection_to_program
همچنین میتوانید محتوای متن انتخابشده فعلی را با pass_selection_to_program <#action-pass_selection_to_program> به هر برنامهای ارسال کنید. بهطور پیشفرض، برنامه open سیستم استفاده میشود، اما میتوانید برنامه خود را مشخص کنید؛ متن انتخابشده بهعنوان یک آرگومان خط فرمان به برنامه فرستاده خواهد شد. برای نمونه:
map kitty_mod+o pass_selection_to_program firefox
میتوانید متن انتخابشده فعلی را با استفاده از نگهدارنده مکان @selection به یک برنامه ترمینال در حال اجرا در یک پنجره جدید kitty بفرستید:
map kitty_mod+y new_window less @selection
پیمایش (Scrolling)
- پیمایش یک خط به بالا
map ctrl+shift+up scroll_line_up smooth map --allow-fallback=shifted,ascii ctrl+shift+k scroll_line_up smooth map opt+cmd+page_up scroll_line_up smooth 🍎 map cmd+up scroll_line_up smooth 🍎
- پیمایش یک خط به پایین
map ctrl+shift+down scroll_line_down smooth map --allow-fallback=shifted,ascii ctrl+shift+j scroll_line_down smooth map opt+cmd+page_down scroll_line_down smooth 🍎 map cmd+down scroll_line_down smooth 🍎
- پیمایش یک صفحه به بالا
map ctrl+shift+page_up scroll_page_up map cmd+page_up scroll_page_up 🍎
- پیمایش یک صفحه به پایین
map ctrl+shift+page_down scroll_page_down map cmd+page_down scroll_page_down 🍎
- پیمایش به بالای صفحه
map ctrl+shift+home scroll_home map cmd+home scroll_home 🍎
- پیمایش به پایین صفحه
map ctrl+shift+end scroll_end map cmd+end scroll_end 🍎
- پیمایش به اعلان خط فرمان قبلی
map --allow-fallback=shifted,ascii ctrl+shift+z scroll_to_prompt -1
از پارامتر 0 برای scroll_to_prompt <#action-scroll_to_prompt> استفاده کنید تا به آخرین موقعیت پرش یا آخرین موقعیت کلیکشده پیمایش شود. برای کارکرد نیاز به shell integration <#shell-integration> دارد.
- پیمایش به اعلان خط فرمان بعدی
map --allow-fallback=shifted,ascii ctrl+shift+x scroll_to_prompt 1
- مرور بافر پیشینه پیمایش در صفحهبند
map --allow-fallback=shifted,ascii ctrl+shift+h show_scrollback
میتوانید محتوای صفحه فعلی و بافر تاریخچه را بهعنوان STDIN با استفاده از launch --stdin-source <#cmdoption-launch-stdin-source> به یک برنامه دلخواه هدایت (pipe) کنید. برای نمونه، دستور زیر بافر پیشینه پیمایش را در less و در یک پنجره overlay <#term-overlay> باز میکند:
map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R
برای جزئیات بیشتر درباره هدایت محتوای صفحه و بافر به برنامههای خارجی، دستور launch <> را ببینید.
- مرور خروجی آخرین دستور پوسته در صفحهبند
map --allow-fallback=shifted,ascii ctrl+shift+g show_last_command_output
همچنین میتوانید کلیدهای میانبر بیشتری برای دریافت خروجی دستور تعریف کنید. برای نمونه، جهت دریافت خروجی اولین دستور روی صفحه:
map f1 show_first_command_output_on_screen
برای دریافت خروجی دستوری که آخرین بار توسط یک کنش صفحهکلید یا موشواره مورد دسترسی قرار گرفته است:
map f1 show_last_visited_command_output
میتوانید خروجی آخرین دستور اجرا شده در پوسته را با استفاده از کنش launch <#action-launch> هدایت کنید. برای نمونه، دستور زیر خروجی را در less و در یک پنجره overlay <#term-overlay> باز میکند:
map f1 launch --stdin-source=@last_cmd_output --stdin-add-formatting --type=overlay less +G -R
برای دریافت خروجی اولین دستور روی صفحه، از @first_cmd_output_on_screen استفاده کنید. برای دریافت خروجی آخرین دستوری که به آن پریدهاید، از @last_visited_cmd_output استفاده کنید.
برای کارکرد نیاز به shell integration <#shell-integration> دارد.
- جستجو در پیشینه پیمایش در یک صفحهبند
map ctrl+shift+/ search_scrollback map --allow-fallback=shifted,ascii cmd+f search_scrollback 🍎
جستجو برای متن انتخابشده فعلی در پیشینه پیمایش با استفاده از scrollback_pager پیکربندیشده. فرض بر این است که فشردن کلید / حالت جستجو را در صفحهبند فعال میکند. اگر میخواهید یک نگاشت دستی با یک صفحهبند ویژه برای این کار ایجاد کنید، میتوانید از موردی شبیه به این استفاده نمایید:
برای کنترل پیشرفتهتر، مانند استفاده از انتخاب فعلی، از remote_control_script <#action-remote_control_script> استفاده کنید.
مدیریت پنجره (Window management)
- پنجره جدید
map ctrl+shift+enter new_window map cmd+enter new_window 🍎
میتوانید یک پنجره جدید kitty <#term-window> باز کنید که برنامه دلخواهی را اجرا کند، برای نمونه:
map kitty_mod+y launch mutt
میتوانید با استفاده از دستور زیر، یک پنجره جدید باز کنید که دایرکتوری کاری فعلی آن روی دایرکتوری کاری پنجره جاری تنظیم شده باشد:
map ctrl+alt+enter launch --cwd=current
میتوانید پنجره جدیدی باز کنید که مجاز به کنترل kitty از طریق امکان کنترل از راه دور kitty باشد با استفاده از launch --allow-remote-control <#cmdoption-launch-allow-remote-control>. هر برنامهای که در آن پنجره اجرا شود، اجازه کنترل kitty را خواهد داشت. برای نمونه:
map ctrl+enter launch --allow-remote-control some_program
میتوانید یک پنجره جدید در کنار پنجره فعال فعلی یا بهعنوان پنجره اول باز کنید، با:
map ctrl+n launch --location=neighbor map ctrl+f launch --location=first
برای جزئیات بیشتر، دستور launch <> را ببینید.
- پنجره جدید سیستمعامل
map --allow-fallback=shifted,ascii ctrl+shift+n new_os_window map --allow-fallback=shifted,ascii cmd+n new_os_window 🍎
مانند new_window <#action-new_window> در بالا عمل میکند، با این تفاوت که یک پنجره سطح بالای سیستمعامل <#term-os_window> باز میکند. بهویژه میتوانید از new_os_window_with_cwd <#action-new_os_window_with_cwd> برای باز کردن پنجره با دایرکتوری کاری فعلی استفاده کنید.
- بستن پنجره
map --allow-fallback=shifted,ascii ctrl+shift+w close_window map --allow-fallback=shifted,ascii shift+cmd+d close_window 🍎
- پنجره بعدی
map ctrl+shift+] next_window
- پنجره قبلی
map ctrl+shift+[ previous_window
- انتقال پنجره به جلو
map --allow-fallback=shifted,ascii ctrl+shift+f move_window_forward
- انتقال پنجره به عقب
map --allow-fallback=shifted,ascii ctrl+shift+b move_window_backward
- انتقال پنجره به بالا
map ctrl+shift+` move_window_to_top
- شروع تغییر اندازه پنجره
map --allow-fallback=shifted,ascii ctrl+shift+r start_resizing_window map --allow-fallback=shifted,ascii cmd+r start_resizing_window 🍎
- پنجره اول
map ctrl+shift+1 first_window map cmd+1 first_window 🍎
- پنجره دوم
map ctrl+shift+2 second_window map cmd+2 second_window 🍎
- پنجره سوم
map ctrl+shift+3 third_window map cmd+3 third_window 🍎
- پنجره چهارم
map ctrl+shift+4 fourth_window map cmd+4 fourth_window 🍎
- پنجره پنجم
map ctrl+shift+5 fifth_window map cmd+5 fifth_window 🍎
- پنجره ششم
map ctrl+shift+6 sixth_window map cmd+6 sixth_window 🍎
- پنجره هفتم
map ctrl+shift+7 seventh_window map cmd+7 seventh_window 🍎
- پنجره هشتم
map ctrl+shift+8 eighth_window map cmd+8 eighth_window 🍎
- پنجره نهم
map ctrl+shift+9 ninth_window map cmd+9 ninth_window 🍎
- پنجره دهم
map ctrl+shift+0 tenth_window
- انتخاب دیداری و تمرکز روی پنجره
map ctrl+shift+f7 focus_visible_window
نمایش اعداد و حروف همپوشان روی پنجره، و تغییر تمرکز به پنجره با فشردن کلید مربوطه. هنگامی که فقط دو پنجره وجود دارد، تمرکز مستقیماً بدون نمایش لایه همپوشان تغییر مییابد. میتوانید نویسههای همپوشان و ترتیب آنها را با گزینه visual_window_select_characters تغییر دهید.
- جابهجایی دیداری پنجره با پنجرهای دیگر
map ctrl+shift+f8 swap_with_window
مانند focus_visible_window <#action-focus_visible_window> در بالا کار میکند، اما پنجره را جابهجا میکند.
مدیریت برگهها (Tab management)
- برگه بعدی
map ctrl+shift+right next_tab map shift+cmd+] next_tab 🍎 map ctrl+tab next_tab
- برگه قبلی
map ctrl+shift+left previous_tab map shift+cmd+[ previous_tab 🍎 map ctrl+shift+tab previous_tab
- برگه تازه
map --allow-fallback=shifted,ascii ctrl+shift+t new_tab map --allow-fallback=shifted,ascii cmd+t new_tab 🍎
- بستن برگه
map --allow-fallback=shifted,ascii ctrl+shift+q close_tab map --allow-fallback=shifted,ascii cmd+w close_tab 🍎
- بستن پنجره سیستمعامل
map --allow-fallback=shifted,ascii shift+cmd+w close_os_window 🍎
- انتقال برگه به جلو
map ctrl+shift+. move_tab_forward
- انتقال برگه به عقب
map ctrl+shift+, move_tab_backward
- تنظیم عنوان برگه
map --allow-fallback=shifted,ascii ctrl+shift+alt+t set_tab_title map --allow-fallback=shifted,ascii shift+cmd+i set_tab_title 🍎
همچنین میتوانید میانبرهایی برای رفتن به برگههای مشخص <#term-tab> بسازید، که در آن 1 برگه نخست، 2 برگه دوم، -1 برگه فعال پیشین، -2 برگه فعال قبل از برگه فعال پیشین و به همین ترتیب است. هر عدد بزرگتر از شمار برگهها به آخرین برگه میرود و هر عدد کمتر از شمار برگههای استفادهشده پیشین در تاریخچه، به قدیمیترین برگه استفادهشده در تاریخچه میرود:
map ctrl+alt+1 goto_tab 1 map ctrl+alt+2 goto_tab 2
درست مانند new_window <#action-new_window> در بالا، میتوانید نام دستورهای دلخواه را نیز برای اجرا هنگام استفاده از new_tab <#action-new_tab> و new_tab_with_cwd <#action-new_tab_with_cwd> ارسال کنید. در نهایت، اگر میخواهید برگه تازه به جای انتهای فهرست برگهها، در کنار برگه کنونی باز شود، استفاده کنید از:
map ctrl+t new_tab !neighbor [optional cmd to run]
مدیریت چیدمان (Layout management)
- چیدمان بعدی
map --allow-fallback=shifted,ascii ctrl+shift+l next_layout
همچنین میتوانید میانبرهایی برای رفتن به چیدمانهای مشخص <#term-layout> بسازید:
map ctrl+alt+t goto_layout tall map ctrl+alt+s goto_layout stack
به همین ترتیب، برای بازگشت به چیدمان پیشین:
map ctrl+alt+p last_used_layout
کنش toggle_layout <#action-toggle_layout> نیز وجود دارد که به چیدمان تعیینشده سوئیچ میکند یا اگر در چیدمان تعیینشده باشد، به چیدمان پیشین بازمیگردد. برای بزرگنمایی موقت پنجره فعال با تغییر چیدمان به stack کاربرد دارد:
map ctrl+alt+z toggle_layout stack
اندازه قلمها (Font sizes)
میتوانید اندازه قلم را برای تمام پنجرههای سطحبالای سیستمعامل kitty به طور همزمان یا تنها برای پنجره کنونی تغییر دهید.
- افزایش اندازه قلم
map ctrl+shift+equal change_font_size all +2.0 map ctrl+shift+plus change_font_size all +2.0 map ctrl+shift+kp_add change_font_size all +2.0 map cmd+plus change_font_size all +2.0 🍎 map cmd+equal change_font_size all +2.0 🍎 map shift+cmd+equal change_font_size all +2.0 🍎
- کاهش اندازه قلم
map ctrl+shift+minus change_font_size all -2.0 map ctrl+shift+kp_subtract change_font_size all -2.0 map cmd+minus change_font_size all -2.0 🍎 map shift+cmd+minus change_font_size all -2.0 🍎
- بازنشانی اندازه قلم
map ctrl+shift+backspace change_font_size all 0 map cmd+0 change_font_size all 0 🍎
برای تنظیم میانبرها جهت اندازههای مشخص قلم:
map kitty_mod+f6 change_font_size all 10.0
برای تنظیم میانبرها جهت تغییر اندازه قلم تنها در پنجره کنونی سیستمعامل:
map kitty_mod+f6 change_font_size current 10.0
برای تنظیم میانبرها جهت ضرب/تقسیم اندازه قلم:
map kitty_mod+f6 change_font_size all *2.0 map kitty_mod+f6 change_font_size all /2.0
انتخاب و اقدام روی متن نمایان (Select and act on visible text)
از hints kitten برای انتخاب متن و ارسال آن به برنامهای خارجی، درج آن در ترمینال یا رونوشت در تختهگیره استفاده کنید.
- باز کردن URL
map --allow-fallback=shifted,ascii ctrl+shift+e open_url_with_hints
باز کردن یک URL نمایان با استفاده از صفحهکلید. برنامه مورد استفاده برای باز کردن URL در open_url_with مشخص میشود.
- درج مسیر انتخابشده
map --allow-fallback=shifted,ascii ctrl+shift+p>f kitten hints --type path --program -
انتخاب یک مسیر/نام پرونده و درج آن در ترمینال. برای نمونه، جهت اجرای دستورهای git روی نام پرونده حاصل از خروجی دستور پیشین git کاربرد دارد.
- باز کردن مسیر انتخابشده
map --allow-fallback=shifted,ascii ctrl+shift+p>shift+f kitten hints --type path
انتخاب یک مسیر/نام پرونده و باز کردن آن با برنامه پیشفرض سیستم.
- درج پرونده برگزیده
map --allow-fallback=shifted,ascii ctrl+shift+p>c kitten choose-files
انتخاب یک پرونده با استفاده از ابزارک choose-files <> و درج آن در ترمینال.
- درج شاخه برگزیده
map --allow-fallback=shifted,ascii ctrl+shift+p>d kitten choose-files --mode=dir
انتخاب یک شاخه با استفاده از ابزارک choose-files <> و درج آن در ترمینال.
- درج خط انتخابشده
map --allow-fallback=shifted,ascii ctrl+shift+p>l kitten hints --type line --program -
انتخاب یک خط از متن و درج آن در ترمینال. برای خروجی مواردی مانند: ls -1 کاربرد دارد.
- درج واژه انتخابشده
map --allow-fallback=shifted,ascii ctrl+shift+p>w kitten hints --type word --program -
انتخاب واژهها و درج آنها در ترمینال.
- درج هش انتخابشده
map --allow-fallback=shifted,ascii ctrl+shift+p>h kitten hints --type hash --program -
انتخاب رشتهای شبیه به هش و درج آن در ترمینال. در git که از هشهای SHA1 برای شناسایی کامیتها بهره میبرد کاربرد دارد.
- باز کردن پرونده انتخابشده در خط انتخابشده
map --allow-fallback=shifted,ascii ctrl+shift+p>n kitten hints --type linenum
انتخاب رشتهای شبیه به filename:linenum و باز کردن آن در ویرایشگر پیشفرض شما در شماره خط تعیینشده.
- باز کردن ابرپیوند انتخابشده
map --allow-fallback=shifted,ascii ctrl+shift+p>y kitten hints --type hyperlink
انتخاب یک ابرپیوند <#term-hyperlinks> (یعنی یک URL که توسط برنامه ترمینال علامتگذاری شده است، مانند خروجی ls --hyperlink=auto).
ابزارک hints kitten حالتهای عملکردی بسیار بیشتری دارد که میتوانید آنها را به میانبرهای مختلف نگاشت کنید. برای توضیحات کامل به hints kitten <> مراجعه کنید.
موارد گوناگون (Miscellaneous)
- نمایش مستندات
map ctrl+shift+f1 show_kitty_doc overview
- پالت فرمان
map ctrl+shift+f3 command_palette
- تغییر وضعیت تمامصفحه
map ctrl+shift+f11 toggle_fullscreen map --allow-fallback=shifted,ascii ctrl+cmd+f toggle_fullscreen 🍎
- تغییر وضعیت بیشینهسازی
map ctrl+shift+f10 toggle_maximized
- تغییر وضعیت ورود امن صفحهکلید در macOS
map --allow-fallback=shifted,ascii opt+cmd+s toggle_macos_secure_keyboard_entry 🍎
- پیمایش میان پنجرههای سیستمعامل در macOS
map cmd+` macos_cycle_through_os_windows 🍎
- پیمایش معکوس میان پنجرههای سیستمعامل در macOS
map cmd+shift+` macos_cycle_through_os_windows_backwards 🍎
- ورودی یونیکد
map --allow-fallback=shifted,ascii ctrl+shift+u kitten unicode_input map ctrl+cmd+space kitten unicode_input 🍎
- ویرایش پرونده پیکربندی
map ctrl+shift+f2 edit_config_file map cmd+, edit_config_file 🍎
- باز کردن شل فرمان kitty
map ctrl+shift+escape kitty_shell window
باز کردن شل kitty در یک window / tab / overlay / os_window جدید برای کنترل kitty با استفاده از دستورها.
- افزایش کدر بودن پسزمینه
map --allow-fallback=shifted,ascii ctrl+shift+a>m set_background_opacity +0.1
- کاهش کدر بودن پسزمینه
map --allow-fallback=shifted,ascii ctrl+shift+a>l set_background_opacity -0.1
- کاملاً کدر کردن پسزمینه
map --allow-fallback=shifted,ascii ctrl+shift+a>1 set_background_opacity 1
- بازنشانی کدر بودن پسزمینه
map --allow-fallback=shifted,ascii ctrl+shift+a>d set_background_opacity default
- بازنشانی ترمینال
map ctrl+shift+delete clear_terminal reset active map opt+cmd+r clear_terminal reset active 🍎
میتوانید میانبرهایی برای پاکسازی/بازنشانی ترمینال ایجاد کنید. برای نمونه:
# بازنشانی ترمینال map f1 clear_terminal reset active # پاکسازی صفحه ترمینال با حذف همه محتوا map f1 clear_terminal clear active # پاکسازی پیمایش به عقب (scrollback) ترمینال با حذف آن map f1 clear_terminal scrollback active # پیمایش محتوای صفحه به داخل بافر scrollback map f1 clear_terminal scroll active # پاکسازی همه محتویات صفحه تا خط حاوی مکاننما یا ابتدای خط فرمان فعلی (نیازمند ادغام با شل) map f1 clear_terminal to_cursor active # مشابه بالا با این تفاوت که خطوط پاکشده به scrollback منتقل میشوند map f1 clear_terminal to_cursor_scroll active # حذف آخرین دستور و خروجی آن (برای کارکرد نیازمند ادغام با شل است) map f1 clear_terminal last_command active
اگر میخواهید به جای فقط پنجره فعلی روی همه پنجرههای kitty عمل کنید، به جای active از all استفاده کنید.
برخی توابع مفید که میتوان در پروندههای rc شل تعریف کرد تا انواع مختلف پاکسازی پنجره فعلی را انجام دهند:
clear-only-screen() {
printf "\e[H\e[2J"
}
clear-screen-and-scrollback() {
printf "\e[H\e[3J"
}
clear-screen-saving-contents-in-scrollback() {
printf "\e[H\e[22J"
}
برای نمونه، با استفاده از این کدهای گریز، میتوان به جای پاک کردن ساده صفحه، Ctrl+L را طوری بازنگاشت کرد که هم محتوای صفحه فعلی را به بافر scrollback منتقل کند و هم صفحه را پاک نماید. برای ZSH، در ~/.zshrc بیفزایید:
ctrl_l() {
builtin print -rn -- $'\r\e[0J\e[H\e[22J' >"$TTY"
builtin zle .reset-prompt
builtin zle -R
}
zle -N ctrl_l
bindkey '^l' ctrl_l
روش دیگر این است که عبارت map ctrl+l clear_terminal to_cursor_scroll active را به kitty.conf بیفزایید که بدون نیاز به تغییر در پروندههای rc شل کار میکند، اما تنها محتوا را تا خط فرمان پاک میکند و متنی را در خود خط فرمان پاک نمیکند.
- پاکسازی تا ابتدا
map cmd+k clear_terminal to_cursor active 🍎
- پاکسازی scrollback
map option+cmd+k clear_terminal scrollback active 🍎
- پاکسازی آخرین دستور
map cmd+l clear_terminal last_command active 🍎
- پاکسازی صفحه
map cmd+ctrl+l clear_terminal to_cursor_scroll active 🍎
- بارگذاری مجدد kitty.conf
map ctrl+shift+f5 load_config_file map ctrl+cmd+, load_config_file 🍎
بارگذاری مجدد kitty.conf، با اعمال هرگونه تغییرات از زمان آخرین باری که بارگذاری شده بود. توجه داشته باشید که تعداد اندکی از گزینهها را نمیتوان به صورت پویا تغییر داد و نیازمند راهاندازی مجدد کامل kitty هستند. بهویژه، هنگام تغییر میانبرهای مربوط به عملیات موجود در نوار منوی سراسری macOS، راهاندازی مجدد کامل الزامی است. همچنین میتوانید یک کلید میانبر را برای بارگذاری پرونده پیکربندی دیگری نگاشت کنید، برای نمونه:
map f5 load_config /path/to/alternative/kitty.conf
توجه داشته باشید که تمام گزینههای پرونده اصلی kitty.conf نادیده گرفته میشوند؛ به عبارت دیگر، پیکربندی جدید جایگزین پیکربندی قبلی میشود.
- اشکالزدایی پیکربندی kitty
map ctrl+shift+f6 debug_config map opt+cmd+, debug_config 🍎
نمایش جزئیات دقیق درباره این که kitty با چه پیکربندی و در چه محیط میزبانی در حال اجراست. مناسب برای اشکالزدایی مشکلات.
- ارسال متن دلخواه با فشردن کلیدها
میتوانید به kitty اعلام کنید که هنگام فشردن کلیدهای میانبر مشخصشده، متن دلخواه با کدگذاری (UTF-8) را به برنامه کلاینت ارسال کند. برای نمونه:
map ctrl+alt+a send_text all Special text
این تنظیم با فشردن ترکیب کلیدهای Ctrl+Alt+A متن "Special text" را ارسال میکند. متن ارسالی توالیهای گریز ANSI C را رمزگشایی میکند https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html بنابراین میتوانید از توالیهایی مانند \e برای ارسال کدهای کنترلی یا \u21fb برای ارسال نویسههای یونیکد استفاده کنید (یا میتوانید مستقیماً نویسههای یونیکد را به صورت متن UTF-8 وارد نمایید). میتوانید از kitten show-key برای دریافت کدهای گریز کلیدهایی که قصد شبیهسازی آنها را دارید استفاده کنید.
آرگومان نخست برای send_text حالتهای صفحهکلید است که میانبر در آنها فعال میشود. مقادیر ممکن عبارتند از normal، application، kitty یا ترکیبی از آنها که با کاما جدا شده باشند. حالتهای normal و application به حالت کلید مکاننمای DECCKM برای ترمینالها اشاره دارند، و kitty به پروتکل صفحهکلید گسترشیافته kitty اشاره دارد. مقدار ویژه all به معنای همه آنها است.
چند نمونه دیگر:
# چاپ یک کلمه و انتقال مکاننما به ابتدای خط (مشابه تایپ کردن و فشردن Home) map ctrl+alt+a send_text normal Word\e[H map ctrl+alt+a send_text application Word\eOH # اجرای یک دستور در اعلان شل (مشابه تایپ دستور و فشردن Enter) map ctrl+alt+a send_text normal,application some command with arguments\r
- باز کردن وبگاه kitty
map shift+cmd+/ open_url https://sw.kovidgoyal.net/kitty 🍎
- پنهان کردن برنامه kitty در macOS
map cmd+h hide_macos_app 🍎
- پنهان کردن سایر برنامهها در macOS
map opt+cmd+h hide_macos_other_apps 🍎
- کمینهسازی پنجره در macOS
map cmd+m minimize_macos_window 🍎
- خروج از kitty
map cmd+q quit 🍎
نمونه kitty.conf (SAMPLE KITTY.CONF)
با فشردن میانبُر ctrl+shift+f2 در kitty میتوانید یک پرونده نمونه کامنتگذاریشده از kitty.conf را ویرایش کنید. این کار یک پرونده پیکربندی با مستندات کامل و تمام تنظیمات کامنتشده تولید میکند. اگر پرونده kitty.conf از پیش موجود باشد، به جای آن استفاده میشود؛ برای دیدن پرونده نمونه آن را حذف کنید.
یک پرونده پیکربندی پیشفرض را میتوان با اجرای دستور زیر نیز تولید کرد:
kitty +runpy 'from kitty.config import *; print(commented_out_default_config())'
این دستور پرونده پیکربندی پیشفرض کامنتشده را در STDOUT چاپ میکند.
تمام کنشهای قابلنگاشت (ALL MAPPABLE ACTIONS)
فهرست تمامی کارهایی که میتوانید با |kitty| انجام دهید را ببینید <>.
کنشهای قابلنگاشت (Mappable actions)
کنشهای شرحدادهشده در زیر را میتوان با استفاده از دستورالعملهای map و mouse_map در kitty.conf به هر کلید یا کنش موشواره نگاشت کرد. برای نمونههای پیکربندی، پیوندهای میانبُر پیشفرض هر کنش را ببینید. برای مطالعه جزئیات بیشتر درباره نگاشت صفحهکلید، به Making your keyboard dance <> مراجعه کنید.
همچنین میتوانید با فشردن ctrl+shift+f3 <#shortcut-kitty.Command-palette> جهت اجرای جعبه فرمان <> (Command palette)، این کنشها را مرور و اجرا کنید.
رونوشت/چسباندن (Copy/paste)
پاک کردن انتخاب فعلی
کپی متن انتخابشده از پنجره فعال به بریدهدان و پاک کردن انتخاب؛ در صورت نبود انتخاب، ارسال SIGINT (معادل ctrl+c)
کپی متن انتخابشده از پنجره فعال به بریدهدان همراه با کدهای قالببندی ANSI
کپی آخرین خروجی غیرخالی دستور شل به بریدهدان
برای کارکرد نیازمند یکپارچهسازی شل <#shell-integration> است
کپی متن انتخابشده از پنجره فعال به بریدهدان؛ در صورت نبود انتخاب، ارسال SIGINT (معادل ctrl+c)
کپی متن انتخابشده از پنجره فعال به بریدهدان؛ در صورت نبود انتخاب، ارسال کلید به برنامه در حال اجرا در ترمینال.
میانبُرهای پیشفرضی که از این کنش استفاده میکنند: cmd+c <#shortcut-kitty.Copy-to-clipboard-or-pass-through>
کپی متن انتخابشده از پنجره فعال به بریدهدان؛ در صورت نبود انتخاب، کپی خروجی آخرین دستور (برای کارکرد نیازمند یکپارچهسازی شل است)
کپی متن انتخابشده از پنجره فعال به بریدهدان
میانبُرهای پیشفرضی که از این کنش استفاده میکنند: ctrl+shift+c <#shortcut-kitty.Copy-to-clipboard>
ارسال متن انتخابشده از پنجره فعال به برنامه مشخصشده
میانبُرهای پیشفرضی که از این کنش استفاده میکنند: ctrl+shift+o <#shortcut-kitty.Pass-selection-to-program>
چسباندن متن مشخصشده به پنجره فعلی. کدهای گریز ANSI C رمزگشایی میشوند.
کپی انتخاب از پنجره فعال به بافر مشخصشده
برای جزئیات Multiple copy/paste buffers <#cpbuf> را ببینید.
چسباندن از بافر مشخصشده به پنجره فعال
برای جزئیات Multiple copy/paste buffers <#cpbuf> را ببینید.
چسباندن از بریدهدان به پنجره فعال
میانبُرهای پیشفرضی که از این کنش استفاده میکنند: ctrl+shift+v <#shortcut-kitty.Paste-from-clipboard>
چسباندن از انتخاب اولیه (primary selection) در صورت وجود، وگرنه از بریدهدان به پنجره فعال
میانبُرهای پیشفرضی که از این کنش استفاده میکنند: ctrl+shift+s <#shortcut-kitty.Paste-from-selection>
اشکالزدایی (Debugging)
نمایش خروجی خطوط فعلی در بافر پیمایش به عقب + صفحه به همراه ویژگیهای خط
بستن تمام اتصالات اشتراکی SSH
برای جزئیات به share_connections <#opt-kitten-ssh.share_connections> مراجعه کنید.
نمایش پیکربندی مؤثری که kitty با آن اجرا میشود
میانبُرهای پیشفرضی که از این کنش استفاده میکنند: ctrl+shift+f6 <#shortcut-kitty.Debug-kitty-configuration>
نمایش متغیرهای محیطی که فرآیند kitty مشاهده میکند
شبیهسازی تغییر در ترجیحات طرح رنگ سیستمعامل
آغاز یک عملیات کشیدن آزمایشی، جهت استفاده با mouse_map
اندازه قلمها (Font sizes)
تغییر اندازه قلم برای پنجره فعلی یا تمام پنجرههای سیستمعامل
برای جزئیات به Font sizes <#conf-kitty-shortcuts-fonts> مراجعه کنید.
میانبُرهای پیشفرضی که از این کنش استفاده میکنند: ctrl+shift+minus <#shortcut-kitty.Decrease-font-size>, ctrl+shift+equal <#shortcut-kitty.Increase-font-size>, ctrl+shift+backspace <#shortcut-kitty.Reset-font-size>
طرحبندیها (Layouts)
تغییر به طرحبندی نامبرده شده
در صورتی که چندین طرحبندی با یک نام و گزینههای متفاوت وجود دارند، تعریف کامل طرحبندی یا پیشوند یکتایی از تعریف کامل را مشخص کنید.
به عنوان نمونه:
map f1 goto_layout tall map f2 goto_layout fat:bias=20
رفتن به آخرین طرحبندی استفادهشده
اجرای یک کنش ویژه طرحبندی. برای جزئیات به Arrange windows <> مراجعه کنید
رفتن به طرحبندی فعال بعدی. اختیاری است که یک عدد صحیح برای پرش به تعداد مشخصشده ارسال شود.
میانبُرهای پیشفرضی که از این کنش استفاده میکنند: ctrl+shift+l <#shortcut-kitty.Next-layout>
تغییر وضعیت طرحبندی نامبرده شده
اگر طرحبندی دیگری جاری باشد، به طرحبندی نامبرده سوئیچ میکند، در غیر این صورت به آخرین طرحبندی استفادهشده برمیگردد. برای "بزرگنمایی" موقت یک پنجره با جابجایی به طرحبندی stack کاربرد دارد. همچنین اگر مایلید محتوا از بافر پیمایش به عقب به پنجره بزرگشده سرریز کند، به scrollback_fill_enlarged_window <#opt-kitty.scrollback_fill_enlarged_window> مراجعه کنید. به عنوان نمونه:
map f1 toggle_layout stack
نشانهها (Marks)
حذف نشانگر ایجادشده پیشین
پیمایش به نشانه بعدی یا قبلی از نوع مشخصشده
تغییر وضعیت نشانگر فعلی روشن/خاموش
ایجاد یک نشانگر جدید
متفرقه (Miscellaneous)
ارسال کلیدهای مشخصشده به پنجره فعال.
توجه داشته باشید که کلید تنها در صورتی ارسال خواهد شد که حالت صفحهکلید برنامه در حال اجرا در ترمینال از آن پشتیبانی کند. هم فشردن کلید و هم رها کردن آن ارسال میشود. ابتدا فشرده شدن تمام کلیدهای مشخصشده و سپس رها شدن آنها به ترتیب معکوس ارسال میگردد. برای ارسال الگویی از فشردن و رها کردن برای چندین کلید، از کنش combine استفاده کنید. به عنوان نمونه:
map f1 send_key ctrl+x alt+y map f1 combine : send_key ctrl+x : send_key alt+y
ارسال متن مشخصشده به پنجره فعال
برای جزئیات به send_text <#shortcut-kitty.Send-arbitrary-text-on-key-presses> مراجعه کنید.
میانبُرهای پیشفرضی که از این کنش استفاده میکنند: ctrl+shift+alt+h <#shortcut-kitty.Send-arbitrary-text-on-key-presses>
نمایش مستندات مشخصشده kitty، با اولویت نسخه محلی در صورت یافت شدن.
به عنوان نمونه:
# نمایش مستندات پیکربندی map f1 show_kitty_doc conf # نمایش مستندات ssh kitten map f1 show_kitty_doc kittens/ssh
میانبُرهای پیشفرضی که از این کنش استفاده میکنند: ctrl+shift+f1 <#shortcut-kitty.Show-documentation>
ارسال SIGNAL مشخصشده به فرآیند پیشزمینه در پنجره فعال
به عنوان نمونه:
map f1 signal_child SIGTERM
پاک کردن ترمینال
برای جزئیات به reset_terminal <#shortcut-kitty.Reset-the-terminal> مراجعه کنید. به عنوان نمونه:
# بازنشانی ترمینال map f1 clear_terminal reset active # پاک کردن صفحه ترمینال با حذف تمامی محتویات map f1 clear_terminal clear active # پاک کردن بافر پیمایش ترمینال با حذف آن map f1 clear_terminal scrollback active # پیمایش محتویات صفحه به درون بافر پیمایش map f1 clear_terminal scroll active # پاک کردن همهچیز در صفحه تا خط حاوی مکاننما یا ابتدای اعلان فعلی (نیازمند یکپارچهسازی شل) # برای پاک کردن صفحه تا اعلان شل و انتقال اعلان شل به بالای صفحه کاربرد دارد. map f1 clear_terminal to_cursor active # همانند بالا به جز اینکه خطوط پاکشده به بافر پیمایش منتقل میشوند map f1 clear_terminal to_cursor_scroll active # حذف آخرین دستور و خروجی آن (برای کارکرد نیازمند یکپارچهسازی شل است) map f1 clear_terminal last_command active
میانبُرهای پیشفرضی که از این کنش استفاده میکنند: cmd+l <#shortcut-kitty.Clear-the-last-command>, cmd+ctrl+l <#shortcut-kitty.Clear-screen>, option+cmd+k <#shortcut-kitty.Clear-scrollback>, cmd+k <#shortcut-kitty.Clear-to-start>, ctrl+shift+delete <#shortcut-kitty.Reset-the-terminal>
ترکیب چند کنش و نگاشت به یکبار فشردن کلید
ساختار دستور به صورت زیر است:
map key combine <separator> action1 <separator> action2 <separator> action3 ...
به عنوان نمونه:
map kitty_mod+e combine : new_window : next_layout map kitty_mod+e combine | new_tab | goto_tab -1
مرور و راهاندازی میانبُرهای صفحهکلید و کنشها در یک پوشش قابلجستجو (Command palette <>)
میانبُرهای پیشفرضی که از این کنش استفاده میکنند: ctrl+shift+f3 <#shortcut-kitty.Command-palette>
فعال/غیرفعال کردن حروف متصل (ligatures) در پنجره مشخصشده
برای جزئیات به disable_ligatures <#opt-kitty.disable_ligatures> مراجعه کنید
نادیده گرفتن کامل این رویداد
ویرایش پرونده پیکربندی kitty.conf در ویرایشگر متن دلخواه شما
میانبُرهای پیشفرضی که از این کنش استفاده میکنند: ctrl+shift+f2 <#shortcut-kitty.Edit-config-file>
تصاحب صفحهکلید. به این معنی است که میانبُرهای سراسری تعریفشده در سیستمعامل به جای آن به kitty ارسال میشوند. کاربردی است اگر
بخواهید یک پنجره مُدال سیستمعامل ایجاد کنید. کیفیت کارکرد این قابلیت به سیستمعامل/مدیر پنجره/محیط رومیزی بستگی دارد. در Wayland تنها در صورتی کار میکند که کامپوزیتور پروتکل inhibit-keyboard-shortcuts https://wayland.app/protocols/keyboard-shortcuts-inhibit-unstable-v1 را پیادهسازی کرده باشد. در macOS اپل بدون مجوزهای ویژه اجازه تصاحب صفحهکلید را به برنامهها نمیدهد، بنابراین کار نمیکند.
پنهان کردن برنامه kitty در macOS
میانبُرهای پیشفرضی که از این کنش استفاده میکنند: cmd+h <#shortcut-kitty.Hide-macOS-kitty-application>
پنهان کردن سایر برنامهها در macOS
میانبُرهای پیشفرضی که از این کنش استفاده میکنند: opt+cmd+h <#shortcut-kitty.Hide-macOS-other-applications>
ورود نویسه یونیکد دلخواه. برای جزئیات به Unicode input <> مراجعه کنید.
اجرای kitten مشخصشده. برای جزئیات به Custom kittens <> مراجعه کنید
میانبُرهای پیشفرضی که از این کنش استفاده میکنند:
- Selecting files, fast <> - ctrl+shift+p>d <#shortcut-kitty.Insert-chosen-directory> درج دایرکتوری انتخابشده
- Selecting files, fast <> - ctrl+shift+p>c <#shortcut-kitty.Insert-chosen-file> درج پرونده انتخابشده
- Hints <> - ctrl+shift+p>h <#shortcut-kitty.Insert-selected-hash> درج هش انتخابشده
- Hints <> - ctrl+shift+p>l <#shortcut-kitty.Insert-selected-line> درج خط انتخابشده
- Hints <> - ctrl+shift+p>f <#shortcut-kitty.Insert-selected-path> درج مسیر انتخابشده
- Hints <> - ctrl+shift+p>w <#shortcut-kitty.Insert-selected-word> درج کلمه انتخابشده
- Hints <> - ctrl+shift+p>shift+f <#shortcut-kitty.Open-selected-path> باز کردن مسیر انتخابشده
- Hints <> - ctrl+shift+p>n <#shortcut-kitty.Open-the-selected-file-at-the-selected-line> باز کردن پرونده انتخابشده در خط مشخصشده
- Hints <> - ctrl+shift+p>y <#shortcut-kitty.Open-the-selected-hyperlink> باز کردن فرارابط انتخابشده
- Unicode input <> - ctrl+shift+u <#shortcut-kitty.Unicode-input> ورودی یونیکد
اجرای شل kitty برای کنترل kitty با دستورات
میانبُرهای پیشفرضی که از این کنش استفاده میکنند: ctrl+shift+escape <#shortcut-kitty.Open-the-kitty-command-shell>
راهاندازی برنامه مشخصشده در یک پنجره/زبانه/غیره جدید.
برای جزئیات The launch command <> را ببینید
بارگذاری مجدد پرونده پیکربندی
اگر بدون آرگومان نگاشت شود، پرونده پیکربندی پیشفرض را مجدداً بارگذاری میکند، در غیر این صورت پروندههای پیکربندی مشخصشده را به ترتیب بارگذاری مینماید. بارگذاری یک پرونده پیکربندی جایگزین تمام گزینههای پیکربندی میشود. به عنوان نمونه:
map f5 load_config_file /path/to/some/kitty.conf
میانبُرهای پیشفرضی که از این کنش استفاده میکنند: ctrl+shift+f5 <#shortcut-kitty.Reload-kitty.conf>
چرخش میان پنجرههای سیستمعامل در macOS
میانبُرهای پیشفرضی که از این کنش استفاده میکنند: cmd+` <#shortcut-kitty.macOS-Cycle-through-OS-Windows>
چرخش به عقب میان پنجرههای سیستمعامل در macOS
میانبرهای پیشگزیده برای این کنش: cmd+shift+` <#shortcut-kitty.macOS-Cycle-through-OS-Windows-backwards>
کمینهسازی پنجره macOS
میانبرهای پیشگزیده برای این کنش: cmd+m <#shortcut-kitty.Minimize-macOS-window>
باز کردن نشانی اینترنتی (URL) مشخصشده
میانبرهای پیشگزیده برای این کنش: shift+cmd+/ <#shortcut-kitty.Open-kitty-Website>
کلیک روی یک نشانی اینترنتی (URL) با استفاده از صفحهکلید
میانبرهای پیشگزیده برای این کنش: ctrl+shift+e <#shortcut-kitty.Open-URL>
پایان حالت فعلی صفحهکلید و بازگشت به حالت قبلی.
تغییر به حالت صفحهکلید مشخصشده و قرار دادن آن در پشتهٔ حالتهای صفحهکلید.
اجرای دستور کنترل از راه دور بدون نیاز به فعالسازی اجازهٔ کنترل از راه دور
برای نمونه:
map f1 remote_control set-spacing margin=30
برای جزئیات Mapping key presses to remote control commands <#rc-mapping> را ببینید.
اجرای اسکریپت کنترل از راه دور بدون نیاز به فعالسازی اجازهٔ کنترل از راه دور
برای نمونه:
map f1 remote_control_script /path/to/script arg1 arg2 ...
برای جزئیات Mapping key presses to remote control commands <#rc-mapping> را ببینید. مسیرهای نسبی نسبت به دایرکتوری پیکربندی kitty سنجیده میشوند.
تغییر رنگها در پنجرههای مشخصشده
برای جزئیات، kitten @ set-colors <#at-set-colors> را ببینید. برای نمونه:
map f5 set_colors --configured /path/to/some/config/file/colors.conf
نمایش پیام خطا با عنوان و متن مشخصشده
توقف به مدت زمان مشخصشده. پسوند میتواند s برای ثانیه، m برای دقیقه، h برای ساعت و d برای روز باشد. زمان میتواند کسری باشد.
تغییر وضعیت ورودی امن صفحهکلید macOS
میانبرهای پیشگزیده برای این کنش: opt+cmd+s <#shortcut-kitty.Toggle-macOS-secure-keyboard-entry>
رها کردن صفحهکلید در صورت تسخیر قبلی آن
لغو انتساب میانبر
نگاشت میانبر به no_op موجب میشود kitty دیگر کلید فشردهشده را رهگیری نکند و در عوض آن را به برنامه در حال اجرا در آن بفرستد.
کنشهای موشواره (Mouse actions)
کلیک روی نشانی اینترنتی (URL) زیر موشواره
کلیک روی نشانی اینترنتی (URL) زیر موشواره تنها در صورتی که چیزی در صفحه انتخاب نشده باشد
مدیریت کلیک موشواره
تلاش برای انجام کنشهای مشخصشده یکی پس از دیگری تا زمانی که یکی از آنها موفق شود. کنشهای پشتیبانیشده عبارتند از:
selection - بررسی وجود متن انتخابی و در صورت وجود، لغو پردازش link - در صورت وجود پیوند زیر موشواره، کلیک روی آن prompt - اگر کلیک موشواره روی خط فرمان پوسته رخ دهد، مکاننما به موقعیت موشواره منتقل شود
برای نمونهها، Mouse actions <#conf-kitty-mouse-mousemap> را ببینید
انتخاب خروجی دستور کلیکشده
برای کارکرد نیازمند Shell integration <#shell-integration> است
تغییر بازهٔ انتخابی بر اساس موقعیت فعلی موشواره
برای نمونهها، Mouse actions <#conf-kitty-mouse-mousemap> را ببینید
نمایش خروجی دستور کلیکشده در یک صفحهبند مانند less
برای کارکرد نیازمند Shell integration <#shell-integration> است
چسباندن متن انتخابی اصلی فعلی (Primary selection)
چسباندن متن انتخابی اصلی فعلی یا حافظه کلیپبورد در صورت عدم وجود متن انتخابی
پیمایش (Scrolling)
پیمایش به انتهای بافر تاریخچه در صفحه اصلی
میانبرهای پیشگزیده برای این کنش: ctrl+shift+end <#shortcut-kitty.Scroll-to-bottom>
پیمایش به ابتدای بافر تاریخچه در صفحه اصلی
میانبرهای پیشگزیده برای این کنش: ctrl+shift+home <#shortcut-kitty.Scroll-to-top>
پیمایش یک خط به پایین در صفحه اصلی. برای پیمایش به مقادیر دیگر، میتوانید کنش remote_control
scroll-window را نگاشت کنید. آرگومان smooth را برای پیمایش پویانماییشده ارسال کنید. برای نمونه:
map kitty_mod+down scroll_line_down smooth
میانبرهای پیشگزیده برای این کنش: ctrl+shift+down <#shortcut-kitty.Scroll-line-down>
پیمایش یک خط به بالا در صفحه اصلی. برای پیمایش به مقادیر دیگر، میتوانید کنش remote_control
scroll-window را نگاشت کنید. آرگومان smooth را برای پیمایش پویانماییشده ارسال کنید. برای نمونه:
map kitty_mod+up scroll_line_up smooth
میانبرهای پیشگزیده برای این کنش: ctrl+shift+up <#shortcut-kitty.Scroll-line-up>
پیمایش یک صفحه به پایین در صفحه اصلی. برای پیمایش به مقادیر دیگر، میتوانید کنش remote_control scroll-window را نگاشت کنید.
میانبرهای پیشگزیده برای این کنش: ctrl+shift+page_down <#shortcut-kitty.Scroll-page-down>
پیمایش یک صفحه به بالا در صفحه اصلی. برای پیمایش به مقادیر دیگر، میتوانید کنش remote_control scroll-window را نگاشت کنید.
میانبرهای پیشگزیده برای این کنش: ctrl+shift+page_up <#shortcut-kitty.Scroll-page-up>
پیمایش خط فرمان به پایین صفحه و پر کردن خطهای اضافی از بافر تاریخچه، هنگام حضور در صفحه اصلی
پیمایش خط فرمان به بالای صفحه و پر کردن صفحه با خطهای خالی، هنگام حضور در صفحه اصلی. برای جلوگیری از قرارگیری خطهای بالای خط فرمان در تاریخچه از scroll_prompt_to_top y استفاده کنید
پیمایش به خط فرمان قبلی/بعدی پوسته
امکان پرش آسان از یک دستور به دستور دیگر را فراهم میکند. نیازمند کارکرد Shell integration <#shell-integration> است. دو عدد اختیاری را به عنوان آرگومان میپذیرد:
نخستین مقدار، تعداد خطهای فرمانی است که باید پرش شوند؛ مقادیر منفی به بالا و مقادیر مثبت به پایین میپرند. مقدار صفر به آخرین خط فرمان بازدیدشده توسط این کنش پرش میکند. پیشگزیده -1 است
دومین مقدار، تعداد خطهایی است که باید بالای خط فرمان پرششده نمایش داده شوند. این گزینه تا حدی شبیه گزینهٔ --jump-target در less یا تنظیم scrolloff در vim است. پیشگزیده 0 است.
برای نمونه:
map ctrl+p scroll_to_prompt -1 3 # پرش به قبلی، با نمایش ۳ خط پیشین map ctrl+n scroll_to_prompt 1 # پرش به بعدی map ctrl+o scroll_to_prompt 0 # پرش به آخرین بازدیدشده
میانبرهای پیشگزیده برای این کنش: ctrl+shift+x <#shortcut-kitty.Scroll-to-next-shell-prompt>، ctrl+shift+z <#shortcut-kitty.Scroll-to-previous-shell-prompt>
جستجو در تاریخچه با صفحهبندهایی نظیر less. در صورت وجود متن انتخابشده، بهطور خودکار جستجو میشود.
توجه داشته باشید فرض بر این است که فشردن کلید / حالت جستجو را در صفحهبند پیکربندیشده به عنوان صفحهبند تاریخچه فعال میکند.
میانبرهای پیشگزیده برای این کنش: ctrl+shift+/ <#shortcut-kitty.Search-the-scrollback-within-a-pager>
نمایش خروجی نخستین دستور پوسته روی صفحه در یک صفحهبند مانند less
برای کارکرد نیازمند Shell integration <#shell-integration> است
نمایش خروجی آخرین دستور پوسته در یک صفحهبند مانند less
برای کارکرد نیازمند Shell integration <#shell-integration> است
میانبرهای پیشگزیده برای این کنش: ctrl+shift+g <#shortcut-kitty.Browse-output-of-the-last-shell-command-in-pager>
نمایش آخرین خروجی غیرخالی یک دستور پوسته در یک صفحهبند مانند less
برای کارکرد نیازمند Shell integration <#shell-integration> است
نمایش نخستین خروجی دستور زیر آخرین موقعیت پیمایششده از طریق scroll_to_prompt
یا آخرین خروجی دستور کلیکشده با موشواره در یک صفحهبند مانند less
برای کارکرد نیازمند Shell integration <#shell-integration> است
نمایش تاریخچه در یک صفحهبند مانند less
میانبرهای پیشگزیده برای این کنش: ctrl+shift+h <#shortcut-kitty.Browse-scrollback-buffer-in-pager>
نشستها (Sessions)
بستن یک نشست، یعنی بستن تمام پنجرههای متعلق به آن نشست.
- نمونهها::
- # پرسش برای نشست موردنظر جهت بستن map f1 close_session # بستن نشست فعال فعلی map f1 close_session . # بستن نشست بر اساس نام map f1 close_session "my session" # بستن نشست بر اساس مسیر فایل نشست map f1 close_session "/path/to/session/file.kitty-session"
رفتن به نشست مشخصشده، و ایجاد آن در صورت عدم وجود. Creating/Switching to sessions with a keypress <#goto-session> را ببینید.
ذخیره وضعیت فعلی kitty به عنوان یک فایل نشست. The save_as_session action <#save-as-session> را ببینید.
مدیریت زبانهها (Tab management)
بستن تمام زبانههای پنجره سیستمعامل جاری به جز زبانه فعال فعلی
بستن زبانه جاری
میانبرهای پیشگزیده برای این کنش: ctrl+shift+q <#shortcut-kitty.Close-tab>
جداسازی یک زبانه و انتقال آن به پنجره سیستمعامل دیگر. همچنین میتوانید از کشیدن و رها کردن برای جداسازی زبانهها استفاده کنید.
برای جزئیات detaching windows <#detach-window> را ببینید.
رفتن به زبانه مشخصشده با شماره، شروع از ۱
اعداد صفر و منفی به زبانههای فعال قبلی میروند. از کنش select_tab برای انتخاب تعاملی زبانه جهت انتقال استفاده کنید.
انتقال زبانه فعال به عقب. همچنین میتوانید از کشیدن و رها کردن برای چیدمان مجدد زبانهها استفاده کنید.
میانبرهای پیشگزیده برای این کنش: ctrl+shift+, <#shortcut-kitty.Move-tab-backward>
انتقال زبانه فعال به جلو. همچنین میتوانید از کشیدن و رها کردن برای چیدمان مجدد زبانهها استفاده کنید.
میانبرهای پیشگزیده برای این کنش: ctrl+shift+. <#shortcut-kitty.Move-tab-forward>
ایجاد یک زبانه جدید
میانبرهای پیشگزیده برای این کنش: ctrl+shift+t <#shortcut-kitty.New-tab>
ایجاد یک زبانه جدید با پوشه کاری یکسان با پنجره فعال برای پنجره موجود در آن.
زبانه به نشست فعال فعلی <#sessions> (در صورت وجود) افزوده میشود.
فعال کردن زبانه بعدی
میانبرهای پیشگزیده برای این کنش: ctrl+shift+right <#shortcut-kitty.Next-tab>
فعال کردن زبانه قبلی
میانبرهای پیشگزیده برای این کنش: ctrl+shift+left <#shortcut-kitty.Previous-tab>
انتخاب تعاملی یک زبانه برای رفتن به آن
تغییر تعاملی عنوان زبانه فعال با نوشتن عنوان جدید.
اگر آرگومانی برای این کنش مشخص کنید، به جای درخواست عنوان، از آن به عنوان عنوان زبانه استفاده میشود. از رشته خالی ("") برای بازنشانی عنوان به حالت پیشگزیده استفاده کنید. از یک فاصله (" ") برای مشخص کردن این که خط فرمان نباید پیشپر شده باشد استفاده کنید. برای نمونه:
# استفاده تعاملی map f1 set_tab_title # تنظیم یک عنوان مشخص map f2 set_tab_title some title # بازنشانی به پیشگزیده map f3 set_tab_title "" # استفاده تعاملی بدون خط فرمان پیشپر شده map f3 set_tab_title " "
میانبرهای پیشگزیده برای این کنش: ctrl+shift+alt+t <#shortcut-kitty.Set-tab-title>
مدیریت پنجره (Window management)
تغییر تعاملی عنوان پنجره فعال با نوشتن عنوان جدید.
در صورت تعیین آرگومان برای این کنش، از آن به عنوان عنوان استفاده میشود و درخواستی نمایش داده نخواهد شد. برای بازنشانی عنوان به پیشفرض از رشته خالی ("") استفاده کنید. برای خالی ماندن اعلان ورودی و پیشپر نشدن آن، از یک فاصله (" ") استفاده کنید. برای نمونه:
# کاربرد تعاملی map f1 set_window_title # تنظیم عنوان مشخص map f2 set_window_title some title # بازنشانی به پیشفرض map f3 set_window_title "" # کاربرد تعاملی بدون اعلان پیشپر شده map f3 set_window_title " "
بستن همه پنجرههای برگه بجز پنجره فعال فعلی
تمرکز روی پنجره هشتم
میانبرهای پیشفرض این کنش: ctrl+shift+8 <#shortcut-kitty.Eighth-window>
تمرکز روی پنجره پنجم
میانبرهای پیشفرض این کنش: ctrl+shift+5 <#shortcut-kitty.Fifth-window>
تمرکز روی پنجره نخست
میانبرهای پیشفرض این کنش: ctrl+shift+1 <#shortcut-kitty.First-window>
تمرکز روی یک پنجره مرئی با فشردن شماره پنجره. در این حالت شمارهها
برای انتخاب آسان روی پنجرهها نمایش داده میشوند. visual_window_select_characters <#opt-kitty.visual_window_select_characters> را ببینید.
میانبرهای پیشفرض این کنش: ctrl+shift+f7 <#shortcut-kitty.Visually-select-and-focus-window>
تمرکز روی پنجره چهارم
میانبرهای پیشفرض این کنش: ctrl+shift+4 <#shortcut-kitty.Fourth-window>
انتقال پنجره در جهت مشخصشده
برای نمونه:
map ctrl+left move_window left map ctrl+down move_window bottom
انتقال پنجره فعال به عقب (جابجایی با پنجره قبلی)
میانبرهای پیشفرض این کنش: ctrl+shift+b <#shortcut-kitty.Move-window-backward>
انتقال پنجره فعال به جلو (جابجایی با پنجره بعدی)
میانبرهای پیشفرض این کنش: ctrl+shift+f <#shortcut-kitty.Move-window-forward>
انتقال پنجره فعال به ابتدا (تبدیل به پنجره نخست)
میانبرهای پیشفرض این کنش: ctrl+shift+` <#shortcut-kitty.Move-window-to-top>
تمرکز روی پنجره همسایه در برگه جاری
برای نمونه:
map ctrl+left neighboring_window left map ctrl+down neighboring_window bottom
تمرکز روی پنجره بعدی در برگه جاری. پنجرههای روکش (overlay) پیمایش نمیشوند.
میانبرهای پیشفرض این کنش: ctrl+shift+] <#shortcut-kitty.Next-window>
تمرکز روی پنجره نهم
میانبرهای پیشفرض این کنش: ctrl+shift+9 <#shortcut-kitty.Ninth-window>
تمرکز روی n-اُمین پنجره در صورت مثبت بودن یا پنجرههای فعال قبلی در صورت منفی بودن. اگر عدد بزرگتر
از تعداد پنجرهها باشد روی پنجره آخر تمرکز میشود. برای نمونه:
# تمرکز روی پنجره فعال قبلی map ctrl+p nth_window -1 # تمرکز روی پنجره نخست map ctrl+1 nth_window 0
تمرکز روی پنجره قبلی در برگه جاری. پنجرههای روکش (overlay) پیمایش نمیشوند.
میانبرهای پیشفرض این کنش: ctrl+shift+[ <#shortcut-kitty.Previous-window>
بازنشانی اندازه پنجرهها و واگردانی هرگونه تغییر اندازه پویا
تغییر اندازه پنجره فعال به مقدار مشخصشده
برای جزئیات بیشتر تغییر اندازه پنجرهها <#window-resizing> را ببینید.
تمرکز روی پنجره دوم
میانبرهای پیشفرض این کنش: ctrl+shift+2 <#shortcut-kitty.Second-window>
تمرکز روی پنجره هفتم
میانبرهای پیشفرض این کنش: ctrl+shift+7 <#shortcut-kitty.Seventh-window>
تمرکز روی پنجره ششم
میانبرهای پیشفرض این کنش: ctrl+shift+6 <#shortcut-kitty.Sixth-window>
جابجایی پنجره جاری با پنجرهای دیگر در برگه فعلی با انتخاب دیداری. visual_window_select_characters <#opt-kitty.visual_window_select_characters> را ببینید.
میانبرهای پیشفرض این کنش: ctrl+shift+f8 <#shortcut-kitty.Visually-swap-window-with-another>
تمرکز روی پنجره دهم
میانبرهای پیشفرض این کنش: ctrl+shift+0 <#shortcut-kitty.Tenth-window>
تمرکز روی پنجره سوم
میانبرهای پیشفرض این کنش: ctrl+shift+3 <#shortcut-kitty.Third-window>
بستن پنجره فعال جاری در سیستمعامل
میانبرهای پیشفرض این کنش: shift+cmd+w <#shortcut-kitty.Close-OS-window>
بستن همه پنجرههای دیگر سیستمعامل بجز پنجره دربردارنده پنجره فعال جاری
بستن پنجره فعال جاری
میانبرهای پیشفرض این کنش: ctrl+shift+w <#shortcut-kitty.Close-window>
بستن پنجره همراه با تأیید
پیش از بستن پنجره درخواست تأیید میکند. اگر در اعلان پوسته نیازی به تأیید ندارید (نیازمند یکپارچهسازی پوسته <#shell-integration>)، استفاده کنید از:
map f1 close_window_with_confirmation ignore-shell
جداسازی پنجره و انتقال آن به برگه یا پنجره سیستمعامل دیگر
برای جزئیات بیشتر جداسازی پنجرهها <#detach-window> را ببینید.
پنجره جدید سیستمعامل
میانبرهای پیشفرض این کنش: ctrl+shift+n <#shortcut-kitty.New-OS-window>
پنجره جدید سیستمعامل با پوشه کاری یکسان با پنجره فعال جاری.
پنجره جدید سیستمعامل به نشست فعال فعلی <#sessions> (در صورت وجود) اضافه میشود.
ایجاد پنجره جدید
میانبرهای پیشفرض این کنش: ctrl+shift+enter <#shortcut-kitty.New-window>
ایجاد پنجره جدید با پوشه کاری یکسان با پنجره فعال.
پنجره جدید به نشست فعال <#sessions> (در صورت وجود) تعلق خواهد داشت.
تمرکز روی n-اُمین پنجره سیستمعامل در صورت مثبت بودن یا پنجرههای فعال قبلی سیستمعامل در صورت منفی بودن. اگر عدد بزرگتر
از تعداد پنجرههای سیستمعامل باشد روی آخرین پنجره سیستمعامل تمرکز میشود. مقدار صفر تمرکز را دوباره به پنجره فعلی سیستمعامل میدهد؛ این حالت زمانی که تمرکز روی هیچ پنجره kitty نیست کاربرد دارد، با این حال تنها زمانی کار خواهد کرد که مدیر پنجره اجازه گرفتن تمرکز را به برنامهها بدهد. برای نمونه:
# تمرکز روی پنجره فعال قبلی kitty در سیستمعامل map ctrl+p nth_os_window -1 # تمرکز روی پنجره فعلی kitty در سیستمعامل (گرفتن تمرکز) map ctrl+0 nth_os_window 0 # تمرکز روی نخستین پنجره kitty در سیستمعامل map ctrl+1 nth_os_window 1 # تمرکز روی آخرین پنجره kitty در سیستمعامل map ctrl+1 nth_os_window 999
خروج و بستن همه پنجرهها
میانبرهای پیشفرض این کنش: cmd+q <#shortcut-kitty.Quit-kitty>
تنظیم کدر بودن پسزمینه برای پنجره فعال سیستمعامل
برای نمونه:
map f1 set_background_opacity +0.1 map f2 set_background_opacity -0.1 map f3 set_background_opacity 0.5
میانبرهای پیشفرض این کنش: ctrl+shift+a>l <#shortcut-kitty.Decrease-background-opacity>, ctrl+shift+a>1 <#shortcut-kitty.Make-background-fully-opaque>, ctrl+shift+a>m <#shortcut-kitty.Increase-background-opacity>, ctrl+shift+a>d <#shortcut-kitty.Reset-background-opacity>
تغییر اندازه تعاملی پنجره فعال
برای جزئیات بیشتر تغییر اندازه پنجرهها <#window-resizing> را ببینید.
میانبرهای پیشفرض این کنش: ctrl+shift+r <#shortcut-kitty.Start-resizing-window>
تغییر وضعیت تمامصفحه پنجره فعال سیستمعامل
میانبرهای پیشفرض این کنش: ctrl+shift+f11 <#shortcut-kitty.Toggle-fullscreen>
تغییر وضعیت بیشینهبودن پنجره فعال سیستمعامل
میانبرهای پیشفرض این کنش: ctrl+shift+f10 <#shortcut-kitty.Toggle-maximized>
جابجایی به برگه منطبق با عبارت مشخصشده
اگر برگه دیگری جاری باشد به برگه منطبق جابجا میشود، در غیر این صورت به آخرین برگه استفادهشده میرود. برای رفتوبرگشت آسان به یک برگه با یک میانبر کاربرد دارد. توجه کنید که جابجایی تنها میان برگههای درون یک پنجره سیستمعامل کار میکند. برای جزئیات عبارت تطبیق، تطبیق پنجرهها و برگهها <#search-syntax> را ببینید. برای نمونه:
map f1 toggle_tab title:mytab
نمایش موقت نوار عنوان پنجرهها برای امکان مرتبسازی با کشیدن
هنگامی که نوارهای عنوان پنجره پنهان هستند (به دلیل برقرار نشدن شرط window_title_bar_min_windows <#opt-kitty.window_title_bar_min_windows>)، این کنش آنها را موقتاً نمایان میکند تا با کشیدن بتوان چیدمان پنجرهها را تغییر داد. پس از پایان هر عملیات کشیدن، نوارها خودکار دوباره پنهان میشوند. پیش از کشیدن، برای لغو مجدداً فشار دهید.
روی برگههایی که نوارهای عنوان از قبل به طور طبیعی نمایان هستند تأثیری ندارد.
یک کلید به این کنش نگاشت کنید و پیش از کشیدن نوار عنوان پنجره آن را بفشارید.
قالبهای رنگی گستره وسیع (Wide gamut color formats)
نرمافزار kitty از قالبهای رنگی مدرن با گستره وسیع (wide gamut) برای تعیین دقیق رنگها پشتیبانی میکند. از این قالبها میتوان در هر کجای پیکربندی که مقدار رنگ پذیرفته میشود (مانند foreground، background، color0-color255 و غیره) استفاده کرد.
رنگهای OKLCH
فضای رنگی OKLCH یک فضای رنگی یکنواخت از نظر ادراکی است و برای ایجاد تمهای رنگی ایدهآل است. قالب آن به شرح زیر است:
foreground oklch(0.9 0.05 140) color1 oklch(0.7 0.25 25)
پارامترها:
- L (روشنایی - Lightness): بین ۰ تا ۱، که ۰ نشاندهنده سیاه و ۱ نشاندهنده سفید است
- C (فامداری - Chroma): بین ۰ تا تقریباً ۰.۴، بیانگر غلظت رنگ (اشباع) است
- H (فام - Hue): بین ۰ تا ۳۶۰ درجه (۰=قرمز، ۱۲۰=سبز، ۲۴۰=آبی)
مزایا:
- یکنواخت از نظر ادراکی - تغییرات برابر منجر به تفاوتهای ادراکی برابر میشود
- تنظیم روشنایی باعث حفظ فام رنگ میشود (برخلاف HSL)
- استاندارد صنعتی برای طراحی مدرن رنگ
نمونه:
foreground oklch(0.9 0.05 140) color1 oklch(0.65 0.25 29) # قرمز-نارنجی زنده color2 oklch(0.65 0.25 142) # سبز زنده color3 oklch(0.70 0.19 90) # زرد گرم
رنگهای CIE LAB
فضای CIE LAB یک فضای رنگی مستقل از دستگاه است که برای تقریب بینایی انسان طراحی شده است.
قالب آن به شرح زیر است:
background lab(20 5 -10) color4 lab(50 0 -50)
پارامترها:
- L: روشنایی، بین ۰ تا ۱۰۰ (۰ = سیاه، ۱۰۰ = سفید)
- a: سبز (-) تا قرمز (+)، معمولاً ۱۰۰- تا ۱۰۰+
- b: آبی (-) تا زرد (+)، معمولاً ۱۰۰- تا ۱۰۰+
نمونه:
background lab(10 0 0) # خاکستری خنثی بسیار تیره foreground lab(90 0 0) # خاکستری خنثی بسیار روشن color1 lab(50 60 40) # قرمز color4 lab(50 0 -50) # آبی
نگاشت گستره رنگ (Gamut Mapping)
هنگامی که رنگهایی را در قالبهای OKLCH یا CIE LAB خارج از گستره رنگ sRGB مشخص میکنید، kitty به طور خودکار آنها را با استفاده از الگوریتم نگاشت گستره رنگ CSS Color Module Level 4 تبدیل میکند:
- روشنایی و فام اصلی را تا حد امکان حفظ میکند
- فامداری (غلظت رنگ) را تا جایی کاهش میدهد که رنگ در محدوده قابل نمایش قرار گیرد
- از تفاوت رنگ ادراکی (deltaE OK) برای به حداقل رساندن تغییرات قابل مشاهده استفاده میکند
- غلظت رنگ را ضمن حفظ حضور در گستره قابل نمایش، به بیشترین حد ممکن میرساند
این موضوع تضمین میکند که رنگهای با گستره وسیع در نمایشگرهای استاندارد sRGB سازگاری روان داشته باشند و در عین حال در صورت وجود نمایشگرهای با گستره وسیع، از تمام پتانسیل آنها بهره ببرند. این نگاشت به طور خودکار انجام میشود - نیازی به انجام تنظیمات خاصی نیست.
برای نمونه، oklch(0.7 0.4 25) ممکن است برای sRGB بیش از حد غلیظ باشد، اما با حفظ فام و روشنایی ادراکشده، به طور خودکار متناسبسازی میشود.
مراجع (REFERENCES)
- CSS Color Module Level 4 https://www.w3.org/TR/css-color-4
- OKLCH Color Space https://bottosson.github.io/posts/oklab
نویسنده (AUTHOR)
Kovid Goyal
حق نشر (COPYRIGHT)
2026, Kovid Goyal
| July 30, 2026 | 0.48.2 |