| GHOSTTY(1) | Ghostty terminal emulator | GHOSTTY(1) |
نام (NAME)
ghostty - شبیهساز ترمینال چندسکویی و شتابیافته با GPU
توضیحات (DESCRIPTION)
برنامه Ghostty یک شبیهساز ترمینال چندسکویی (cross-platform) و شتابیافته با پردازنده گرافیکی (GPU) است که هدف آن گسترش مرزهای قابلیتهای یک شبیهساز ترمینال از طریق ارائه ویژگیهای مدرن و اختیاری است تا توسعهدهندگان ابزارهای خط فرمان (CLI) بتوانند برنامههای تعاملیتر و غنیتری بسازند.
امروزه گزینههای عالی متعددی برای شبیهساز ترمینال وجود دارد. هدف منحصربهفرد Ghostty داشتن بستری برای آزمایش ویژگیهای مدرن، اختیاری و فراتر از استانداردهای سنتی است تا قابلیتهای برنامههای خط فرمان را ارتقا بخشد. ما قصد داریم در این رده بهترین باشیم و در سایر موارد رقابتی عمل کنیم.
در حین پیگیری این هدف جاهطلبانه، Ghostty یک شبیهساز کاملاً سازگار با استانداردها است که هدفش حفظ سازگاری با تمام پوستهها و نرمافزارهای موجود است. میتوانید از آن به عنوان جایگزینی مستقیم برای شبیهساز ترمینال فعلی خود استفاده کنید.
اقدامات خط فرمان (COMMAND LINE ACTIONS)
- ?[B]?[CB]--version?[B]?[R]
- دستور ?[CR]version?[R] برای نمایش اطلاعات درباره Ghostty استفاده میشود. به صورت ?[CR]+version?[R] یا ?[CR]--version?[R] شناسایی میشود.
- ?[B]?[CB]--help?[B]?[R]
- دستور ?[CR]help?[R] راهنمای عمومی درباره Ghostty را نمایش میدهد. به صورت ?[CR]-h?[R]، ?[CR]--help?[R]، یا مانند سایر اقدامات ?[CR]+help?[R] شناسایی میشود.
همچنین میتوانید ?[CR]--help?[R] یا ?[CR]-h?[R] را به همراه هر اقدامی مانند ?[CR]+list-themes?[R] برای مشاهده راهنمای آن اقدام خاص مشخص کنید.
- ?[B]?[CB]+list-fonts?[B]?[R]
- دستور ?[CR]list-fonts?[R] برای فهرست کردن تمام قلمهای در دسترس برای Ghostty به کار میرود. این دستور از دقیقاً همان سازوکار کشف قلمی استفاده میکند که Ghostty برای یافتن قلمها به کار میبرد.
هنگام اجرا بدون هیچ آرگومانی، این دستور تمام قلمهای در دسترس را مرتبشده بر اساس نام خانواده، سپس نام قلم فهرست میکند. اگر نام خانواده با ?[CR]--family?[R] داده شود، مرتبسازی غیرفعال شده و نتایج بر اساس همان اولویتی که Ghostty برای انتخاب قلم استفاده میکند نمایش داده میشوند.
گزینهها (Flags):
- •
- ?[CR]--bold?[R]: فیلتر کردن نتایج به سبکهای پررنگ (bold) خاص. تضمینی نیست که فقط آن سبکها برگردانده شوند، بلکه فقط اولویتبندی میشوند.
- •
- ?[CR]--italic?[R]: فیلتر کردن نتایج به سبکهای مورب (italic) خاص. تضمینی نیست که فقط آن سبکها برگردانده شوند، بلکه فقط اولویتبندی میشوند.
- •
- ?[CR]--style?[R]: فیلتر کردن نتایج بر اساس رشته سبک اعلامشده توسط قلم. تضمینی نیست که فقط آن سبکها برگردانده شوند، بلکه فقط اولویتبندی میشوند.
- •
- ?[CR]--family?[R]: فیلتر کردن نتایج به یک خانواده قلم خاص. رفتار خانواده کاملاً با مقادیر پیکربندی ?[CR]font-family?[R] شبیهساز Ghostty یکسان است، بنابراین میتوان از آن برای اشکالزدایی دلیل عدم بارگیری قلم مورد نظر استفاده کرد.
- ?[B]?[CB]+list-keybinds?[B]?[R]
- دستور ?[CR]list-keybinds?[R] برای فهرست کردن تمام کلیدهای میانبر در دسترس برای Ghostty به کار میرود.
هنگام اجرا بدون هیچ آرگومانی، کلیدهای میانبر فعلی بارگیریشده توسط فایل پیکربندی را فهرست میکند. اگر فایل پیکربندی یافت نشود یا تغییری در کلیدهای میانبر داده نشده باشد، کلیدهای میانبر پیشفرض پیکربندیشده برای Ghostty را چاپ میکند.
گزینهها (Flags):
- •
- ?[CR]--default?[R]: چاپ تمام کلیدهای میانبر پیشفرض.
- •
- ?[CR]--docs?[R]: در حال حاضر کاری انجام نمیدهد؛ برای چاپ مستندات مربوط به اقدام متصل به کلید میانبر در نظر گرفته شده است.
- •
- ?[CR]--plain?[R]: غیرفعال کردن قالببندی و تبدیل خروجی به قالبی سازگارتر با ابزارهای یونیکس. هنگامی که خروجی به TTY چاپ نمیشود، این حالت پیشفرض است.
- ?[B]?[CB]+list-themes?[B]?[R]
- دستور ?[CR]list-themes?[R] برای پیشنمایش یا فهرست کردن تمام تمهای موجود برای Ghostty استفاده میشود.
اگر این دستور از یک TTY اجرا شود، یک پیشنمایش متنی (TUI) از تمها نمایش داده میشود. در هنگام پیشنمایش، کلید ?[CR]F1?[R] صفحه راهنما را نمایش میدهد و کلید ?[CR]ESC?[R] از پیشنمایش خارج میشود. سایر کلیدهایی که برای پیمایش پیشنمایش استفاده میشوند در صفحه راهنما فهرست شدهاند.
اگر این دستور از TTY اجرا نشود یا خروجی به دستور دیگری هدایت (pipe) شود، فهرستی ساده از نام تمها روی صفحه چاپ میشود. یک فهرست متنی ساده میتواند با استفاده از گزینه خط فرمان ?[CR]--plain?[R] اجبار شود.
دو دایرکتوری مختلف برای تمها جستجو میشوند.
دایرکتوری اول، زیردایرکتوری ?[CR]themes?[R] در دایرکتوری پیکربندی Ghostty شما است. این مسیر ?[CR]/ghostty/themes?[R] یا ?[CR]~/.config/ghostty/themes?[R] است.
دایرکتوری دوم، زیردایرکتوری ?[CR]themes?[R] در دایرکتوری منابع Ghostty است. شبیهساز Ghostty با تمهای متعددی همراه است که در این دایرکتوری نصب میشوند. در macOS، این دایرکتوری ?[CR]Ghostty.app/Contents/Resources/ghostty/themes?[R] است. در لینوکس، این دایرکتوری ?[CR]share/ghostty/themes?[R] است (هر جایی که دایرکتوری share شبیهساز Ghostty را نصب کرده باشید). اگر Ghostty را از سورس اجرا میکنید، این مسیر ?[CR]zig-out/share/ghostty/themes?[R] است.
همچنین میتوانید متغیر محیطی ?[CR]GHOSTTY_RESOURCES_DIR?[R] را برای اشاره به دایرکتوری منابع تنظیم کنید.
گزینهها (Flags):
- •
- ?[CR]--path?[R]: نمایش مسیر کامل فایل تم.
- •
- ?[CR]--plain?[R]: اجبار به فهرستبندی متنی ساده تمها.
- •
- ?[CR]--color?[R]: تعیین طرح رنگ تمهای گنجاندهشده در فهرست. میتواند ?[CR]dark?[R]، ?[CR]light?[R] یا ?[CR]all?[R] باشد. مقدار پیشفرض ?[CR]all?[R] است.
- ?[B]?[CB]+list-colors?[B]?[R]
- دستور ?[CR]list-colors?[R] برای فهرست کردن تمام رنگهای نامگذاریشده RGB در Ghostty به کار میرود.
گزینهها (Flags):
- •
- ?[CR]--plain?[R]: قالببندی را غیرفعال کرده و خروجی را برای ابزارهای یونیکس مناسبتر میکند. در صورت عدم چاپ در TTY، این حالت پیشفرض است.
- ?[B]?[CB]+list-actions?[B]?[R]
- دستور ?[CR]list-actions?[R] برای فهرست کردن تمام اقدامات کلید میانبر در دسترس برای Ghostty به کار میرود. اینها متمایز از اقدامات خط فرمان هستند که میتوانند از طریق ?[CR]+help?[R] فهرست شوند.
گزینهها (Flags):
- •
- ?[CR]--docs?[R]: چاپ مستندات مربوط به هر اقدام.
- ?[B]?[CB]+ssh-cache?[B]?[R]
- مدیریت حافظه پنهان terminfo پروتکل SSH برای راهاندازی خودکار میزبان راه دور.
هنگامی که یکپارچهسازی SSH با ?[CR]shell-integration-features = ssh-terminfo?[R] فعال باشد، Ghostty به طور خودکار terminfo خود را روی میزبانهای راه دور نصب میکند. این دستور حافظه پنهان نصبهای موفق را مدیریت میکند تا از بارگذاریهای تکراری جلوگیری شود.
این حافظه پنهان نامهای میزبان (یا ترکیبهای user@hostname) را به همراه برچسبهای زمانی ذخیره میکند. ورودیهای قدیمیتر از دوره انقضا به طور خودکار در حین عملیات حافظه پنهان حذف میشوند. بهطور پیشفرض، ورودیها هرگز منقضی نمیشوند.
تنها یکی از گزینههای ?[CR]--clear?[R]، ?[CR]--add?[R]، ?[CR]--remove?[R] یا ?[CR]--host?[R] میتواند مشخص شود. در صورت مشخص شدن چند گزینه، یکی از اقدامات اجرا خواهد شد اما تضمینی نیست کدام یک. این کار کاملاً ناامن است، بنابراین باید اقدامات متعدد را به دستورات جداگانه تقسیم کنید.
مثالها:
ghostty +ssh-cache # فهرست تمام میزبانهای ذخیرهشده
ghostty +ssh-cache --m # بررسی ذخیره بودن میزبان در حافظه پنهان
ghostty +ssh-cache --?dd=example.com # افزودن دستی میزبان به حافظه پنهان
ghostty +ssh-cache --?dd=user@example.com # افزودن ترکیب کاربر/میزبان
ghostty +ssh-cache --emove=example.com # حذف میزبان از حافظه پنهان
ghostty +ssh-cache --lear # پاکسازی کل حافظه پنهان
ghostty +ssh-cache --\xpire-days=30 # تنظیم دوره انقضای سفارشی
- ?[B]?[CB]+edit-config?[B]?[R]
- دستور ?[CR]edit-config?[R] فایل پیکربندی Ghostty را در ویرایشگر مشخصشده توسط متغیرهای محیطی ?[CR]?[R] یا ?[CR]?[R] باز میکند.
مهم: این دستور پس از ویرایش، پیکربندی را مجدداً بارگیری نمیکند. باید پیکربندی را به صورت دستی از منوی برنامه، کلید میانبر پیکربندیشده یا با راهاندازی مجدد Ghostty بارگیری مجدد کنید. ما قصد داریم در آینده بازبارگیری خودکار را اضافه کنیم، اما Ghostty هنوز قادر به انجام آن نیست.
مسیر فایلی که باز میشود فایل پیکربندی پیشفرض کاربر است که معمولاً در ?[CR]/ghostty/config.ghostty?[R] قرار دارد. در macOS، این فایل ممکن است در ?[CR]~/Library/Application Support/com.mitchellh.ghostty/config.ghostty?[R] نیز قرار داشته باشد. در macOS، هر مسیری که وجود داشته و غیرخالی باشد اولویت دارد، و در صورت خالی بودن هر دو، دایرکتوری Application Support اولویت دارد.
این دستور در صورت تنظیم بودن هر دو متغیر، متغیر محیطی ?[CR]?[R] را بر ?[CR]?[R] ترجیح میدهد. اگر هیچکدام تنظیم نشده باشند، خطایی چاپ کرده و خارج میشود.
- ?[B]?[CB]+show-config?[B]?[R]
- دستور ?[CR]show-config?[R] پیکربندی فعلی را در قالب معتبر فایل پیکربندی Ghostty نمایش میدهد.
هنگام اجرا بدون هیچ آرگومانی، پیکربندی فعلی را که با پیکربندی پیشفرض تفاوت دارد خروجی میدهد. اگر از پیکربندی پیشفرض استفاده میکنید، این دستور چیزی خروجی نخواهد داد.
اگر کاربر جدیدی هستید و میخواهید تمام گزینههای موجود را همراه با مستندات ببینید، دستور زیر را اجرا کنید:
?[CR]ghostty +show-config --default --docs?[R]
خروجی ترتیب خاصی ندارد، اما ترتیب باید بین اجراهای مختلف یکسان باشد. تضمین نمیشود که خروجی دقیقاً مطابق با فایلهای پیکربندی ورودی باشد، اما همان رفتار را به دنبال خواهد داشت. توضیحات (کامنتها)، فاصلههای خالی و سایر قالببندیها از فایلهای پیکربندی کاربر حفظ نمیشوند.
گزینهها (Flags):
- •
- ?[CR]--default?[R]: نمایش پیکربندی پیشفرض به جای بارگیری پیکربندی کاربر.
- •
- ?[CR]--changes-only?[R]: تنها نمایش گزینههایی که نسبت به مقدار پیشفرض تغییر یافتهاند. در صورت تعیین ?[CR]--default?[R] بیاثر است.
- •
- ?[CR]--docs?[R]: چاپ مستندات بالای هر گزینه به صورت کامنت. این گزینه بسیار پرحجم است اما برای یادگیری گزینههای موجود، به خصوص همراه با ?[CR]--default?[R] بسیار مفید است.
- ?[B]?[CB]+validate-config?[B]?[R]
- دستور ?[CR]validate-config?[R] برای اعتبارسنجی فایل پیکربندی Ghostty به کار میرود.
هنگام اجرا بدون هیچ آرگومانی، پیکربندی را از مکان پیشفرض بارگیری میکند.
گزینهها (Flags):
- •
- ?[CR]--config-file?[R]: میتواند برای اعتبارسنجی یک فایل پیکربندی هدف خاص در مکانی غیرپیشفرض ارسال شود.
- ?[B]?[CB]+show-face?[B]?[R]
- دستور ?[CR]show-face?[R] نشان میدهد که Ghostty از چه فونتی برای رندر کردن یک نقطه کد (codepoint) خاص استفاده خواهد کرد. توجه داشته باشید که این دستور خوشهبندی گرافیم (grapheme clustering) یا سایر ویژگیهای یونیکد را که ممکن است نمایش یک نقطه کد را تغییر دهند در نظر نمیگیرد، بنابراین ممکن است فونت متفاوتی نسبت به آنچه Ghostty برای رندر یک نقطه کد در جلسه ترمینال استفاده میکند نشان دهد.
گزینهها (Flags):
- •
- ?[CR]--cp?[R]: یافتن فونت برای یک نقطه کد منفرد. نقطه کد میتواند به صورت دهدهی (?[CR]--cp=65?[R])، شانزدهشانزدهی (?[CR]--cp=0x41?[R])، هشتهشتی (?[CR]--cp=0o101?[R]) یا دودویی (?[CR]--cp=0b1000001?[R]) مشخص شود.
- •
- ?[CR]--string?[R]: یافتن فونت برای تمام نقاط کد در یک رشته. رشته باید یک دنباله معتبر UTF-8 باشد.
- •
- ?[CR]--style?[R]: جستجو برای یک سبک خاص. گزینههای معتبر شامل ?[CR]regular?[R]، ?[CR]bold?[R]، ?[CR]italic?[R] و ?[CR]bold_italic?[R] هستند.
- •
- ?[CR]--presentation?[R]: در صورت تنظیم، جستجو برای یک سبک نمایش خاص را اجبار میکند. گزینههای معتبر ?[CR]text?[R] و ?[CR]emoji?[R] هستند. در صورت عدم تنظیم، سبک نمایش نقطه کد از استاندارد یونیکد استنباط میشود.
- ?[B]?[CB]+crash-report?[B]?[R]
- دستور ?[CR]crash-report?[R] برای بررسی و ارسال گزارشهای خرابی (crash reports) به کار میرود.
هنگام اجرا بدون هیچ آرگومانی، گزارشهای خرابی موجود را فهرست میکند.
این دستور در حال حاضر فقط از فهرست کردن گزارشهای خرابی پشتیبانی میکند. مشاهده و ارسال گزارشهای خرابی هنوز پیادهسازی نشده است و در آینده اضافه خواهد شد.
- ?[B]?[CB]+boo?[B]?[R]
- دستور ?[CR]boo?[R] برای نمایش پویانمایی وبسایت Ghostty در ترمینال استفاده میشود.
- ?[B]?[CB]+new-window?[B]?[R]
- دستور ?[CR]new-window?[R] از ارتباط بینفرایندی (IPC) بومی پلتفرم برای باز کردن یک پنجره جدید در یک نمونه در حال اجرای Ghostty استفاده میکند.
اگر فلگ ?[CR]--class?[R] تنظیم نشده باشد، دستور ?[CR]new-window?[R] بر اساس اینکه ابزار خط فرمان Ghostty با چه بهینهسازیهایی کامپایل شده است، تلاش میکند به یک نمونه در حال اجرای Ghostty متصل شود. در غیر این صورت، دستور تلاش میکند با یک نمونه در حال اجرای Ghostty ارتباط برقرار کند که با همان ?[CR]class?[R] دادهشده در خط فرمان پیکربندی شده باشد.
تمام آرگومانهای پس از آرگومان ?[CR]+new-window?[R] (به جز فلگ ?[CR]--class?[R]) به نمونه راه دور Ghostty ارسال شده و به عنوان گزینههای خط فرمان پردازش میشوند. این فلگها برخی تنظیمات را هنگام ایجاد اولین سطح (surface) در پنجره جدید بازنویسی میکنند. در حال حاضر، فقط ?[CR]--working-directory?[R]، ?[CR]--command?[R] و ?[CR]--title?[R] پشتیبانی میشوند. همچنین ?[CR]-e?[R] به عنوان نام مستعار برای ?[CR]--command?[R] عمل میکند، با این تفاوت که اگر ?[CR]-e?[R] در خط فرمان یافت شود، تمام آرگومانهای بعدی بخشی از دستور خواهند شد و آرگومانهای بعدی دیگر برای تنظیمات پیکربندی پردازش نمیشوند.
اگر ?[CR]--working-directory?[R] در خط فرمان یافت شود و یک مسیر نسبی باشد (یعنی با ?[CR]/?[R] شروع نشود)، به یک مسیر مطلق نسبت به دایرکتوری کاری فعلی که دستور ?[CR]ghostty +new-window?[R] از آن اجرا شده است تبدیل میشود. پیشوندهای ?[CR]~/?[R] نیز به دایرکتوری خانگی کاربر گسترش مییابند.
اگر ?[CR]--working-directory?[R] در خط فرمان یافت ?[I]نشود?[R]، دایرکتوری کاری که دستور ?[CR]ghostty +new-window?[R] از آن اجرا شده است به Ghostty منتقل میشود.
کتابخانه GTK از شناسه برنامه (application ID) برای شناسایی نمونههای برنامهها استفاده میکند. اگر Ghostty با بهینهسازیهای نسخه نهایی (release) کامپایل شده باشد، شناسه پیشفرض برنامه ?[CR]com.mitchellh.ghostty?[R] خواهد بود. اگر Ghostty با بهینهسازیهای اشکالزدایی (debug) کامپایل شده باشد، شناسه پیشفرض ?[CR]com.mitchellh.ghostty-debug?[R] خواهد بود. ورودی پیکربندی ?[CR]class?[R] میتواند برای تنظیم یک شناسه برنامه سفارشی استفاده شود. نام کلاس باید الزامات تعریفشده در مستندات GTK را رعایت کند یا نادیده گرفته خواهد شد و Ghostty از مقدار پیشفرض تعریفشده در بالا استفاده خواهد کرد.
در GTK، فعالسازی D-Bus باید به درستی پیکربندی شود. برای اینکه این دستور پنجره جدیدی باز کند نیازی به در حال اجرا بودن Ghostty نیست، که این ویژگی آن را برای اتصال به کلیدها در مدیر پنجره شما مناسب میسازد (در صورتی که روشهای دیگر برای پیکربندی میانبرهای سراسری در دسترس نباشند). اگر Ghostty از قبل در حال اجرا نباشد، D-Bus راهاندازی یک نمونه جدید از Ghostty را بر عهده خواهد گرفت. برای اطلاعات در مورد پیکربندی صحیح فعالسازی D-Bus به وبسایت Ghostty مراجعه کنید.
تنها در GTK پشتیبانی میشود.
گزینهها (Flags):
- •
- ?[CR]--class=<class>?[R]: در صورت تنظیم، باز کردن یک پنجره جدید در یک نمونه سفارشی از Ghostty. کلاس باید یک شناسه برنامه معتبر GTK باشد.
- •
- ?[CR]--command?[R]: دستوری که در اولین صفحه (surface) پنجره جدید اجرا خواهد شد.
- •
- ?[CR]--working-directory=<directory>?[R]: دایرکتوری کاری برای ارسال به Ghostty.
- •
- ?[CR]--title?[R]: عنوان سفارشی که عنوان اولین صفحه در پنجره جدید را بازنویسی میکند. عنوان بازنویسیشده بعداً میتواند ویرایش یا حذف شود.
- •
- ?[CR]-e?[R]: تمام آرگومانهای بعد از این گزینه به عنوان دستور برای اجرا در اولین صفحه پنجره جدید به جای دستور پیشفرض تفسیر خواهند شد.
موجود از نسخه: 1.2.0
گزینههای پیکربندی (CONFIGURATION OPTIONS)
- --language
- تنظیم زبان رابط کاربری گرافیکی Ghostty به زبانی غیر از زبان پیشفرض سیستم. برای مثال:
-
language = de
رشتههای متنی رابط کاربری گرافیکی Ghostty را به جای پیشفرض سیستم، به زبان آلمانی اجبار میکند.
این گزینه بر زبان برنامههای اجراشده درون Ghostty تاثیری ندارد. آن برنامهها به استفاده از زبان پیشفرض سیستم ادامه خواهند داد. همچنین عناصر غیر گرافیکی زیادی در Ghostty وجود دارند که ترجمه نشدهاند - این تنظیم تاثیری بر آنها نخواهد داشت.
هشدار: این تنظیم در زمان اجرا قابل بارگیری مجدد نیست. برای تغییر زبان باید Ghostty را به طور کامل راهاندازی مجدد کنید.
فقط در GTK. موجود از نسخه 1.3.0 به بعد.
- --font-family
- خانواده قلمهای مورد استفاده.
میتوانید فهرست مقادیر معتبر را با استفاده از خط فرمان تولید کنید:
-
ghostty +list-fonts
این پیکربندی میتواند چندین بار تکرار شود تا قلمهای جایگزین (fallback) ترجیحی در مواقعی که نقطه کد درخواستی در قلم اصلی موجود نیست، مشخص شوند. این قابلیت بهویژه برای زبانهای متعدد، قلمهای نمادین و غیره مفید است.
نکات اختصاصی درباره ایموجی: در macOS، شبیهساز Ghostty بهطور پیشفرض همواره از Apple Color Emoji و در لینوکس همواره از Noto Emoji استفاده میکند. میتوانید این رفتار را با تعیین خانواده قلمی که حاوی گلیفهای ایموجی است در اینجا لغو کنید.
نیازی به تعیین صریح سبکهای خاص (توپر/bold، مورب/italic، توپر مورب/bold italic) نیست. اگر سبکی تعیین نشود، قلم سبک معمولی (font-family) برای یافتن گونههای سبکشناسی جستجو خواهد شد. اگر گونه سبکشناسی یافت نشود، Ghostty از سبک معمولی استفاده خواهد کرد. این کار از بازگشت به یک خانواده قلم متفاوت صرفاً برای به دست آوردن سبکی مانند bold جلوگیری میکند. این مورد همچنین زمانی اعمال میشود که صراحتاً خانواده قلمی را برای یک سبک تعیین کنید. برای مثال، اگر font-family-bold = FooBar را تنظیم کنید و “FooBar” یافت نشود، Ghostty از هر قلمی که برای font-family تعیین شده برای سبک bold استفاده میکند.
در نهایت، اگر برخی سبکها پشتیبانی نشوند، ممکن است به صورت مصنوعی (synthesized) ساخته شوند. به عنوان مثال، اگر یک قلم فاقد سبک italic باشد و هیچ قلم italic جایگزینی نیز مشخص نشده باشد، Ghostty با اعمال شیب روی سبک معمولی، یک سبک italic مصنوعی تولید میکند. اگر میخواهید این سبکهای مصنوعی را غیرفعال کنید، میتوانید از پیکربندیهای font-style طبق مستندات زیر استفاده نمایید.
میتوانید سبکها را با استفاده از مجموعه پیکربندیهای font-style به طور کامل غیرفعال کنید. برای اطلاعات بیشتر مستندات font-style را ببینید.
اگر میخواهید به جای افزودن یک قلم جایگزین، مقدار قبلی تنظیمشده را بازنویسی کنید، مقدار را به عنوان "" (رشته خالی) تعیین نمایید تا فهرست بازنشانی شود و سپس مقادیر جدید را تنظیم کنید. برای مثال:
-
font-family = "" font-family = "My Favorite Font"
تنظیم هر یک از این موارد به عنوان آرگومانهای خط فرمان، مقادیر تنظیمشده در فایلهای کانفیگ را بهطور خودکار پاک میکند، بنابراین نیازی نیست قبل از تعیین مقدار جدید، --font-family="" را مشخص کنید. تنها در صورتی نیاز به تعیین این مورد در فایلهای کانفیگ دارید که بخواهید مقادیر قبلی فایل کانفیگ را پاک کنید، یا در خط فرمان اگر بخواهید مقادیر خط فرمان را پاک نمایید.
font-family-bold
font-family-italic
font-family-bold-italic
- --font-style
- سبک نامگذاریشده قلم برای استفاده در هر یک از سبکهای درخواستی قلم ترمینال. این گزینه سبک را بر اساس رشته سبک اعلامشده توسط خود قلم جستجو میکند. برای مثال، “Iosevka Heavy” دارای سبک “Heavy” است.
همچنین میتوانید از این فیلدها برای غیرفعال کردن کامل یک سبک قلم استفاده کنید. اگر مقدار پیکربندی زیر را برابر با false قرار دهید، آن سبک قلم غیرفعال خواهد شد. اگر برنامه در حال اجرا در ترمینال یک سبک قلم غیرفعال را درخواست کند، سبک معمولی قلم به جای آن استفاده میشود.
این موارد تنها در صورتی معتبر هستند که font-family متناظر با آنها نیز مشخص شده باشد. اگر هیچ font-family مشخص نشده باشد، font-style نادیده گرفته میشود مگر اینکه در حال غیرفعال کردن سبک قلم باشید.
font-style-bold
font-style-italic
font-style-bold-italic
- --font-synthetic-style
- کنترل اینکه آیا Ghostty در صورت عدم دسترسی به سبک درخواستی در font-family مشخصشده، باید آن سبک را به صورت مصنوعی تولید کند یا خیر.
شبیهساز Ghostty میتواند در صورتی که قلم فاقد سبک خاصی باشد، سبکهای bold، italic و bold italic را به طور مصنوعی بسازد. برای bold، این کار با رسم یک خط پیرامونی (outline) با ضخامت متغیر در اطراف گلیف انجام میشود. برای italic، این کار با اعمال شیب به گلیف صورت میگیرد. برای bold italic، هر دوی این موارد اعمال میشوند.
سبکهای مصنوعی بینقص نیستند و معمولاً به خوبی قلمی که ذاتاً آن سبک را دارد به نظر نمیرسند. با این حال، برای نمایش متن سبکدار زمانی که قلم فاقد آن سبک است مفید هستند.
این گزینه را روی “false” یا “true” تنظیم کنید تا سبکهای مصنوعی به طور کامل غیرفعال یا فعال شوند. میتوانید سبکهای خاصی را با استفاده از “no-bold”، “no-italic” و “no-bold-italic” غیرفعال کنید. میتوانید چندین سبک را با جدا کردن آنها با کاما غیرفعال نمایید؛ مانند “no-bold,no-italic”.
کلیدهای سبک موجود عبارتند از: bold، italic و bold-italic.
اگر سبکهای مصنوعی غیرفعال باشند، در صورت عدم دسترسی به سبک درخواستی، از سبک معمولی استفاده خواهد شد. اگر قلم سبک درخواستی را داشته باشد، از همان قلم به شکل دستنخورده استفاده میشود چون سبک مصنوعی نیست.
هشدار: یک اشتباه متداول، غیرفعال کردن bold یا italic بدون غیرفعال کردن bold-italic است. غیرفعال کردن تنها bold یا italic هیچکدام را در سبک bold-italic غیرفعال نمیکند. اگر میخواهید bold-italic را غیرفعال کنید، باید صراحتاً آن را غیرفعال نمایید. نمیتوانید bold-italic را به صورت جزئی غیرفعال کنید.
بهطور پیشفرض، سبکهای مصنوعی فعال هستند.
- --font-feature
- اعمال یک ویژگی قلم (font feature). برای فعالسازی چندین ویژگی قلم میتوانید این گزینه را چندین بار تکرار کنید یا از فهرستی از تنظیمات ویژگی که با کاما جدا شدهاند استفاده نمایید.
نحو تنظیمات ویژگی به شرح زیر است، که در آن feat یک ویژگی است:
- •
- فعالسازی ویژگیها با مواردی مانند: feat، +feat، feat on، feat=1.
- •
- غیرفعالسازی ویژگیها با مواردی مانند: -feat، feat off، feat=0.
- •
- تنظیم مقدار یک ویژگی با مواردی مانند: feat=2، feat = 3، feat 4.
- •
- نامهای ویژگی را میتوان در علامت نقلقول قرار داد، به این معنی که این پیکربندی از نظر نحوی با ویژگی CSS با نام font-feature-settings سازگار است.
نحو نسبتاً انعطافپذیر است، اما تنظیمات نامعتبر بدون پیام خطا نادیده گرفته میشوند.
ویژگی قلم روی تمام قلمهای رندرشده توسط Ghostty اعمال خواهد شد. در بهبودهای آینده امکان هدف قرار دادن قلمهای خاص فراهم خواهد شد.
برای غیرفعال کردن خطوصلهای برنامهنویسی (ligatures)، از -calt استفاده کنید زیرا این نام ویژگی معمول برای خطوصلهای برنامهنویسی است. برای بررسی اینکه قلم شما چه ویژگیهایی دارد و آنها چه میکنند، از یک ابزار بازرسی قلم مانند fontdrop.infoاستفاده کنید.
برای غیرفعال کردن کلی بیشتر خطوصلها، از -calt, -liga, -dlig استفاده کنید.
- --font-size
- اندازه قلم بر حسب پوینت. این مقدار میتواند عدد غیرصحیح (اعشاری) باشد و نزدیکترین اندازه پیکسل صحیح انتخاب خواهد شد. اگر نمایشگری با تراکم پیکسلی بالا (high DPI) دارید که در آن 1pt = 2px است، میتوانید با تعیین نیمپوینت به اندازه پیکسلی فرد دست یابید.
برای مثال، 13.5pt @ 2px/pt = 27px
تغییر این پیکربندی در زمان اجرا فقط ترمینالهای موجودی را تحت تأثیر قرار میدهد که اندازه قلم خود را به صورت دستی تغییر نداده باشند (مثلاً اندازه قلم را کم یا زیاد نکرده باشند). ترمینالهایی که اندازه قلم خود را به صورت دستی تنظیم کردهاند، اندازه تنظیمشده دستی را حفظ خواهند کرد. در غیر این صورت، اندازه قلم ترمینالهای موجود هنگام بارگیری مجدد بهروزرسانی خواهد شد.
در لینوکس با GTK، اندازه قلم با توجه به هر دو ضریب مقیاسبندی سراسری نمایشگر و متنی مقیاسبندی میشود که اغلب توسط محیط رومیزی شما مدیریت میشوند (مانند مقیاس نمایشگر و تنظیمات متن درشت در GNOME).
- --font-variation
- پیکربندی تکرارپذیر برای تنظیم یک یا چند مقدار تغییر شکل قلم برای یک قلم متغیر (variable font). قلم متغیر یک قلم واحد است که معمولاً نام فایل آن با -VF.ttf یا -VF.otf خاتمه مییابد و حاوی یک یا چند محور قابل تنظیم برای مواردی همچون وزن، شیب و غیره است. همه قلمها از تغییرات پشتیبانی نمیکنند؛ فقط قلمهایی کار میکنند که صراحتاً متغیر بودن خود را اعلام کرده باشند.
قالب این تنظیم به صورت id=value است که در آن id شناسه محور است. شناسه محور همیشه یک رشته ۴ کاراکتری است، مانند wght. برای دریافت فهرست محورهای پشتیبانیشده، به مستندات قلم خود مراجعه کرده یا از ابزار بازرسی قلم استفاده کنید.
شناسهها و مقادیر نامعتبر معمولاً نادیده گرفته میشوند. برای مثال، اگر یک قلم فقط از وزنهای بین 100 تا 700 پشتیبانی کند، تنظیم wght=800 کاری انجام نمیدهد (به 700 محدود نخواهد شد). برای دیدن مقادیر پشتیبانیشده باید به مستندات قلم خود مراجعه کنید.
محورهای متداول عبارتند از: wght (وزن)، slnt (شیب)، ital (مورب)، opsz (اندازه بصری)، wdth (عرض)، GRAD (گرادیان) و غیره.
font-variation-bold
font-variation-italic
font-variation-bold-italic
- --font-codepoint-map
- اجبار یک نقطه کد یونیکد یا محدودهای از آنها برای نگاشت به یک قلم نامگذاریشده خاص. این قابلیت در صورتی مفید است که بخواهید از نمادهای خاص پشتیبانی کنید یا گلیفهای خاصی را به کار ببرید که برای قلم مشخص شما بهتر رندر میشوند.
نحو به صورت codepoint=fontname است که در آن codepoint میتواند یک نقطه کد تکی یا یک محدوده باشد. نقاط کد باید به عنوان مقادیر هگزادسیمال کامل یونیکد، مانند U+ABCD مشخص شوند. محدودههای نقاط کد به صورت U+ABCD-U+DEFG مشخص میگردند. میتوانید چندین محدوده را برای یک قلم با کاما جدا کنید، مانند U+ABCD-U+DEFG,U+1234-U+5678=fontname. نام قلم همان مقداری است که برای font-family استفاده میکنید.
این پیکربندی میتواند چندین بار تکرار شود تا چندین نگاشت نقطه کد تعیین گردد.
تغییر این پیکربندی در زمان اجرا فقط ترمینالهای جدید، یعنی پنجرهها، زبانهها و غیره را تحت تأثیر قرار میدهد.
- --clipboard-codepoint-map
- نگاشت نقاط کد خاص یونیکد به مقادیر جایگزین هنگام کپی کردن متن در کلیپبورد.
این پیکربندی به شما امکان میدهد هنگام کپی کردن محتوای ترمینال در کلیپبورد، کاراکترهای خاص یونیکد را با کاراکترها یا رشتههای دیگر جایگزین کنید. این قابلیت برای تبدیل نمادهای خاص ترمینال به کاراکترهای سازگارتر برای چسباندن (paste) در سایر برنامهها مفید است.
نحو مشابه font-codepoint-map است: - نقطه کد تکی: U+1234=U+ABCD یا U+1234=replacement_text - محدوده نقطه کد: U+1234-U+5678=U+ABCD
مثالها: - clipboard-codepoint-map = U+2500=U+002D (خط افقی جعبهچینی → خط تیره) - clipboard-codepoint-map = U+2502=U+007C (خط عمودی جعبهچینی → خط لوله) - clipboard-codepoint-map = U+03A3=SUM (سیگمای یونانی → “SUM”)
این پیکربندی میتواند چندین بار تکرار شود تا چندین نگاشت تعیین گردد. در محدودههای همپوشان، ورودیهای بعدی نسبت به ورودیهای قبلی اولویت دارند.
نکته: این تنظیم فقط برای عملیات کپی متن اعمال میشود، نه کپی نشانی وب (URL).
- --font-thicken
- رسم قلمها با خطوط ضخیمتر، در صورت پشتیبانی. این قابلیت در حال حاضر فقط در macOS پشتیبانی میشود.
- --font-thicken-strength
- میزان ضخیمسازی هنگامی که font-thicken فعال است.
مقادیر معتبر اعداد صحیح بین 0 و 255 هستند. مقدار 0 به معنی عدم ضخیمسازی نیست، بلکه سبکترین ضخیمسازی موجود را اعمال میکند.
هنگامی که font-thicken روی false تنظیم شده باشد، هیچ تاثیری ندارد.
این قابلیت در حال حاضر فقط در macOS پشتیبانی میشود.
- --font-shaping-break
- محلهای شکستن شکلدهی قلم به چندین بخش متوالی (run).
یک “بخش” (run) بخشی پیوسته از متن است که همراه با هم شکلدهی میشود. “شکلدهی” (Shaping) فرآیند تبدیل متن (نقاط کد) به گلیفها (کاراکترهای قابل رندر) است. این همان فرآیندی است که خطوصلها (ligatures) و موارد دیگر از طریق آن تشکیل میشوند. به عنوان مثال، اگر یک قلم برنامهنویسی “!=” را به یک گلیف واحد تبدیل میکند، باید “!” و “=” را در کنار یکدیگر در یک run ببیند. هنگامی که یک run شکسته میشود، متن به صورت جداگانه شکلدهی میشود. در ادامه مثال ما، اگر “!” در انتهای یک run و “=” در ابتدای run بعدی باشد، خطوصل تشکیل نخواهد شد.
شبیهساز Ghostty برای بهبود خوانایی یا استفادهپذیری، runها را در نقاط خاصی میشکند. به عنوان مثال، Ghostty بهطور پیشفرض runها را در زیر مکاننما میشکند تا ویرایش متن بتواند کاراکترهای فردی را به جای خطوصل ببیند. این پیکربندی به شما اجازه میدهد این رفتار را تنظیم کنید.
برای تنظیم چندین گزینه، مقادیر را با کاما ترکیب کنید. پیشوند “no-” را به یک گزینه اضافه کنید تا غیرفعال شود. فعالسازی و غیرفعالسازی گزینهها میتواند به طور همزمان انجام شود.
گزینههای موجود:
- •
- cursor - شکستن runها در زیر مکاننما.
موجود از نسخه: 1.2.0 به بعد.
- --alpha-blending
- فضای رنگی مورد استفاده هنگام انجام ترکیب آلفا (شفافیت).
این گزینه ظاهر متن و هرگونه تصویر دارای شفافیت را تحت تأثیر قرار میدهد. علاوه بر این، شیدرهای سفارشی رنگها را در فضای پیکربندیشده دریافت خواهند کرد.
در macOS مقدار پیشفرض native است و در تمام پلتفرمهای دیگر مقدار پیشفرض linear-corrected میباشد.
مقادیر معتبر:
- •
- native - انجام ترکیب آلفا در فضای رنگی بومی سیستمعامل. در macOS این معادل Display P3 و در لینوکس معادل sRGB است.
- •
- linear - انجام ترکیب آلفا در فضای خطی. این حالت مصنوعات تاریککننده اطراف لبههای متن را که هنگام استفاده از ترکیب رنگهای خاص (مانند قرمز / سبز) بسیار قابل مشاهده است، حذف میکند، اما متن تیره را بسیار نازکتر از حالت عادی و متن روشن را بسیار ضخیمتر نشان میدهد. این ویژگی گاهی به عنوان “تصحیح گاما” نیز شناخته میشود.
- •
- linear-corrected - همانند linear است، اما یک مرحله تصحیح برای متن اعمال میشود که آن را تقریباً یا کاملاً شبیه به native اما بدون هیچیک از مصنوعات تاریککننده نمایش میدهد.
موجود از نسخه: 1.1.0 به بعد.
- --adjust-cell-width
- تمام این پیکربندیها معیارهای مختلف تعیینشده توسط قلم را تنظیم میکنند. مقادیر میتوانند اعداد صحیح (1، -1، و غیره) یا درصد (20%، -15%، و غیره) باشند. در هر حالت، مقادیر نشاندهنده مقدار تغییر نسبت به مقدار اولیه هستند.
برای مثال، مقدار 1 مقدار را 1 واحد افزایش میدهد؛ آن را دقیقاً برابر با 1 قرار نمیدهد. مقدار 20% مقدار را 20 درصد افزایش میدهد، و به همین ترتیب.
اعتبارسنجی اندکی روی این مقادیر وجود دارد، بنابراین مقادیر نادرست (مانند -100%) میتوانند ترمینال را غیرقابل استفاده کنند. با احتیاط و دقت استفاده کنید.
برخی مقادیر به حداقل یا حداکثر مقادیر مجاز محدود (clamped) میشوند. این موضوع ممکن است باعث شود به نظر برسد برخی مقادیر نادیده گرفته شدهاند. به عنوان مثال، بسیاری از تنظیمات *-thickness نمیتوانند کمتر از 1px باشند.
گزینه adjust-cell-height رفتارهای دیگری دارد که باید شرح داده شوند:
- •
- قلم به صورت عمودی در مرکز سلول تراز خواهد شد.
- •
- مکاننما هماندازه با قلم باقی میماند، اما میتواند به طور جداگانه با adjust-cursor-height تنظیم شود.
- •
- گلیفهای Powerline به همراه ارتفاع سلول تنظیم میشوند تا مواردی مانند خطوط وضعیت همچنان تراز به نظر برسند.
adjust-cell-height
- --adjust-font-baseline
- فاصله به پیکسل یا تنظیم درصدی از پایین سلول تا خط مبنای متن (baseline). افزایش این مقدار خط مبنا را به سمت بالا و کاهش آن خط مبنا را به سمت پایین حرکت میدهد. توضیحات مربوط به تنظیمات در adjust-cell-width را مشاهده کنید.
- --adjust-underline-position
- فاصله به پیکسل یا تنظیم درصدی از بالای سلول تا بالای زیرخط (underline). افزایش این مقدار زیرخط را به سمت پایین و کاهش آن زیرخط را به سمت بالا حرکت میدهد. توضیحات مربوط به تنظیمات در adjust-cell-width را مشاهده کنید.
- --adjust-underline-thickness
- ضخامت زیرخط بر حسب پیکسل. توضیحات مربوط به تنظیمات در adjust-cell-width را مشاهده کنید.
- --adjust-strikethrough-position
- فاصله به پیکسل یا تنظیم درصدی از بالای سلول تا بالای خطخوردگی (strikethrough). افزایش این مقدار خطخوردگی را به سمت پایین و کاهش آن خطخوردگی را به سمت بالا حرکت میدهد. توضیحات مربوط به تنظیمات در adjust-cell-width را مشاهده کنید.
- --adjust-strikethrough-thickness
- ضخامت خطخوردگی بر حسب پیکسل یا تنظیم درصدی. توضیحات مربوط به تنظیمات در adjust-cell-width را مشاهده کنید.
- --adjust-overline-position
- فاصله به پیکسل یا تنظیم درصدی از بالای سلول تا بالای روخط (overline). افزایش این مقدار روخط را به سمت پایین و کاهش آن روخط را به سمت بالا حرکت میدهد. توضیحات مربوط به تنظیمات در adjust-cell-width را مشاهده کنید.
- --adjust-overline-thickness
- ضخامت روخط بر حسب پیکسل یا تنظیم درصدی. توضیحات مربوط به تنظیمات در adjust-cell-width را مشاهده کنید.
- --adjust-cursor-thickness
- ضخامت بر حسب پیکسل یا تنظیم درصدی مکاننمای خطی (bar) و مکاننمای مستطیلی توخالی (outlined rect). توضیحات مربوط به تنظیمات در adjust-cell-width را مشاهده کنید.
- --adjust-cursor-height
- ارتفاع بر حسب پیکسل یا تنظیم درصدی مکاننما. در حال حاضر برای تمام انواع مکاننما اعمال میشود: خطی، مستطیلی پر و مستطیلی توخالی. توضیحات مربوط به تنظیمات در adjust-cell-width را مشاهده کنید.
- --adjust-box-thickness
- ضخامت بر حسب پیکسل یا تنظیم درصدی کاراکترهای رسم کادر و جعبهچینی. توضیحات مربوط به تنظیمات در adjust-cell-width را مشاهده کنید.
- --adjust-icon-height
- ارتفاع بر حسب پیکسل یا تنظیم درصدی حداکثر ارتفاع برای آیکونهای Nerd Font.
مقدار مثبت (منفی) حداکثر ارتفاع آیکون را افزایش (کاهش) میدهد. این ممکن است بر همه آیکونها به طور یکسان تأثیر نگذارد: تأثیر آن بستگی به این دارد که آیا اندازه پیشفرض آیکون محدود به ارتفاع است یا خیر، که خود به نسبت ابعاد آیکون و قلم اصلی شما بستگی دارد.
برخی از آیکونهای طراحیشده برای کادرچینی و گرافیک ترمینال، مانند نمادهای Powerline، تحت تأثیر این گزینه قرار نمیگیرند.
توضیحات مربوط به تنظیمات در adjust-cell-width را مشاهده کنید.
موجود از نسخه: 1.2.0 به بعد.
- --grapheme-width-method
- روش مورد استفاده برای محاسبه عرض سلول یک خوشه نگارهای (grapheme cluster). مقدار پیشفرض unicode است که از استاندارد یونیکد برای تعیین عرض نگاره استفاده میکند. این امر منجر به عرض نگاره صحیح میشود اما ممکن است منجر به مشکلات ناهماهنگی مکاننما با برخی برنامهها (مانند پوستهها/shells) شود که از روشهای قدیمی مانند wcswidth استفاده میکنند.
مقادیر معتبر عبارتند از:
- •
- legacy - استفاده از یک روش قدیمی برای تعیین عرض نگاره، مانند wcswidth. این گزینه سازگاری با برنامههای قدیمی را به حداکثر میرساند اما ممکن است منجر به عرض نادرست برای برخی نگارهها مانند ایموجیهای رنگ پوست، کاراکترهای غیرانگلیسی و غیره شود.
این گزینه به عنوان “legacy” نامیده شده و نام خاصتری ندارد زیرا رفتار آن تعریفنشده است و میخواهیم توانایی تغییر آن را در آینده حفظ کنیم. برای مثال، ممکن است اکنون یا در آینده از wcswidth کتابخانه libc استفاده کنیم یا نکنیم.
- •
- unicode - استفاده از استاندارد یونیکد برای تعیین عرض نگاره.
اگر یک برنامه در حال اجرا صراحتاً حالت ترمینال 2027 را فعال کند، صرفنظر از این پیکربندی، عرض بر اساس unicode اجبار خواهد شد. هنگامی که حالت 2027 بازنشانی شود، این پیکربندی دوباره استفاده خواهد شد.
این پیکربندی در زمان اجرا قابل تغییر است اما بر ترمینالهای موجود تأثیری نخواهد داشت. تنها ترمینالهای جدید از پیکربندی جدید استفاده خواهند کرد.
- --freetype-load-flags
- پرچمهای بارگیری FreeType برای فعالسازی. قالب این تنظیم فهرستی از پرچمها است که با کاما جدا شدهاند. اگر پیشوند no- را به یک پرچم اضافه کنید، غیرفعال میشود. اگر پرچمی را حذف کنید، از مقدار پیشفرض آن استفاده میشود، بنابراین باید پرچمهایی را که نمیخواهید صراحتاً غیرفعال کنید. همچنین میتوانید از true یا false برای روشن یا خاموش کردن تمام پرچمها استفاده کنید.
این پیکربندی تنها برای نسخههایی از Ghostty اعمال میشود که از FreeType استفاده میکنند. این مورد معمولاً فقط برای نسخههای لینوکس صادق است. سیستمعامل macOS از CoreText استفاده میکند و پیکربندی معادل آن را ندارد.
پرچمهای موجود:
- •
- hinting - فعال یا غیرفعال کردن هینتینگ (hinting). بهطور پیشفرض فعال است.
- •
- force-autohint - همیشه از هینتر خودکار freetype به جای هینتر بومی قلم استفاده شود. بهطور پیشفرض غیرفعال است.
- •
- monochrome - دستور به رندرکننده برای استفاده از رندر تکرنگ ۱ بیتی. این کار ضدپلگی (anti-aliasing) را غیرفعال میکند و احتمالاً ظاهر خوبی نخواهد داشت مگر اینکه از یک قلم پیکسلی استفاده کنید. بهطور پیشفرض غیرفعال است.
- •
- autohint - فعال کردن هینتر خودکار freetype. بهطور پیشفرض فعال است.
- •
- light - استفاده از سبک هینتینگ سبک، با حفظ بهتر شکل گلیفها. این رایجترین تنظیم در برنامههای GTK است و بنابراین پیشفرض Ghostty نیز میباشد. در صورت فعال بودن monochrome تاثیری ندارد. بهطور پیشفرض فعال است.
مثال: hinting، no-hinting، force-autohint، no-force-autohint
- --theme
- پوسته (تم) مورد استفاده. این میتواند نام یک تم داخلی، نام یک تم سفارشی یا یک مسیر مطلق به فایل تم سفارشی باشد. شبیهساز Ghostty همچنین از تعیین تمهای متفاوت برای حالتهای روشن (light) و تاریک (dark) پشتیبانی میکند. هر گزینه در ادامه مستند شده است.
اگر تم یک مسیر مطلق باشد، Ghostty تلاش میکند تا آن فایل را به عنوان تم بارگیری کند. اگر آن فایل وجود نداشته باشد یا غیرقابل دسترسی باشد، خطایی در لاگ ثبت میشود و هیچ دایرکتوری دیگری جستجو نخواهد شد.
اگر تم یک مسیر مطلق نباشد، دو دایرکتوری مختلف برای یافتن نام فایلی که با تم مطابقت دارد جستجو میشوند. این جستجو در سیستمهای دارای فایلسیستم حساس به حروف بزرگ و کوچک، حساس به بزرگی و کوچکی حروف است. وجود جداکنندههای مسیر در نام تم خطا محسوب میشود، مگر اینکه یک مسیر مطلق باشد.
اولین دایرکتوری، زیرپوشه themes از دایرکتوری پیکربندی Ghostty شما است. این مسیر $XDG_CONFIG_HOME/ghostty/themes یا ~/.config/ghostty/themes است.
دومین دایرکتوری، زیرپوشه themes از دایرکتوری منابع Ghostty است. شبیهساز Ghostty همراه با تمهای متعددی عرضه میشود که در این دایرکتوری نصب میشوند. در macOS، این فهرست در دایرکتوری Ghostty.app/Contents/Resources/ghostty/themes قرار دارد. در لینوکس، این فهرست در دایرکتوری share/ghostty/themes (در هر کجایی که دایرکتوری “share” را نصب کرده باشید) قرار دارد.
برای مشاهده فهرست تمهای موجود، دستور ghostty +list-themes را اجرا کنید.
فایل تم صرفاً یک فایل پیکربندی دیگر از Ghostty است. آنها نحو یکسان و گزینههای پیکربندی مشابهی دارند. یک تم میتواند هر گزینه معتبر پیکربندی را تنظیم کند، بنابراین لطفاً از فایل تم منابع غیرقابل اعتماد استفاده نکنید. تمهای داخلی بررسی شدهاند تا فقط گزینههای ایمن پیکربندی را تنظیم نمایند.
برخی از گزینهها را نمیتوان در فایلهای تم تنظیم کرد. دلیل عدم پشتیبانی از این موارد باید مشخص باشد. یک فایل تم نمیتواند theme یا config-file را تنظیم کند. در زمان نگارش این مستندات، در صورت تنظیم این گزینهها در یک فایل تم، Ghostty هیچ هشدار یا خطایی نشان نمیدهد اما آنها بدون اعلان نادیده گرفته میشوند.
هر رنگ اضافی که از طریق background، foreground، palette و غیره مشخص شود، رنگهای تعیینشده در تم را لغو خواهد کرد.
برای تعیین تمهای متفاوت برای حالتهای روشن و تاریک، از نحو زیر استفاده کنید: light:theme-name,dark:theme-name. برای مثال: light:Rose Pine Dawn,dark:Rose Pine. فاصلههای خالی در اطراف مقادیر حذف میشوند و ترتیب light و dark اهمیتی ندارد. هر دو حالت روشن و تاریک باید در این قالب مشخص شوند. در این قالب، تم مورد استفاده بر اساس تم محیط رومیزی فعلی تعیین خواهد شد.
برخی اشکالات شناختهشده در پوستهبندی حالت روشن/تاریک وجود دارد که در بهروزرسانیهای آینده برطرف خواهند شد:
- •
- سیستمعامل macOS: سبک زبانههای نوار عنوان هنگام تغییر تم بهروزرسانی نمیشود.
- --background
- رنگ پسزمینه پنجره. به صورت هگزادسیمال (#RRGGBB یا RRGGBB) یا نام رنگهای X11 مشخص میشود.
- --foreground
- رنگ متن (پیشزمینه) پنجره. به صورت هگزادسیمال (#RRGGBB یا RRGGBB) یا نام رنگهای X11 مشخص میشود.
- --background-image
- تصویر پسزمینه برای ترمینال.
این مقدار باید مسیری به یک فایل PNG یا JPEG باشد، سایر قالبهای تصویر هنوز پشتیبانی نمیشوند.
تصویر پسزمینه در حال حاضر به ازای هر ترمینال اعمال میشود، نه به ازای هر پنجره. اگر به دفعات از تقسیم پنجره (split) استفاده میکنید، تصویر پسزمینه در میان بخشهای تقسیمشده تکرار خواهد شد. یک بهبود در نسخههای آینده Ghostty به این موضوع رسیدگی خواهد کرد.
هشدار: تصاویر پسزمینه در حال حاضر در حافظه ویدیویی (VRAM) به ازای هر ترمینال تکرار میشوند. برای تصاویر بسیار بزرگ، این موضوع میتواند منجر به افزایش چشمگیر مصرف حافظه (به ویژه VRAM) شود. در نسخههای آینده Ghostty با به اشتراکگذاری بافتهای تصویر میان ترمینالها این مشکل حل خواهد شد.
موجود از نسخه: 1.2.0 به بعد.
- --background-image-opacity
- شفافیت تصویر پسزمینه.
این مقدار نسبت به مقدار background-opacity محاسبه میشود.
مقدار 1.0 (پیشفرض) منجر به قرار گرفتن تصویر پسزمینه روی رنگ پسزمینه عمومی شده، و سپس نتیجه ترکیبی با شفافیت تعیینشده توسط background-opacity تنظیم میشود.
مقدار کمتر از 1.0 باعث میشود تصویر پسزمینه قبل از اعمال background-opacity روی نتیجه ترکیبی، با رنگ عمومی پسزمینه مخلوط شود.
مقدار بزرگتر از 1.0 باعث میشود تصویر پسزمینه نسبت به رنگ پسزمینه عمومی شفافیت بالاتری (کدری بیشتری) داشته باشد. برای مثال، اگر background-opacity روی 0.5 تنظیم شده باشد و background-image-opacity روی 1.5 تنظیم شود، شفافیت نهایی تصویر پسزمینه برابر با 0.5 * 1.5 = 0.75 خواهد بود.
موجود از نسخه: 1.2.0 به بعد.
- --background-image-position
- موقعیت تصویر پسزمینه.
مقادیر معتبر عبارتند از: * top-left * top-center * top-right * center-left * center * center-right * bottom-left * bottom-center * bottom-right
مقدار پیشفرض center است.
موجود از نسخه: 1.2.0 به بعد.
- --background-image-fit
- نحوه برازش تصویر پسزمینه.
مقادیر معتبر عبارتند از:
- •
- contain
با حفظ نسبت تصویر، تصویر پسزمینه را به بزرگترین اندازهای که همچنان درون ترمینال بگنجد مقیاسبندی میکند تا تمام تصویر قابل مشاهده باشد.
- •
- cover
با حفظ نسبت تصویر، تصویر پسزمینه را به کوچکترین اندازهای که بتواند تمام فضای ترمینال را بپوشاند مقیاسبندی میکند. این ممکن است منجر به بریده شدن یک یا چند لبه تصویر توسط لبه ترمینال شود.
- •
- stretch
تصویر پسزمینه را بدون حفظ نسبت تصویر، به اندازه کل فضای ترمینال میکشد.
- •
- none
تصویر پسزمینه را مقیاسبندی نمیکند.
مقدار پیشفرض contain است.
موجود از نسخه: 1.2.0 به بعد.
- --background-image-repeat
- تکرار تصویر پسزمینه یا عدم تکرار آن.
اگر این گزینه روی true تنظیم شود، در صورتی که به دلیل پر نشدن کامل فضای ترمینال فضای خالی در اطراف تصویر وجود داشته باشد، تصویر پسزمینه تکرار خواهد شد.
مقدار پیشفرض false است.
موجود از نسخه: 1.2.0 به بعد.
- --selection-foreground
- رنگ پیشزمینه و پسزمینه متن انتخابشده. اگر این مقدار تنظیم نشود، رنگ انتخاب صرفاً معکوس رنگ پسزمینه و پیشزمینه پنجره خواهد بود (نکته: با پیشزمینه/پسزمینه سلول اشتباه گرفته نشود). به صورت هگزادسیمال (#RRGGBB یا RRGGBB) یا نام رنگهای X11 مشخص میشود. از نسخه 1.2.0، این مقدار میتواند روی cell-foreground برای مطابقت با رنگ متن سلول یا cell-background برای مطابقت با رنگ پسزمینه سلول نیز تنظیم شود.
selection-background
- --selection-clear-on-typing
- پاک شدن متن انتخابشده هنگام تایپ کردن یا عدم آن. پیشفرض این گزینه true است. این یک رفتار متداول برای اکثر شبیهسازهای ترمینال و فیلدهای ورودی متن است. اگر این گزینه را روی false تنظیم کنید، متن انتخابشده هنگام تایپ پاک نخواهد شد.
“تایپ کردن” صراحتاً به فشردن هر کلید غیر اصلاحکننده (shift، control، alt و غیره) گفته میشود که دادههایی را برای ارسال به برنامه در حال اجرا در ترمینال (مانند پوسته) تولید میکند. علاوه بر این، انتخاب متن هنگام شروع هر وضعیت ویرایش مقدماتی (preedit) یا ترکیب نویسه (مثلاً هنگام تایپ زبانهایی مانند ژاپنی) پاک میشود.
اگر این گزینه روی false باشد، انتخاب متن همچنان میتواند به صورت دستی با یک بار کلیک یا فشردن escape پاک شود.
موجود از نسخه: 1.2.0 به بعد.
- --selection-clear-on-copy
- پاک شدن متن انتخابشده پس از کپی کردن یا عدم آن. پیشفرض این گزینه false است.
هنگامی که روی true تنظیم شود، انتخاب متن پس از هر عملیات کپی که کلید میانبر copy_to_clipboard را فراخوانی میکند، به طور خودکار پاک خواهد شد. نکته مهم اینکه، اگر عملیات کپی از طریق copy-on-select فراخوانی شده باشد، انتخاب متن پاک نخواهد شد.
هنگامی که روی false تنظیم شود، انتخاب متن پس از کپی قابل مشاهده باقی میماند و امکان مشاهده موارد کپیشده و احتمالاً انجام عملیات بیشتر روی همان انتخاب را فراهم میآورد.
- --selection-word-chars
- نویسههایی که مرزهای کلمه را در حین عملیات انتخاب متن مانند دو بار کلیک کردن مشخص میکنند. هنگام انتخاب یک کلمه، انتخاب در هر یک از این نویسهها متوقف خواهد شد.
این گزینه مشابه متغیر محیطی WORDCHARS در zsh است، با این تفاوت که نویسههای مرزی را مشخص میکند نه نویسههای کلمه را. مقدار پیشفرض شامل جداکنندهها و علائم نگارشی رایجی است که معمولاً کلمات را در کد و متون از هم جدا میکنند.
هر نویسه در این رشته به یک مرز کلمه تبدیل میشود. نویسههای چندبایتی UTF-8 پشتیبانی میشوند، اما فقط نقاط کد تکی میتوانند مشخص شوند. دنبالههای چند نقطهکدی (مانند ایموجیها) پشتیبانی نمیشوند.
نویسه تهی (U+0000) همیشه به عنوان یک مرز در نظر گرفته میشود و نیازی به گنجاندن در این پیکربندی ندارد.
پیشفرض: \t'"│`|:;,()[]{}<>$
برای افزودن یا حذف نویسههای خاص، میتوانید این مقدار را به صورت سفارشی تنظیم کنید. برای مثال، برای اینکه نقطه-ویرگول (سیکولن) بخشی از کلمات تلقی شود:
-
selection-word-chars = " \t'\"│`|:,()[]{}<>$"
موجود از نسخه: 1.3.0 به بعد.
- --minimum-contrast
- حداقل نسبت کنتراست میان رنگهای متن (پیشزمینه) و پسزمینه. نسبت کنتراست عددی بین ۱ و ۲۱ است. مقدار ۱ به معنی عدم وجود کنتراست است (مانند متن سیاه روی پسزمینه سیاه). این مقدار همان نسبت کنتراست تعریفشده در مشخصات استاندارد WCAG 2.0میباشد.
اگر میخواهید از نامرئی شدن متن (همرنگ بودن با پسزمینه) جلوگیری کنید، مقدار 1.1 گزینه مناسبی است. اگر میخواهید از متنی که خواندن آن دشوار است اجتناب کنید، مقدار ۳ یا بالاتر مناسب است. هرچه این مقدار بالاتر باشد، احتمال تبدیل رنگ متن به سیاه یا سفید بیشتر خواهد بود.
این مقدار برای ایموجیها یا تصاویر اعمال نمیشود.
- --palette
- پالت رنگ برای حالت ۲۵۶ رنگ که بسیاری از برنامههای ترمینال استفاده میکنند. نحو این پیکربندی به صورت N=COLOR است که در آن N عددی بین 0 تا 255 (برای ۲۵۶ رنگ جدول رنگ ترمینال) و COLOR یک کد رنگی معمول RGB مانند #AABBCC یا AABBCC یا نام یکی از رنگهای X11 است. برای مثال، palette = 5=#BB78D9 رنگ «بنفش» را تنظیم میکند.
اندیس پالت میتواند در مبنای دهدهی، دودویی (باینری)، هشتهشتی (اوکتال) یا شانزدهشانزدهی (هگزادسیمال) باشد. در صورت عدم استفاده از پیشوند، مبنا دهدهی فرض میشود: پیشوند 0b برای باینری، 0o برای اوکتال و 0x برای هگزادسیمال است.
برای تعاریف مربوط به اندیسهای رنگی و اینکه آنها به طور استاندارد به چه رنگی نگاشت میشوند، این برگه تقلب را ببینید.
برای اکثر تمها، تنها کافی است ۱۶ رنگ اول (0 تا 15) را تنظیم کنید زیرا بقیه پالت (16 تا 255) بهطور پیشفرض به صورت خودکار تولید خواهد شد (برای جزئیات بیشتر palette-generate را ببینید).
- --palette-generate
- تولید خودکار پالت گسترده ۲۵۶ رنگ (اندیسهای 16 تا 255) از روی ۱۶ رنگ پایه ANSI.
این قابلیت به طراحان تم امکان میدهد تا فقط ۱۶ رنگ پایه را مشخص کنند و بقیه پالت به صورت خودکار، منسجم و زیبا تولید شود.
هنگامی که این گزینه فعال باشد، مکعب رنگی 6×6×6 و طیف خاکستری ۲۴ مرحلهای از درونیابی پالت پایه به دست میآیند و ظاهری یکپارچهتر ایجاد میکنند. رنگهایی که صراحتاً از طریق palette تنظیم شده باشند هرگز بازنویسی نخواهند شد.
مقدار پیشفرض false (غیرفعال) است، زیرا بسیاری از برنامههای قدیمی که از پالت ۲۵۶ رنگ استفاده میکنند فرضیات ثابتی در مورد این رنگها دارند (عمدتاً پالت ۲۵۶ رنگ xterm را فرض میکنند). با این حال، این یک ابزار بسیار کاربردی برای طراحان تم و کاربرانی است که میخواهند بدون نیاز به تعیین تمام ۲۵۶ رنگ، پالت خود را شخصیسازی کنند.
برای اطلاعات بیشتر در مورد نحوه تولید، به اینجا مراجعه کنید: https://gist.github.com/jake-stewart/0a8ea46159a7da2c808e5be2177e1783
موجود از نسخه: 1.3.0 به بعد.
- --palette-harmonious
- معکوس کردن رنگهای پالت تولیدشده در هنگام فعال بودن palette-generate، به گونهای که رنگها به ترتیب معکوس قرار گیرند. این امر به برنامههای مبتنی بر پالت امکان میدهد تا در هر دو حالت روشن و تاریک عملکرد خوبی داشته باشند زیرا پالتها همواره حاوی رنگهای متناسبی خواهند بود.
این گزینه بهطور پیشفرض غیرفعال است زیرا برخی برنامههای قدیمی ترمینال این فرض را در خود ثابت کردهاند که اندیسهای 16 تا 231 از تیرهترین به روشنترین مرتب شدهاند، بنابراین فعال کردن آن باعث ناخوانا شدن آنها میشود. این فرض کلی درستی نیست و ما برنامههای مدرن ترمینال را تشویق میکنیم که از اندیسها به شکلی معناییتر استفاده کنند.
در صورت غیرفعال بودن palette-generate، این گزینه هیچ تاثیری ندارد.
برای اطلاعات بیشتر palette-generate را ببینید.
موجود از نسخه: 1.3.0 به بعد.
- --cursor-color
- رنگ مکاننما. اگر این گزینه تنظیم نشود، یک مقدار پیشفرض انتخاب خواهد شد.
رنگهای مستقیم را میتوان به صورت هگزادسیمال (#RRGGBB یا RRGGBB) یا نام رنگهای X11 مشخص کرد.
علاوه بر این، میتوان از مقادیر ویژه برای تطبیق رنگ با سایر رنگها در زمان اجرا استفاده نمود:
- •
- cell-foreground - تطبیق با رنگ متن سلول (پیشزمینه سلول). (موجود از نسخه: 1.2.0 به بعد)
- •
- cell-background - تطبیق با رنگ پسزمینه سلول. (موجود از نسخه: 1.2.0 به بعد)
- --cursor-opacity
- میزان کدری (عکس شفافیت) مکاننما. مقدار ۱ کاملاً کدر و مقدار ۰ کاملاً شفاف است. مقادیر کمتر از ۰ یا بزرگتر از ۱ به نزدیکترین مقدار معتبر محدود میشوند. توجه داشته باشید که یک مقدار به اندازه کافی کوچک مانند 0.3 ممکن است عملاً نامرئی باشد و یافتن مکاننما را دشوار سازد.
- --cursor-style
- سبک مکاننما. این گزینه سبک پیشفرض را تعیین میکند. برنامه در حال اجرا همچنان میتواند سبک صریح مکاننما را با استفاده از دنبالههای گریز (مانند CSI q) درخواست کند. پیکربندیهای پوسته معمولاً سبکهای مکاننمای خاصی را درخواست میکنند.
توجه داشته باشید که ادغام پوسته (shell integration) به طور خودکار مکاننما را در خط فرمان به شکل خطی (bar) تنظیم میکند، صرفنظر از این پیکربندی. میتوانید با تعیین shell-integration-features = no-cursor یا با غیرفعال کردن کامل ادغام پوسته، این رفتار را غیرفعال کنید.
مقادیر معتبر عبارتند از:
- •
- block
- •
- bar
- •
- underline
- •
- block_hollow
- --cursor-style-blink
- تنظیم وضعیت پیشفرض چشمکزدن مکاننما. این صرفاً وضعیت پیشفرض است؛ برنامههای در حال اجرا ممکن است سبک مکاننما را با استفاده از DECSCUSR (دنباله CSI q) بازنویسی کنند.
اگر این گزینه تنظیم نشود، مکاننما بهطور پیشفرض چشمک میزند. توجه داشته باشید که این دقیقاً مشابه مقدار “true” نیست، همانطور که در ادامه ذکر شده است.
اگر این گزینه اصلاً تنظیم نشود (null)، شبیهساز Ghostty از حالت DEC Mode 12 (چشمکزدن مکاننمای AT&T) به عنوان روشی جایگزین برای روشن/خاموش کردن چشمکزدن پیروی خواهد کرد. اگر روی هر مقداری به جز null تنظیم شود، حالت DEC mode 12 نادیده گرفته خواهد شد اما DECSCUSR همچنان رعایت میشود.
مقادیر معتبر:
- •
- (خالی)
- •
- true
- •
- false
- --cursor-text
- رنگ متن زیر مکاننما. اگر این گزینه تنظیم نشود، یک مقدار پیشفرض انتخاب خواهد شد. به صورت هگزادسیمال (#RRGGBB یا RRGGBB) یا نام رنگهای X11 مشخص میشود. از نسخه 1.2.0، این مقدار میتواند روی cell-foreground برای مطابقت با رنگ متن سلول یا cell-background برای مطابقت با رنگ پسزمینه سلول نیز تنظیم شود.
- --cursor-click-to-move
- فعالسازی قابلیت جابهجایی مکاننما در خط فرمان با کلیک روی مکانی از متن اعلان (prompt).
این قابلیت نیازمند ادغام پوسته (shell integration) است، بهویژه علامتگذاری اعلان از طریق OSC 133. برخی پوستهها مانند Fish (نسخه 4) و Nu (نسخه 0.111 به بعد) ذاتاً از این قابلیت پشتیبانی میکنند در حالی که پوستههای دیگر ممکن است به پیکربندی بیشتر یا فعال بودن ویژگیهای ادغام پوسته در Ghostty نیاز داشته باشند.
بسته به پوسته، این ویژگی یا با ترجمه موقعیت کلیک شما به یک سری حرکات ساختگی کلیدهای جهتنما کار میکند، یا با ارسال مستقیم رویداد کلیک به پوسته. در هر دو حالت، ممکن است رفتارهای پیشبینینشدهای در برخی شرایط خاص رخ دهد.
- --mouse-hide-while-typing
- پنهان کردن فوری نشانگر ماوس هنگام تایپ کردن. نشانگر ماوس هنگامی که از ماوس استفاده شود (کلیک، حرکت و غیره) دوباره نمایان خواهد شد. رفتارهای وابسته به پلتفرم ممکن است سناریوهای دیگری را تعیین کنند که در آنها ماوس نشان داده میشود. برای مثال در macOS، هنگام ایجاد یک پنجره، زبانه یا بخش تفکیکشده جدید، ماوس دوباره نشان داده میشود.
- --scroll-to-bottom
- زمان پیمایش صفحه ترمینال به پایینترین نقطه. قالب این تنظیم فهرستی از گزینهها است که با کاما جدا شدهاند. اگر پیشوند no- را به یک گزینه اضافه کنید، غیرفعال میشود. اگر گزینهای را حذف کنید، از مقدار پیشفرض آن استفاده میشود.
گزینههای موجود:
- •
- keystroke در صورت تنظیم، هنگامی که کاربر کلیدی را فشار میدهد که منجر به ارسال داده به PTY میشود (اساساً هر کلیدی به جز کلیدهای اصلاحکننده یا میانبرهایی که توسط Ghostty پردازش میشوند)، صفحه را به پایین اسکرول میکند.
- •
- output در صورت تنظیم، اگر دادههای جدیدی برای نمایش وجود داشته باشد (مثلاً زمانی که خطوط جدیدی در ترمینال چاپ میشوند)، صفحه را به پایین اسکرول میکند.
پیشفرض keystroke, no-output است.
- --mouse-shift-capture
- تعیین اینکه آیا برنامههای در حال اجرا میتوانند فشرده شدن کلید shift همراه با کلیک ماوس را تشخیص دهند یا خیر. معمولاً کلید shift برای گسترش انتخاب ماوس استفاده میشود.
مقدار پیشفرض false به این معنی است که کلید shift با پروتکل ماوس ارسال نمیشود و انتخاب را گسترش میدهد. این مقدار میتواند با دنباله XTSHIFTESCAPE توسط برنامه در حال اجرا به طور مشروط لغو شود.
مقدار true به این معنی است که کلید shift با پروتکل ماوس ارسال میشود اما برنامه در حال اجرا میتواند این رفتار را با XTSHIFTESCAPE لغو کند.
مقدار never همانند false است با این تفاوت که برنامه در حال اجرا نمیتواند این رفتار را با XTSHIFTESCAPE لغو کند. مقدار always همانند true است با این تفاوت که برنامه در حال اجرا نمیتواند این رفتار را با XTSHIFTESCAPE لغو کند.
اگر همیشه میخواهید shift انتخاب ماوس را گسترش دهد حتی اگر برنامه درخواست دیگری داشته باشد، این گزینه را روی never تنظیم کنید.
مقادیر معتبر:
- •
- true
- •
- false
- •
- always
- •
- never
- --mouse-reporting
- فعال یا غیرفعال کردن گزارش رویدادهای ماوس به برنامهها. هنگامی که روی false تنظیم شود، رویدادهای ماوس به برنامههای ترمینال گزارش نمیشوند حتی اگر آنها درخواست کنند. این امر به شما امکان میدهد همواره از ماوس برای انتخاب و سایر تعاملات رابط کاربری ترمینال استفاده کنید بدون اینکه برنامهها ورودی ماوس را ضبط کنند.
هنگامی که روی true (پیشفرض) تنظیم شود، برنامههای ترمینال میتوانند گزارش ماوس را درخواست کنند و رویدادهای ماوس را مطابق با حالت درخواستی خود دریافت خواهند کرد.
این گزینه را میتوان در زمان اجرا با استفاده از اقدام کلید میانبر toggle_mouse_reporting تغییر وضعیت داد.
- --mouse-scroll-multiplier
- ضریب فاصله پیمایش با چرخ ماوس.
میتوان از پیشوند precision: یا discrete: برای تنظیم ضریب تنها برای پیمایش با نوع خاصی از دستگاهها استفاده کرد. این موارد را میتوان با کاما جدا کرد تا هر دو نوع ضریب به طور همزمان تنظیم شوند؛ برای مثال: precision:0.1,discrete:3. اگر پیشوندی استفاده نشود، ضریب برای تمام دستگاههای پیمایش اعمال میشود. تعیین پیشوند در نسخه Ghostty 1.2.1 معرفی شد.
مقدار به بازه [0.01, 10,000] محدود خواهد شد. هر دو مقدار بسیار افراطی هستند و در صورت تنظیم مقادیر انتهایی احتمالاً تجربه کاربری نامناسبی خواهید داشت.
مقدار پیشفرض برای دستگاههای گسسته (discrete) برابر با “3” و برای دستگاههای دقیق (precision) برابر با “1” است.
- --background-opacity
- میزان کدری (عکس شفافیت) پسزمینه. مقدار ۱ کاملاً کدر و مقدار ۰ کاملاً شفاف است. مقدار کمتر از ۰ یا بزرگتر از ۱ به نزدیکترین مقدار معتبر محدود خواهد شد.
در macOS، زمانی که ترمینال وارد حالت تمامصفحه بومی میشود، شفافیت پسزمینه غیرفعال خواهد شد. این به این دلیل است که پسزمینه خاکستری میشود و میتواند باعث شود ویجتها نمایان شوند که عموماً مطلوب نیست.
در macOS، تغییر این پیکربندی نیازمند راهاندازی مجدد کامل Ghostty است.
- --background-opacity-cells
- اعمال شفافیت پسزمینه بر سلولهایی که رنگ پسزمینه صریح دارند.
بهطور معمول، background-opacity فقط برای پسزمینه پنجره اعمال میشود. اگر سلولی رنگ پسزمینه صریحی مانند قرمز داشته باشد، آن رنگ پسزمینه کاملاً کدر خواهد بود. نتیجه این امر این است که برخی برنامههای ترمینال که رنگ پسزمینه ترمینال را مجدداً رنگآمیزی میکنند، مانند Neovim و Tmux، ممکن است background-opacity را رعایت نکنند (طبق طراحی).
تنظیم این گزینه روی true، شفافیت background-opacity را بر تمام سلولها صرفنظر از اینکه رنگ پسزمینه صریح دارند یا خیر، اعمال خواهد کرد.
موجود از نسخه: 1.2.0 به بعد.
- --background-blur
- تار کردن (بلور کردن) پسزمینه در صورتی که background-opacity کمتر از ۱ باشد.
مقادیر معتبر عبارتند از:
- •
- یک عدد صحیح غیرمنفی که شدت تاری را مشخص میکند.
- •
- false، معادل شدت تاری 0.
- •
- true، معادل شدت تاری پیشفرض 20، که برای یک افکت تاری زیبا و مناسب منطقی است. شدتهای تاری بالاتر ممکن است باعث بروز مشکلات عجیب در رندرینگ و کارایی شوند.
در macOS نسخه 26.0 و جدیدتر، مقادیر ویژه بیشتری وجود دارند که میتوان آنها را برای استفاده از جلوههای شیشهای بومی macOS تنظیم کرد:
- •
- macos-glass-regular - جلوه شیشهای استاندارد با مقداری کدری.
- •
- macos-glass-clear - جلوه شیشهای بسیار شفاف.
اگر مقادیر ویژه macOS تنظیم شوند، در پلتفرمهای غیر macOS به معنی background-blur = true خواهند بود.
پشتیبانیشده در macOS و در برخی محیطهای رومیزی لینوکس، از جمله:
- •
- KDE Plasma (نسخههای Wayland و X11)
هشدار: شدت دقیق تاری در محیط KDE Plasma نادیده گرفته میشود، و تنظیم این گزینه روی true یا هر عدد مثبت دیگری تاثیر یکسانی خواهد داشت. دلیل این است که KWin، کامپوزیتور پنجره پلاسما، فقط یک تنظیم سراسری تاری دارد و به برنامهها اجازه تعیین تنظیمات تاری مجزا را نمیدهد.
برای پیکربندی تنظیم سراسری تاری KWin، تنظیمات سیستم (System Settings) را باز کرده و به مسیر “Apps & Windows” > “Window Management” > “Desktop Effects” بروید و پلاگین “Blur” را انتخاب نمایید. در صورت غیرفعال بودن، آن را با علامت زدن کادر سمت چپ فعال کنید. سپس روی دکمه “Configure” کلیک کنید تا دو لغزنده نمایش داده شود که به شما امکان میدهد شدت تاری و نویز پسزمینه را برای همه برنامهها، از جمله Ghostty تنظیم کنید.
سایر محیطهای رومیزی لینوکس در حال حاضر پشتیبانی نمیشوند. کاربران ممکن است نیاز داشته باشند تنظیمات اختصاصی محیط را اعمال کرده یا پلاگینهای شخص ثالث را نصب کنند تا پسزمینه مات پشتیبانی شود، زیرا رابط واحدی برای این کار وجود ندارد.
- --unfocused-split-opacity
- میزان کدری (عکس شفافیت) یک بخش تفکیکشده (split) غیرفعال. بخشهای تفکیکشده غیرفعال بهطور پیشفرض اندکی محو میشوند تا تشخیص بخش فعال آسانتر شود. برای غیرفعال کردن این ویژگی، این مقدار را برابر با ۱ قرار دهید.
مقدار ۱ کاملاً کدر و مقدار ۰ کاملاً شفاف است. از آنجا که “0” کاربردی نیست (ظاهر پنجره را بسیار نامتعارف میکند)، حداقل مقدار مجاز 0.15 است. این مقدار نیز تا حدی عجیب به نظر میرسد اما حداقل میتوانید ببینید چه خبر است. مقداری خارج از بازه 0.15 تا 1 به نزدیکترین مقدار معتبر محدود خواهد شد.
- --unfocused-split-fill
- رنگ تیرهسازی بخش تفکیکشده غیرفعال. بخشهای تفکیکشده غیرفعال با رندر کردن یک مستطیل نیمهشفاف روی بخش مربوطه تیره میشوند. این گزینه رنگ آن مستطیل را تعیین میکند و میتواند برای کنترل دقیق جلوه تیرهسازی استفاده شود.
پیشفرض این گزینه رنگ پسزمینه خواهد بود.
به صورت هگزادسیمال (#RRGGBB یا RRGGBB) یا نام رنگهای X11 مشخص میشود.
- --split-divider-color
- رنگ خط جداکننده بخشهای تفکیکشده. اگر این گزینه تنظیم نشود، یک مقدار پیشفرض انتخاب خواهد شد. به صورت هگزادسیمال (#RRGGBB یا RRGGBB) یا نام رنگهای X11 مشخص میشود.
موجود از نسخه: 1.1.0 به بعد.
- --split-preserve-zoom
- کنترل زمان حفظ بزرگنمایی یک بخش تفکیکشده. در شرایط عادی، هر عملیاتی که تمرکز یا چیدمان درخت تقسیمات را در یک پنجره تغییر دهد، بخش بزرگنماییشده را از حالت بزرگنمایی خارج میکند. این پیکربندی به شما امکان میدهد این رفتار را کنترل کنید.
این گزینه میتواند روی navigation تنظیم شود تا هنگام جابهجایی به بخش دیگر (مثلاً از طریق goto_split) وضعیت بزرگنمایی حفظ شود. این کار بخش متمرکزشده جدید را به جای لغو بزرگنمایی، به بخش بزرگنماییشده تبدیل میکند.
هر گزینهای میتواند با پیشوند no- برای غیرفعال کردن آن گزینه همراه شود.
مثال: split-preserve-zoom = navigation
موجود از نسخه: 1.3.0 به بعد.
- --search-foreground
- رنگ متن (پیشزمینه) و پسزمینه برای مطابقتهای جستجو. این تنظیم فقط برای مطابقتهای غیرمتمرکز، معروف به مطابقتهای کاندید، اعمال میشود.
مقادیر معتبر:
- •
- هگزادسیمال (#RRGGBB یا RRGGBB)
- •
- نام رنگهای X11
- •
- “cell-foreground” برای مطابقت با رنگ متن سلول
- •
- “cell-background” برای مطابقت با رنگ پسزمینه سلول
مقدار پیشفرض متن سیاه روی پسزمینه زرد طلایی است.
search-background
- --search-selected-foreground
- رنگ متن و پسزمینه برای تطابق جستجوی انتخابشده فعلی. این همان تطابق متمرکزشدهای است که هنگام استفاده از ناوبری بعدی/قبلی جستجو به آن پرش میشود.
مقادیر معتبر:
- •
- هگزادسیمال (#RRGGBB یا RRGGBB)
- •
- نام رنگهای X11
- •
- “cell-foreground” برای مطابقت با رنگ متن سلول
- •
- “cell-background” برای مطابقت با رنگ پسزمینه سلول
مقدار پیشفرض متن سیاه روی پسزمینه هلویی ملایم است.
search-selected-background
- --command
- دستور مورد اجرا، معمولاً یک پوسته (shell). اگر یک مسیر مطلق نباشد، در PATH جستجو خواهد شد. اگر این گزینه تنظیم نشود، مقدار پیشفرض از سیستم شما واکشی میشود. قوانین جستجوی پیشفرض عبارتند از:
- •
- متغیر محیطی SHELL
- •
- ورودی passwd (اطلاعات کاربر)
این گزینه میتواند حاوی آرگومانهای اضافی برای اجرای دستور باشد. اگر آرگومانهای اضافی ارائه شوند، دستور با استفاده از /bin/sh -c اجرا خواهد شد تا بسط آرگومانهای پوسته به آن واگذار شود.
برای جلوگیری کامل از بسط پوسته، دستور را با پیشوند direct: آغاز کنید؛ برای مثال: direct:nvim foo. این کار از ارجاع به /bin/sh جلوگیری میکند اما هیچیک از تحلیلهای پوسته مانند آرگومانهای دارای فاصله، مسیرهای دارای ~، الگوهای glob و غیره را پشتیبانی نخواهد کرد. (موجود از نسخه: 1.2.0 به بعد)
همچنین میتوانید صراحتاً دستور را با پیشوند shell: آغاز کنید تا همیشه دستور در یک پوسته محصور شود. این کار میتواند برای اطمینان از عدم استفاده از روشهای تشخیصی خودکار در صورت اشتباه بودن آنها استفاده شود. (موجود از نسخه: 1.2.0 به بعد)
این دستور برای تمام صفحات ترمینال جدید، یعنی پنجرهها، زبانهها و غیره استفاده خواهد شد. اگر میخواهید دستوری را فقط برای اولین صفحه ترمینال ایجادشده در هنگام شروع Ghostty اجرا کنید، از پیکربندی initial-command استفاده نمایید.
شبیهساز Ghostty از پرچم متداول -e برای اجرای یک دستور به همراه آرگومانهایش پشتیبانی میکند؛ برای مثال: ghostty -e fish --with --custom --args. این پرچم پیکربندی initial-command را تنظیم میکند، برای اطلاعات بیشتر آن را ببینید.
- --initial-command
- این گزینه همانند “command” است، اما فقط برای اولین صفحه ترمینال ایجادشده در هنگام شروع Ghostty اعمال میشود. صفحات ترمینال بعدی از پیکربندی command استفاده خواهند کرد.
پس از ایجاد (یا بسته شدن) اولین صفحه ترمینال، راهی برای اجرای مجدد این دستور اولیه به صورت خودکار وجود ندارد. به این ترتیب، تنظیم این گزینه در زمان اجرا کار میکند اما فقط بر صفحه ترمینال بعدی تأثیر میگذارد اگر آن صفحه اولین صفحهای باشد که تا به حال ایجاد شده است.
اگر از خط فرمان ghostty استفاده میکنید، یک میانبر برای تنظیم مستقیم این مورد به همراه آرگومانها وجود دارد: میتوانید از پرچم -e استفاده کنید. برای مثال: ghostty -e fish --with --custom --args. پرچم -e به طور خودکار برخی رفتارهای دیگر را نیز تحمیل میکند:
- •
- بسط پوسته را غیرفعال میکند زیرا انتظار میرود ورودی از قبل توسط بالادست بسط داده شده باشد (مانند پوستهای که برای تایپ دستور ghostty -e استفاده شده است).
- •
- gtk-single-instance=false - این اطمینان میدهد که یک نمونه جدید اجرا شده و آرگومانهای CLI رعایت میشوند.
- •
- quit-after-last-window-closed=true - این اطمینان حاصل میکند که با خروج دستور، فرایند Ghostty نیز خاتمه مییابد. علاوه بر این، quit-after-last-window-closed-delay حذف میشود.
- •
- shell-integration=detect (اگر none نباشد) - این از تزریق اجباری هرگونه ادغام پوسته پیکربندیشده به محیط دستور جلوگیری میکند. با -e بسیار بعید است که در حال اجرای یک پوسته باشید و ادغام اجباری پوسته احتمالاً مشکلاتی ایجاد میکند (مانند پیچیدن دستور شما در یک پوسته، تنظیم متغیرهای محیطی و غیره). این یک اقدام ایمنی برای جلوگیری از رفتارهای غیرمنتظره است. اگر میخواهید دستور اجراشده با -e دارای ادغام پوسته باشد، باید نام باینری خود را به درستی انتخاب کرده یا اسکریپت ادغام پوسته را به صورت دستی بارگیری نمایید.
- --notify-on-command-finish
- کنترل زمان ارسال اعلانهای اتمام دستور. سه گزینه وجود دارد:
- •
- never - هرگز اعلان ارسال نشود (پیشفرض).
- •
- unfocused - فقط در صورتی اعلان ارسال شود که صفحهای که دستور در آن اجرا میشود متمرکز نباشد.
- •
- always - همیشه اعلان ارسال شود.
اعلانهای اتمام دستور نیازمند فعال بودن ادغام پوسته هستند، یا اینکه پوسته شما دنبالههای گریز OSC 133 را برای مشخص کردن شروع و پایان دستورات ارسال کند.
در GTK، یک آیتم منوی زمینه وجود دارد که اعلانهای اتمام دستور را برای یک دستور منفرد فعال میکند و گزینههای never و unfocused را لغو مینماید.
موجود از نسخه 1.3.0 به بعد.
- --notify-on-command-finish-action
- اگر اعلانهای اتمام دستور فعال باشند، این گزینه نحوه اطلاعرسانی به کاربر را کنترل میکند.
گزینههای موجود:
- •
- bell - زنگ ترمینال؛ بهطور پیشفرض فعال است.
- •
- notify - اعلان دسکتاپ؛ بهطور پیشفرض غیرفعال است.
گزینهها را میتوان با درج آنها در قالب یک فهرست جداشده با کاما ترکیب کرد. با افزودن پیشوند no- میتوان گزینهها را نفی کرد؛ برای مثال: no-bell,notify.
موجود از نسخه 1.3.0 به بعد.
- --notify-on-command-finish-after
- اگر اعلانهای اتمام دستور فعال باشند، این گزینه کنترل میکند که یک دستور قبل از ارسال اعلان چه مدت باید در حال اجرا بوده باشد. مقدار پیشفرض پنج ثانیه است.
مدتزمان به صورت یک سری اعداد و به دنبال آنها واحدهای زمانی مشخص میشود. استفاده از فاصله میان اعداد و واحدها مجاز است. هر عدد و واحد با هم جمع میشوند تا کل مدتزمان را تشکیل دهند.
واحدهای زمانی مجاز عبارتند از:
- •
- y - ۳۶۵ روز استاندارد SI، یا ۸۷۶۰ ساعت، یا ۳۱۵۳۶۰۰۰ ثانیه. هیچ تعدیلی برای سالهای کبیسه یا ثانیههای کبیسه انجام نمیشود.
- •
- d - یک روز SI، یا ۸۶۴۰۰ ثانیه.
- •
- h - یک ساعت، یا ۳۶۰۰ ثانیه.
- •
- m - یک دقیقه، یا ۶۰ ثانیه.
- •
- s - یک ثانیه.
- •
- ms - یک میلیثانیه، یا 0.001 ثانیه.
- •
- us یا µs - یک میکروثانیه، یا 0.000001 ثانیه.
- •
- ns - یک نانوثانیه، یا 0.000000001 ثانیه.
مثالها: * 1h30m * 45s
واحدها را میتوان تکرار کرد و مقادیر با یکدیگر جمع میشوند. این بدان معناست که 1h1h معادل 2h است. این مورد گیجکننده است و باید از آن اجتناب شود. در بهروزرسانیهای آینده ممکن است این عمل غیرمجاز گردد.
حداکثر مقدار 584y 49w 23h 34m 33s 709ms 551µs 615ns است. هر مقداری بزرگتر از این به حداکثر مقدار محدود خواهد شد.
موجود از نسخه 1.3.0 به بعد.
- --env
- متغیرهای محیطی اضافی برای انتقال به دستورات اجراشده در یک صفحه ترمینال. قالب آن env=KEY=VALUE است.
env = foo=bar env = bar=baz
تنظیم env روی یک رشته خالی، کل نگاشت را به مقدار پیشفرض (خالی) بازنشانی میکند.
env =
تنظیم یک کلید روی یک رشته خالی، آن کلید خاص و مقدار متناظر آن را از نگاشت حذف میکند.
env = foo=bar env = foo=
منجر به عدم ارسال foo به دستورات اجراشده خواهد شد.
تنظیم مکرر یک کلید، ورودیهای قبلی را بازنویسی میکند.
env = foo=bar env = foo=baz
منجر به ارسال foo=baz به دستورات اجراشده خواهد شد.
این متغیرهای محیطی هرگونه متغیر محیطی از پیش تنظیمشده توسط Ghostty را لغو میکنند. برای مثال، اگر GHOSTTY_RESOURCES_DIR را تنظیم کنید، مقداری که در اینجا تعیین کردهاید مقداری را که Ghostty معمولاً به صورت خودکار تزریق میکند لغو خواهد کرد.
این متغیرهای محیطی به دستوراتی که توسط Ghostty برای مقاصد دیگر اجرا میشوند، مانند open یا xdg-open که برای باز کردن آدرسهای اینترنتی در مرورگر شما استفاده میشوند، منتقل نخواهند شد.
موجود از نسخه: 1.2.0 به بعد.
- --input
- دادههایی که در هنگام راهاندازی به عنوان ورودی به دستور ارسال میشوند.
دستور پیکربندیشده command با استفاده از قوانین معمول راهاندازی خواهد شد، سپس دادههای مشخصشده در این ورودی قبل از اینکه ورودی دیگری امکان ارائه داشته باشد به pty نوشته میشوند.
بایتها دقیقاً همانطور که هستند و بدون رمزگذاری اضافی ارسال میشوند. بنابراین، درباره ورودیهایی که میتوانند حاوی کاراکترهای کنترلی باشند محتاط باشید، زیرا این امر میتواند برای اجرای برنامهها در یک پوسته استفاده شود.
قالب این مقدار به صورت زیر است:
- •
- raw:<string> - ارسال متن خام بدون تغییر. این گزینه از نحو لیترال رشته Zig استفاده میکند تا بتوانید کاراکترهای کنترلی و سایر گریزهای استاندارد را مشخص کنید.
- •
- path:<path> - خواندن یک مسیر فایل و ارسال محتویات آن. مسیر باید به فایلی با طول محدود اشاره داشته باشد. برای مثال، از دستگاههایی مانند /dev/stdin یا /dev/urandom استفاده نکنید زیرا این موارد راهاندازی ترمینال را برای مدت نامحدود مسدود میکنند. فایلها برای جلوگیری از مصرف بیش از حد حافظه به اندازه 10MB محدود شدهاند. اگر فایلهای بزرگتری دارید، باید اسکریپتی برای خواندن فایل و ارسال آن به ترمینال بنویسید.
اگر هیچ پیشوند معتبری یافت نشود، به عنوان یک ورودی raw: فرض میشود. این یک انتخاب ارگونومیک است تا به شما امکان دهد به سادگی بنویسید input = "Hello, world!" (یک حالت متداول) بدون نیاز به افزودن پیشوند raw: به هر مقدار.
این تنظیم میتواند چندین بار برای ارسال دادههای بیشتر تکرار شود. دادهها مستقیماً و بدون هیچ نویسه جداکنندهای در بین آنها (مثلاً بدون خط جدید) به یکدیگر الحاق میشوند.
اگر هر یک از منابع ورودی وجود نداشته باشند، هیچیک از ورودیها ارسال نخواهند شد. منابع ورودی تا زمان راهاندازی ترمینال بررسی نمیشوند، بنابراین مسیرهای ناموجود در اعتبارسنجی کانفیگ ظاهر نخواهند شد.
تغییر این پیکربندی در زمان اجرا فقط بر ترمینالهای جدید تأثیر میگذارد.
موجود از نسخه: 1.2.0 به بعد.
- --wait-after-command
- اگر true باشد، پنجره ترمینال را پس از خروج دستور باز نگه میدارد. بهطور معمول، پنجره ترمینال هنگامی که دستور در حال اجرا (مانند یک پوسته) خارج میشود، بسته میشود. با فعال بودن این گزینه، پنجره ترمینال تا زمان دریافت هرگونه فشردهشدن کلید باز خواهد ماند.
این قابلیت در درجه اول برای اسکریپتها یا اشکالزدایی مفید است.
- --abnormal-command-exit-runtime
- تعداد میلیثانیههای زمان اجرا که کمتر از آن، خروج یک فرایند را غیرعادی تلقی میکنیم. این برای نمایش یک پیام خطا در زمانی که فرایند خیلی سریع خارج میشود استفاده میشود.
در لینوکس، این باید با یک کد خروج غیرصفر همراه باشد. در macOS، به دلیل نحوه راهاندازی فرایندهای پوسته از طریق دستور login، هر کد خروجی را مجاز میدانیم.
- --scrollback-limit
- اندازه بافر تاریخچه پیمایش (scrollback) بر حسب بایت. این مقدار همچنین صفحه فعال را شامل میشود. مهم نیست این مقدار روی چه عددی تنظیم شود، همیشه حافظه کافی برای صفحه قابل مشاهده تخصیص داده میشود و هر آنچه باقی بماند حد مجاز تاریخچه پیمایش خواهد بود.
هنگامی که این حد حاصل شود، قدیمیترین خطوط از بافر پیمایش حذف میشوند.
تاریخچه پیمایش در حال حاضر کاملاً در حافظه نگهداری میشود. این بدان معنی است که هرچه این مقدار بزرگتر باشد، میزان مصرف بالقوه حافظه بیشتر خواهد بود. بافر پیمایش به صورت تنبل (lazy) تا این حد تخصیص داده میشود، بنابراین اگر آن را روی یک مقدار بسیار بزرگ تنظیم کنید، بلافاicherweise حافظه زیادی مصرف نخواهد کرد.
این اندازه به ازای هر صفحه ترمینال است، نه برای کل برنامه.
در حال حاضر تنظیم بافر پیمایش نامحدود امکانپذیر نیست. این قابلیت برای آینده برنامهریزی شده است.
این تنظیم در زمان اجرا قابل تغییر است اما فقط بر صفحات ترمینال جدید تأثیر میگذارد.
- --scrollbar
- کنترل زمان نمایش نوار پیمایش (scrollbar) برای پیمایش بافر تاریخچه.
مقدار پیشفرض system است.
مقادیر معتبر:
- •
- system - پیروی از تنظیمات سیستم برای زمان نمایش نوارهای پیمایش. برای مثال در macOS، این از تنظیم سیستم “رفتار نوار پیمایش” تبعیت میکند که بهطور پیشفرض معمولاً فقط هنگام اسکرول فعال یا بردن ماوس روی شیار اسکرول نوارها را نمایش میدهد.
- •
- never - هرگز نوار پیمایش نمایش داده نشود. همچنان میتوانید با استفاده از ماوس، کلیدهای میانبر و غیره پیمایش کنید اما ویجت بصری نوار پیمایش در رابط کاربری نخواهید داشت.
- --link
- تطبیق یک عبارت باقاعده (regex) با متن ترمینال و پیوند دادن کلیک روی آن با یک اقدام. این میتواند برای تطبیق URLها، مسیرهای فایل و غیره استفاده شود. اقدامات میتوانند باز کردن با استفاده از بازکننده سیستم (مانند open یا xdg-open) یا اجرای هر اقدام میانبر دلخواه باشند.
پیوندهایی که زودتر پیکربندی شدهاند نسبت به پیوندهایی که بعداً پیکربندی شدهاند اولویت دارند.
یک پیوند پیشفرض که نشانیهای وب را مطابقت داده و آنها را در بازکننده سیستم باز میکند همیشه وجود دارد. این را میتوان با استفاده از link-url غیرفعال کرد.
نکته: این مورد در حال حاضر قابل تنظیم نیست!
- --link-url
- فعالسازی تطبیق نشانی وب (URL). نشانیهای وب با نگهداشتن control (لینوکس) یا command (سیستمعامل macOS) و بردن ماوس روی آنها مطابقت داده شده و با استفاده از برنامه پیشفرض سیستم برای نشانی وب مربوطه باز میشوند.
تطبیقدهنده URL همیشه پایینترین اولویت را در میان پیوندهای پیکربندیشده دارد (به link مراجعه کنید). اگر میخواهید تطبیق URL را سفارشیسازی کنید، از link استفاده کرده و این گزینه را غیرفعال نمایید.
- --link-previews
- نمایش پیشنمایش پیوند برای نشانیهای وب منطبقشده.
هنگامی که true باشد، پیشنمایش پیوند برای تمام نشانیهای وب منطبق نشان داده میشود. هنگامی که false باشد، پیشنمایشهای پیوند هرگز نمایش داده نمیشوند. هنگامی که روی “osc8” تنظیم شود، پیشنمایشهای پیوند فقط برای ابرپیوندهایی نمایش داده میشوند که با دنباله OSC 8 ایجاد شدهاند (در این حالت، متن پیوند میتواند با مقصد پیوند متفاوت باشد).
موجود از نسخه: 1.2.0 به بعد.
- --maximize
- باز شدن پنجره در حالت حداکثر (بزرگشده) یا عدم آن. این تنظیم برای پنجرههای جدید اعمال میشود و برای زبانهها، تقسیمات و غیره اعمال نمیشود. با این حال، این تنظیم برای تمام پنجرههای جدید اعمال خواهد شد، نه فقط پنجره اول.
موجود از نسخه: 1.1.0 به بعد.
- --fullscreen
- باز شدن پنجرههای جدید در حالت تمامصفحه. این تنظیم برای پنجرههای جدید اعمال میشود و برای زبانهها، تقسیمات و غیره اعمال نمیشود. با این حال، این تنظیم برای تمام پنجرههای جدید اعمال خواهد شد، نه فقط پنجره اول.
مقادیر مجاز عبارتند از:
- •
- false - در حالت تمامصفحه باز نشود (پیشفرض).
- •
- true - باز شدن در حالت تمامصفحه بومی.
- •
- non-native - (فقط در macOS) باز شدن در تمامصفحه غیربومی، با پنهان کردن نوار منو. این حالت سریعتر از تمامصفحه بومی است زیرا از پویانمایی استفاده نمیکند. در پلتفرمهای غیر macOS، همانند true رفتار میکند.
- •
- non-native-visible-menu - (فقط در macOS) باز شدن در تمامصفحه غیربومی، با نمایان نگه داشتن نوار منو. در پلتفرمهای غیر macOS، همانند true رفتار میکند.
- •
- non-native-padded-notch - (فقط در macOS) باز شدن در تمامصفحه غیربومی، با پنهان کردن نوار منو اما در نظر گرفتن حاشیه برای بریدگی نمایشگر (notch) در دستگاههای مربوطه. در پلتفرمهای غیر macOS، همانند true رفتار میکند.
مهم: زبانهها با حالتهای تمامصفحه غیربومی کار نمیکنند. تمامصفحه غیربومی نوار عنوان را حذف میکند و زبانههای بومی macOS به نوار عنوان نیاز دارند. اگر از زبانهها استفاده میکنید، به جای آن از true (بومی) استفاده نمایید.
در macOS، در صورتی که window-decoration روی false تنظیم شده باشد، true (تمامصفحه بومی) کار نخواهد کرد زیرا تمامصفحه بومی در macOS به تزئینات پنجره نیاز دارد.
- --title
- عنوانی که Ghostty برای پنجره استفاده خواهد کرد. این گزینه عنوان پنجره را همیشه به این عنوان اجبار میکند و Ghostty هرگونه دنباله گریز تنظیم عنوان را که برنامهها (مانند Neovim) ارسال میکنند نادیده خواهد گرفت.
اگر یک عنوان خالی میخواهید، با قرار دادن مقدار در علامت نقلقول، آن را روی یک یا چند فاصله تنظیم کنید؛ برای مثال: title = " ". این کار عنوان را به طور موثری پنهان میکند. این مورد ضروری است زیرا تنظیم یک مقدار خالی، عنوان را به مقدار پیشفرض برنامه در حال اجرا بازنشانی میکند.
این پیکربندی میتواند در زمان اجرا مجدداً بارگیری شود. اگر تنظیم شود، عنوان برای تمام پنجرهها بهروزرسانی میشود. اگر لغو شود، دنباله گریز تغییر عنوان بعدی رعایت خواهد شد اما تغییرات قبلی به صورت گذشتهنگر اعمال نخواهند شد. حالت دوم ممکن است شما را ملزم کند برنامههایی مانند Neovim را مجدداً راهاندازی کنید تا عنوان جدید را دریافت نمایید.
- --class
- تنظیمی که مقدار کلاس (class) برنامه را تغییر میدهد.
این گزینه فیلد کلاس ویژگی X11 با نام WM_CLASS (هنگام اجرا تحت X11)، شناسه برنامه Wayland (هنگام اجرا تحت Wayland)، و نام گذرگاهی (bus name) را که Ghostty برای اتصال به DBus استفاده میکند کنترل مینماید.
توجه داشته باشید که تغییر این مقدار میان فراخوانیها، نمونههای جدید و جداگانهای از Ghostty را هنگام اجرا با gtk-single-instance=true ایجاد خواهد کرد. برای جزئیات بیشتر آن گزینه را ببینید.
تغییر این مقدار ممکن است راهاندازی Ghostty را از فایلهای .desktop، از طریق فعالسازی DBus، یا سرویسهای کاربری systemd با اختلال مواجه کند زیرا سیستم انتظار دارد Ghostty در هنگام راهاندازی با استفاده از class پیشفرض به DBus متصل شود.
نام کلاس باید از الزامات تعریفشده در مستندات GTKپیروی کند.
پیشفرض com.mitchellh.ghostty است.
این گزینه فقط نسخههای GTK را تحت تأثیر قرار میدهد.
- --x11-instance-name
- این گزینه فیلد نام نمونه ویژگی X11 با نام WM_CLASS را هنگام اجرا تحت X11 کنترل میکند. در غیر این صورت هیچ تاثیری ندارد.
پیشفرض ghostty است.
این گزینه فقط نسخههای GTK را تحت تأثیر قرار میدهد.
- --working-directory
- دایرکتوری که پس از شروع دستور باید به آن تغییر یابد (دایرکتوری کاری).
این تنظیم نسبت به تنظیم window-inherit-working-directory در درجه دوم اهمیت قرار دارد. اگر یک ترمینال قبلی Ghostty در همان فرایند وجود داشته باشد، window-inherit-working-directory اولویت خواهد داشت. در غیر این صورت، از این تنظیم استفاده خواهد شد. بهطور معمول، این تنظیم فقط برای پنجره اول استفاده میشود.
پیشفرض inherit است به جز در سناریوهای ویژهای که در ادامه ذکر شدهاند. در macOS، اگر Ghostty تشخیص دهد که از launchd (دوبار کلیک) یا open اجرا شده است، پیشفرض به home تغییر مییابد. در لینوکس با GTK، اگر Ghostty تشخیص دهد که از یک اجراکننده دسکتاپ راهاندازی شده است، پیشفرض به home تغییر مییابد.
مقدار این گزینه باید یک مسیر مطلق، یک مسیر با پیشوند ~/ (علامت تیلدا به دایرکتوری خانگی کاربر بسط داده میشود)، یا یکی از مقادیر ویژه زیر باشد:
- •
- home - دایرکتوری خانگی کاربری که در حال اجرا است.
- •
- inherit - دایرکتوری کاری فرایند راهانداز.
- --keybind
- کلیدهای میانبر. قالب آن trigger=action است. محرکهای تکراری مقادیر تنظیمشده قبلی را بازنویسی خواهند کرد. فهرست اقدامات در مستندات یا با استفاده از دستور ghostty +list-actions در دسترس است.
محرک (Trigger): فهرستی از کلیدها و کلیدهای اصلاحکننده که با + از هم جدا شدهاند. مثال: ctrl+a، ctrl+shift+b، up.
اگر کلید یک نقطه کد تکی یونیکد باشد، محرک با هر بار فشردن کلیدی که آن نقطه کد را تولید کند مطابقت داده خواهد شد. این موارد تحت تأثیر چیدمانهای صفحهکلید قرار دارند. برای مثال، a با کلید a در صفحهکلید QWERTY مطابقت دارد، اما با کلید q در صفحهکلید AZERTY مطابقت خواهد داشت (با فرض چیدمان فیزیکی ایالات متحده).
برای نقاط کد یونیکد، تطبیق با مقایسه مجموعه اصلاحکنندهها با نقطه کد اصلاحنشده انجام میشود. نقطه کد اصلاحنشده در برخی نرمافزارهای دیگر گاهی “نویسه شیفتنیافته” نامیده میشود، اما همه اصلاحکنندهها در نظر گرفته میشوند، نه فقط کلید shift. برای مثال، ctrl+a با a مطابقت دارد اما با ctrl+shift+a (که در صفحهکلید ایالات متحده A است) مطابقت ندارد.
علاوه بر این، تطبیق نقطه کد به بزرگی و کوچکی حروف حساس نیست و نقطه کد اصلاحنشده همیشه برای مقایسه همسانسازی (case folded) میشود. در نتیجه، ctrl+A پیکربندیشده هنگام فشرده شدن ctrl+a فعال خواهد شد. توجه داشته باشید که این به این معنی است که برخی از ترکیبهای کلیدی بسته به چیدمان صفحهکلید غیرممکن هستند. برای مثال، ctrl+_ در صفحهکلید ایالات متحده غیرممکن است زیرا _ همان shift+- است و ctrl+shift+- با ctrl+_ برابر نیست (چون اصلاحکنندهها مطابقت ندارند!). جزئیات بیشتر در مورد ترکیبهای کلیدی غیرممکن را میتوانید در این منبع عالی نوشتهشده توسط توسعهدهندگان Qt بیابید: https://doc.qt.io/qt-6/qkeysequence.html#keyboard-layout-issues
کدهای کلید فیزیکی را میتوان با استفاده از هر یک از کدهای کلید مشخصشده در مشخصات استاندارد W3Cتعیین کرد. برای مثال، KeyA صرفنظر از چیدمان صفحهکلید، با کلید فیزیکی a در یک صفحهکلید استاندارد ایالات متحده مطابقت خواهد داشت. این کدها به بزرگی و کوچکی حروف حساس هستند.
به دلایل زیباییشناختی، کدهای w3c از نگارش snake_case نیز پشتیبانی میکنند. برای مثال، key_a معادل KeyA است. تنها استثنا کلیدهای تابع هستند؛ مثلاً F1 به صورت f1 است (بدون زیرخط). این نتیجه استفاده کدهای داخلی ما از snake_case است اما عمداً پشتیبانی و آزمایش شده است تا استفاده از آن ایمن باشد. این امر امکان تعریف میانبر با حروف کاملاً کوچک را فراهم میکند که از نظر بصری زیباتر است.
کلیدهای تابع مانند insert، up، f5 و غیره نیز با استفاده از کلیدهای مشخصشده در مستندات W3C که قبلاً پیوند داده شد، تعیین میشوند.
کلیدهای فیزیکی همیشه با اولویت بالاتری نسبت به نقاط کد یونیکد مطابقت داده میشوند، بنابراین اگر هم a و هم KeyA را تعیین کنید، کلید فیزیکی صرفنظر از ترتیب پیکربندی آنها همیشه استفاده خواهد شد.
کلید ویژه catch_all میتواند برای تطبیق با هر کلیدی که به شکل دیگری مقید نشده است استفاده شود. این را میتوان با اصلاحکنندهها ترکیب کرد؛ برای مثال ctrl+catch_all با هر کلیدی که همراه با ctrl فشرده شود و میانبر دیگری نداشته باشد مطابقت خواهد داشت. هنگام جستجوی میانبر، Ghostty ابتدا سعی میکند catch_all را با اصلاحکنندهها مطابقت دهد. اگر تطابقی یافت نشود و رویداد دارای اصلاحکننده باشد، به catch_all بدون اصلاحکننده بازمیگردد.
اصلاحکنندههای معتبر عبارتند از: shift، ctrl (نام مستعار: control)، alt (نام مستعار: opt، option) و super (نام مستعار: cmd، command). میتوانید از خود نام اصلاحکننده یا نام مستعار آن استفاده کنید. هنگام اشکالزدایی کلیدهای میانبر، همواره از اصلاحکننده اصلی (غیر مستعار) در خروجی استفاده خواهد شد.
نکته: کلید fn یا کلید “کره زمین (globe)” در صفحهکلیدها به عنوان اصلاحکننده پشتیبانی نمیشود. این یک محدودیت از سوی سیستمهای عامل و تولکیتهای رابط کاربری گرافیکی است که Ghostty از آنها استفاده میکند.
چند نکته تکمیلی درباره محرکها:
- •
- اصلاحکنندهها نمیتوانند تکرار شوند؛ ctrl+ctrl+a نامعتبر است.
- •
- اصلاحکنندهها و کلیدها میتوانند به هر ترتیبی باشند؛ shift+a+ctrl نامتعارف است اما معتبر است.
- •
- فقط یک ورودی کلید مجاز است؛ ctrl+a+b نامعتبر است.
شما همچنین میتوانید چندین محرک را که با > از هم جدا شدهاند مشخص کنید تا نیاز به دنبالهای از محرکها برای فعال کردن اقدام باشد. برای مثال، ctrl+a>n=new_window تنها در صورتی اقدام new_window را فعال میکند که کاربر ابتدا ctrl+a و سپس به صورت جداگانه n را فشار دهد. در نرمافزارهای دیگر، این قابلیت گاهی کلید لیدر (leader key)، آکورد کلید (chord)، جدول کلید و غیره نامیده میشود. هیچ محدودیت ثابتی برای تعداد بخشها در یک دنباله وجود ندارد.
هشدار: اگر یک دنباله را به عنوان آرگومان خط فرمان برای ghostty تعریف میکنید، احتمالاً باید میانبر را در علامت نقلقول قرار دهید زیرا > در بیشتر پوستهها یک کاراکتر ویژه است. مثال: ghostty --keybind='ctrl+a>n=new_window'
یک دنباله محرک رفتارهای خاصی دارد:
- •
- شبیهساز Ghostty برای دریافت کلید بعدی در دنباله برای مدت نامحدودی منتظر میماند. راهی برای تعیین زمان انقضا (timeout) وجود ندارد. تنها راه برای اجبار خروجی یک کلید پیشوند این است که میانبر دیگری برای خروجی اختصاصی آن کلید اختصاص دهید (مثلاً ctrl+a>ctrl+a=text:foo) یا کلیدی را فشار دهید که میانبری ندارد که در این صورت هر دو کلید به برنامه ارسال میشوند.
- •
- اگر در طول یک دنباله کلیدی فشرده شود که میانبری ندارد و میانبر catch_all وجود داشته باشد که ورودی را ignore کند، کل دنباله رها شده و اتفاقی نمیافتد. در غیر این صورت، کل دنباله کدگذاری شده و طوری به برنامه در حال اجرا ارسال میشود که گویی هیچ میانبری وجود نداشته است.
- •
- اگر یک پیشوند در یک دنباله از قبل مقید شده باشد، دنباله بر میانبر قبلی اولویت خواهد داشت. برای مثال، اگر ctrl+a به new_window مقید باشد و ctrl+a>n به new_tab، فشردن ctrl+a کاری انجام نمیدهد.
- •
- علاوه بر مورد فوق، اگر یک پیشوند دنباله از قبل مقیدشده در یک میانبر جدید و غیردنبالهای استفاده شود، کل دنباله قبلی آزاد خواهد شد. برای مثال، اگر ctrl+a>n و ctrl+a>t را مقید کنید و سپس مستقیماً ctrl+a را مقید نمایید، هر دو میانبر ctrl+a>n و ctrl+a>t آزاد خواهند شد.
- •
- دنبالههای محرک برای محرکهای دارای پیشوند global: یا all: مجاز نیستند. این محدودیتی است که در آینده میتوانیم آن را برطرف کنیم.
اقدام (Action) کاری است که هنگام برآورده شدن محرک انجام میشود. قالب آن به صورت action یا action:param است. قالب دوم تنها در صورتی معتبر است که اقدام به پارامتر نیاز داشته باشد.
- •
- ignore - هیچ کاری انجام ندهد، ورودی کلید را نادیده بگیرد. این میتواند برای بیاثر کردن ورودیهای خاص استفاده شود.
- •
- unbind - حذف میانبر. این باعث میشود اقدام قبلی حذف شده و کلید در صورت قابل چاپ بودن به دستور فرزند ارسال شود. دستور unbind هر محرک منطبقی را حذف میکند، از جمله محرکهای دارای پیشوند physical: بدون نیاز به تعیین پیشوند.
- •
- csi:text - ارسال یک دنباله CSI. به عنوان مثال، csi:A حرکت مکاننما به بالا را ارسال میکند.
- •
- esc:text - ارسال یک دنباله گریز. به عنوان مثال، esc:d تا انتهای کلمه سمت راست را حذف میکند.
- •
- text:text - ارسال یک رشته متنی. از نحو لیترال رشته Zig استفاده میکند. برای مثال، text:\x15 کلید Ctrl-U را ارسال میکند.
- •
- سایر اقدامات را میتوان در مستندات یا با استفاده از دستور ghostty +list-actions مشاهده کرد.
چند نکته درباره اقدام:
- •
- پارامتر بعد از علامت : دقیقاً همانطور که هست دریافت میشود. علامتهای نقلقول دوتایی یا سازوکارهای دیگر گنجانده شده و تجزیه نمیشوند. اگر میخواهید مقدار رشتهای حاوی فاصله ارسال کنید، کل محرک/اقدام را در علامت نقلقول دوتایی قرار دهید؛ مانند: --[dq]keybind=up=csi:A B".
برخی مقادیر ویژه تکمیلی وجود دارند که میتوانند برای keybind تعیین شوند:
- •
- keybind=clear تمام کلیدهای میانبر تنظیمشده را پاک میکند. هشدار: این دستور تمام کلیدهای میانبر تا این نقطه، از جمله کلیدهای میانبر پیشفرض را حذف میکند.
محرک کلید میانبر میتواند با برخی مقادیر ویژه پیشوندگذاری شود تا رفتار میانبر را تغییر دهد:
- •
- all:
اعمال کلید میانبر بر تمام صفحات ترمینال. بهطور پیشفرض، میانبرها فقط برای صفحه ترمینال متمرکزشده اعمال میشوند. اگر این پیشوند وجود داشته باشد، میانبر به تمام صفحات ترمینال ارسال میشود. این فقط برای اقداماتی اعمال میشود که مختص صفحه هستند. برای اقداماتی که از قبل سراسری هستند (مانند quit)، این پیشوند تاثیری ندارد.
موجود از نسخه: 1.0.0 به بعد.
- •
- global:
سراسری کردن کلید میانبر در کل سیستم. بهطور پیشفرض، کلیدهای میانبر فقط در داخل Ghostty و تحت شرایط مناسب کار میکنند (برنامه متمرکز باشد، ترمینال فعال باشد و غیره). اگر میخواهید یک کلید میانبر در سراسر سیستم شما کار کند (مثلاً حتی زمانی که پنجره Ghostty متمرکز نیست)، این پیشوند را مشخص کنید. این پیشوند متضمن all: است.
نکته: این قابلیت در همه محیطها کار نمیکند؛ برای اطلاعات بیشتر نکات تکمیلی زیر را ببینید.
موجود از نسخه: 1.0.0 در macOS، نسخه 1.2.0 در GTK.
- •
- unconsumed:
عدم مصرف ورودی. بهطور پیشفرض، یک میانبر ورودی را مصرف میکند، به این معنی که کدگذاری مرتبط (در صورت وجود) به برنامه در حال اجرا در ترمینال ارسال نخواهد شد. اگر مایلید مقدار کدگذاریشده به برنامه ارسال شود، پیشوند unconsumed: را قبل از کل میانبر مشخص کنید؛ برای مثال: unconsumed:ctrl+a=reload_config. کلیدهای میانبر با پیشوندهای global: و all: همیشه ورودی را صرفنظر از این تنظیم مصرف میکنند. از آنجا که آنها با صفحه ترمینال خاصی مرتبط نیستند، هرگز کدگذاری نمیشوند.
موجود از نسخه: 1.0.0 به بعد.
- •
- performable:
مصرف ورودی تنها در صورتی که اقدام قابل اجرا باشد. برای مثال، اقدام copy_to_clipboard تنها در صورتی ورودی را مصرف میکند که متنی برای کپی انتخاب شده باشد. اگر انتخابی وجود نداشته باشد، Ghostty طوری رفتار میکند که گویی میانبر تنظیم نشده است. این گزینه برای کلیدهای میانبر دارای پیشوند global: یا all: تاثیری ندارد. برای دنبالههای کلیدی، در صورتی که اقدام قابل اجرا نباشد، دنباله بازنشانی میشود (دقیقاً مشابه حالتی که اصلاً میانبری تنظیم نشده است).
میانبرهای قابل اجرا در منوی برنامه به عنوان میانبرهای منو ظاهر نمیشوند. دلیل آن این است که میانبرهای منو اقدام را بدون توجه به وضعیت ترمینال تحمیل میکنند. کلیدهای میانبر قابل اجرا همچنان کار خواهند کرد، فقط به عنوان برچسب میانبر در منو نمایش داده نمیشوند.
موجود از نسخه: 1.1.0 به بعد.
محرکهای کلید میانبر به ازای هر ترکیب پیشوند یکتا نیستند. برای مثال، ctrl+a و global:ctrl+a دو میانبر جداگانه نیستند. میانبری که دیرتر تنظیم شود، میانبری را که زودتر تنظیم شده است بازنویسی میکند. در این حالت، میانبر global: استفاده خواهد شد.
میتوان چندین پیشوند را مشخص کرد. برای مثال، global:unconsumed:ctrl+a=reload_config میانبر را در سطح سیستم سراسری میکند و ورودی را برای بارگیری مجدد کانفیگ مصرف نمینماید.
نکته: پیشوند global: فقط در macOS و برخی پلتفرمهای لینوکس پشتیبانی میشود.
در macOS، این قابلیت نیازمند اعطای دسترسیهای قابلیت دسترسی (Accessibility) به Ghostty است. هنگامی که یک میانبر global: مشخص شود و Ghostty راهاندازی یا بارگیری مجدد شود، Ghostty تلاش میکند این مجوزها را درخواست کند. اگر مجوزها اعطا نشوند، کلید میانبر کار نخواهد کرد. در macOS، میتوانید این مجوزها را در مسیر System Preferences -> Privacy & Security -> Accessibility پیدا کنید.
در لینوکس، به یک محیط رومیزی نیاز دارید که پروتکل Global Shortcuts را به عنوان بخشی از پیادهسازی پروتکل دسکتاپ XDG خود پیادهسازی کرده باشد. محیطهای رومیزی شناختهشدهای که از میانبرهای سراسری پشتیبانی میکنند (یا نمیکنند) عبارتند از:
- •
- کاربرانی که از KDE Plasma (از نسخه 5.27 به بعد) و GNOME (از نسخه 48 به بعد) استفاده میکنند باید بتوانند با کمترین یا بدون پیکربندی اضافی از میانبرهای سراسری استفاده کنند.
- •
- در Hyprland مقداری پیکربندی دستی لازم است. برای راهاندازی صحیح میانبرهای سراسری، مراحل ذکرشده در ویکی Hyprland را بررسی کنید. (نکته مهم: بسته xdg-desktop-portal-hyprland نیز باید نصب باشد!).
- •
- قابل توجه است که میانبرهای سراسری در کامپوزیتورهای مبتنی بر wlroots مانند Sway پیادهسازی نشدهاند (به گزارش بالادست مراجعه کنید).
اقدامات زنجیرهای (Chained Actions)
یک کلید میانبر میتواند با استفاده از کلمه کلیدی chain برای اقدامات بعدی، چندین اقدام داشته باشد. هنگامی که میانبر فعال میشود، تمام اقدامات زنجیرهای به ترتیب اجرا میشوند. نحو آن به این صورت است:
-
keybind = ctrl+a=new_window keybind = chain=goto_split:left
این دستور کلید ctrl+a را به این صورت مقید میکند که ابتدا یک پنجره جدید باز کند، سپس تمرکز را به بخش تفکیکشده سمت چپ منتقل نماید. هر ورودی chain یک اقدام را به جدیدترین کلید میانبر تعریفشده اضافه میکند. میتوانید هر تعداد اقدام را که میخواهید به صورت زنجیرهای پیوند دهید:
-
keybind = ctrl+a=new_window keybind = chain=goto_split:left keybind = chain=toggle_fullscreen
اقدامات زنجیرهای نمیتوانند پیشوندهایی مانند global: یا unconsumed: داشته باشند. پرچمهای میانبر اصلی برای کل زنجیره اعمال میشوند.
اقدامات زنجیرهای با دنبالههای کلیدی نیز کار میکنند. برای مثال:
-
keybind = ctrl+a>n=new_window keybind = chain=goto_split:left
زنجیرهها در دنبالههای کلیدی برای آخرین اتصال در دنباله اعمال میشوند.
کلیدهای میانبر زنجیرهای از نسخه Ghostty 1.3.0 در دسترس هستند.
جداول کلید (Key Tables)
شما همچنین میتوانید مجموعهای نامگذاریشده از کلیدهای میانبر را ایجاد کنید که به عنوان یک “جدول کلید” شناخته میشود. یک جدول کلید باید صراحتاً فعال شود تا میانبرهای آن در دسترس قرار گیرند. این میتواند برای پیادهسازی قابلیتهایی مانند “حالت کپی (copy mode)”، “حالت ویم (vim mode)” و غیره استفاده شود. بهطور کلی، این ویژگی میتواند ورودی صفحهکلید چندحالته (modal) را پیادهسازی کند.
جداول کلید با استفاده از نحو <table>/<binding> تعریف میشوند. مقدار <binding> شامل تمام مواردی است که در بالا برای keybinds مستند شده است. مقدار <table> نام جدول کلید است. نامهای جدول میتوانند شامل هر چیزی به جز /، =، + و > باشند. کاراکترهای + و > برای نحو میانبرها (ترکیب اصلاحکنندهها و دنبالههای کلیدی) رزرو شدهاند. برای مثال، foo/ctrl+a=new_window یک میانبر را درون جدولی به نام foo تعریف میکند.
جداول با استفاده از اقدامات میانبر activate_key_table:<name> و deactivate_key_table فعال و غیرفعال میشوند. اقدامات میانبر دیگری نیز در رابطه با جدول وجود دارند؛ برای فهرست کامل به مستندات مراجعه کنید. اینها روش اصلی تعامل با جداول کلید هستند.
جستجوی میانبر از درونیترین جدول به سمت بیرون انجام میشود، بنابراین کلیدهای میانبر در جدول پیشفرض در دسترس باقی میمانند مگر اینکه صراحتاً در یک جدول درونی آزاد شده باشند.
یک جدول کلید دارای نحو و رفتارهای خاصی است:
- •
- <name>/ (بدون میانبر) یک جدول را تعریف و پاکسازی میکند، و تمام میانبرها و تنظیمات آن را بازنشانی مینماید.
- •
- نمیتوانید جدولی را که هماکنون درونیترین جدول است مجدداً فعال کنید؛ چنین تلاشهایی نادیده گرفته میشوند. با این حال، همان جدول میتواند چندین بار در پشته ظاهر شود تا زمانی که درونیترین نباشد (برای مثال، A -> B -> A -> B معتبر است، اما A -> B -> B معتبر نیست).
- •
- یک جدول میتواند در حالت یکباره (one-shot) با استفاده از activate_key_table_once:<name> فعال شود. یک جدول یکباره هنگامی که هر میانبر غیر catch-all فراخوانی شود، به طور خودکار غیرفعال میگردد.
- •
- دنبالههای کلیدی درون جداول کار میکنند: foo/ctrl+a>ctrl+b=new_window. اگر کلید نامعتبری فشرده شود، دنباله پایان مییابد اما جدول همچنان فعال میماند.
- •
- اقدامات زنجیرهای درون جداول کار میکنند، کلمه کلیدی chain برای جدیدترین میانبر تعریفشده در جدول اعمال میشود؛ برای مثال اگر table/ctrl+a=new_window را تنظیم کنید، میتوانید با استفاده از chain=text:hello آن را زنجیره کنید. مهم: خود chain با نام جدول پیشوندگذاری نمیشود، زیرا برای جدیدترین میانبر در هر جدولی اعمال میگردد.
- •
- پیشوندهایی مانند global: درون جداول کار میکنند: foo/global:ctrl+a=new_window.
جداول
کلید از
نسخه Ghostty 1.3.0 در
دسترس
هستند.
- --key-remap
- نگاشت مجدد کلیدهای اصلاحکننده در داخل Ghostty. این به شما امکان میدهد کلیدهای اصلاحکننده را در سطح برنامه تعویض یا بازتعریف کنید بدون اینکه بر تنظیمات سراسری سیستم تأثیر بگذارد.
قالب آن from=to است که در آن هر دو from و to نام کلیدهای اصلاحکننده هستند. میتوانید از نامهای عمومی مانند ctrl، alt، shift، super (در macOS: cmd/command) یا نامهای دارای جهت مانند left_ctrl، right_alt و غیره استفاده کنید.
این گزینه چیدمان صفحهکلید یا کدگذاری کلیدها را در خارج از Ghostty تغییر نخواهد داد. برای مثال در macOS، ممکن است option+a همچنان å را تولید کند حتی اگر option به ctrl نگاشت مجدد شده باشد. محیطهای رومیزی معمولاً چیدمان کلید را مدتها قبل از اینکه Ghostty رویدادهای کلید را دریافت کند پردازش میکنند.
مثال:
-
key-remap = ctrl=super key-remap = left_control=right_alt
نکات مهم:
- •
- این یک نگاشت یکطرفه است. اگر ctrl=super را نگاشت کنید، کلید فیزیکی Ctrl مانند Super عمل میکند، اما کلید Super همچنان Super باقی میماند.
- •
- نگاشتها متعدی (transitive) نیستند. اگر ctrl=super و alt=ctrl را نگاشت کنید، فشردن Alt خروجی Ctrl را تولید میکند نه Super.
- •
- این گزینه بر هر دو تطبیق کلید میانبر و کدگذاری ورودی ترمینال تأثیر میگذارد. این بر چیدمان صفحهکلید یا نحوه تفسیر کلیدها قبل از دریافت آنها توسط Ghostty تأثیری ندارد. برای مثال، option+a در macOS ممکن است همچنان å تولید کند حتی اگر option به ctrl بازنگاشت شده باشد.
- •
- اصلاحکنندههای عمومی (مانند ctrl) با هر دو کلید فیزیکی چپ و راست مطابقت دارند. برای نگاشت مجدد تنها یک طرف، از نامهای دارای جهت (مانند left_ctrl) استفاده کنید.
سناریوهای خاص دیگری وجود دارند که ممکن است مطابق انتظار رفتار نکنند اما بر اساس نحوه طراحی این ویژگی، طبق برنامه کار میکنند:
- •
- در macOS، میانبرهای موجود در منوی اصلی قبل از انجام هرگونه نگاشت مجدد فعال میشوند. دلیل آن این است که خود macOS فعالسازی منو را مدیریت میکند و این امر قبل از دریافت رویداد کلید توسط Ghostty رخ میدهد. برای دور زدن این مشکل، باید موارد منو را آزاد کرده و آنها را با استفاده از اصلاحکننده مورد نظر خود مجدداً مقید کنید.
این پیکربندی میتواند برای تعیین چندین نگاشت مجدد تکرار شود.
- --window-padding-x
- فاصلهگذاری درونی (padding) افقی پنجره. این گزینه فاصلهگذاری را بین سلولهای ترمینال و حاشیههای چپ و راست پنجره اعمال میکند. مقدار بر حسب پوینت است، به این معنی که برای DPI صفحه نمایش به طور مناسب مقیاسبندی خواهد شد.
اگر این مقدار خیلی بزرگ تنظیم شود، صفحه چیزی رندر نخواهد کرد زیرا شبکه سلولها توسط فاصلهگذاری کاملاً فشرده میشود. این به عهده شما به عنوان کاربر است که مقداری منطقی انتخاب کنید. اگر مقدار غیرمنطقی انتخاب کنید، هشداری در لاگها ظاهر میشود.
تغییر این پیکربندی در زمان اجرا فقط بر ترمینالهای جدید، یعنی پنجرهها، زبانهها و غیره تأثیر میگذارد.
برای تنظیم فاصلهگذاری متفاوت در چپ و راست، دو مقدار عددی را که با کاما جدا شدهاند مشخص کنید. برای مثال، window-padding-x = 2,4 فاصله چپ را 2 و فاصله راست را 4 تنظیم میکند. اگر میخواهید هر دو فاصله را روی یک مقدار یکسان تنظیم کنید، میتوانید از یک مقدار تکی استفاده کنید؛ برای مثال window-padding-x = 2 هر دو فاصله را برابر با 2 قرار میدهد.
- --window-padding-y
- فاصلهگذاری درونی (padding) عمودی پنجره. این گزینه فاصلهگذاری را بین سلولهای ترمینال و حاشیههای بالا و پایین پنجره اعمال میکند. مقدار بر حسب پوینت است، به این معنی که برای DPI صفحه به طور مناسب مقیاسبندی خواهد شد.
اگر این مقدار خیلی بزرگ تنظیم شود، صفحه چیزی رندر نخواهد کرد زیرا شبکه سلولها کاملاً فشرده خواهد شد. انتخاب مقدار منطقی به عهده کاربر است. اگر مقدار غیرمنطقی انتخاب کنید، هشداری در لاگها ثبت خواهد شد.
تغییر این پیکربندی در زمان اجرا فقط ترمینالهای جدید را تحت تأثیر قرار میدهد.
برای تنظیم فاصلهگذاری متفاوت در بالا و پایین، دو مقدار عددی جداشده با کاما تعیین کنید؛ برای مثال window-padding-y = 2,4 فاصله بالا را 2 و فاصله پایین را 4 تنظیم میکند. برای تنظیم هر دو فاصله روی یک مقدار یکسان، از یک مقدار تکی استفاده کنید؛ مانند window-padding-y = 2.
- --window-padding-balance
- ابعاد درگاه نمایش (viewport) معمولاً بر اندازه سلولها بخشپذیر کامل نیستند. در این حالت، ممکن است مقداری فاصلهگذاری اضافی در انتهای یک ستون و پایین آخرین ردیف وجود داشته باشد. اگر این گزینه true باشد، این فاصلهگذاری اضافی به طور خودکار بین تمام چهار لبه متعادل میشود تا عدم تقارن در یک طرف به حداقل برسد. اگر این گزینه false باشد، سلول بالای سمت چپ شبکه همیشه با فاصله صفر به لبه میچسبد، مگر مقداری که توسط سایر گزینههای window-padding تعیین شده باشد.
اگر سایر فیلدهای window-padding تنظیم شده باشند و این گزینه true باشد، این رفتار همچنان اعمال خواهد شد. سایر فاصلهگذاریها ابتدا اعمال میشوند و ممکن است بر تعداد واقعی سلولهای شبکه تأثیر بگذارند، و این گزینه در آخر اعمال میشود تا فاصلهگذاری با توجه به اندازه معین درگاه نمایش و اندازه سلولها متعادل گردد.
- --window-padding-color
- رنگ ناحیه فاصلهگذاری پنجره. مقادیر معتبر عبارتند از:
- •
- background - رنگ پسزمینه مشخصشده در background.
- •
- extend - گسترش رنگ پسزمینه نزدیکترین سلول شبکه.
- •
- extend-always - همانند “extend” است اما همیشه بدون اعمال روشهای کاهشی غیرفعالسازی گسترش که در زیر ذکر شدهاند گسترش مییابد.
مقدار “extend” در شرایط خاصی غیرفعال خواهد شد. در برنامههای صفحه اصلی (مثلاً برنامههایی غیر از مواردی مانند Neovim)، اگر هر یک از موارد زیر درست باشد، رنگ به صورت عمودی گسترش نمییابد:
- •
- نزدیکترین ردیف سلولهایی داشته باشد که رنگ پسزمینه پیشفرض دارند. این استدلال وجود دارد که در این حالت، رنگ پسزمینه پیشفرض به عنوان رنگ فاصلهگذاری مناسب به نظر میرسد.
- •
- نزدیکترین ردیف یک ردیف اعلان (prompt) باشد (نیازمند ادغام پوسته). استدلال این است که اعلانها معمولاً حاوی گلیفهای powerline هستند که در حالت گسترشیافته خوب به نظر نمیرسند.
- •
- نزدیکترین ردیف شامل یک کاراکتر powerline با برازش کامل باشد. این کاراکترها در حالت گسترشیافته جلوه خوبی ندارند.
- --window-vsync
- همگامسازی رندرینگ با نرخ نوسازی (refresh rate) صفحه نمایش. اگر true باشد، پارگی تصویر (tearing) را به حداقل میرساند و بازترسیمها را با صفحه هماهنگ میکند اما ممکن است باعث تأخیر ورودی شود. اگر false باشد، بسامد بازترسیم را به حداکثر میرساند اما ممکن است باعث پارگی تصویر شود و تحت بار سنگین، پردازنده و توان مصرفی بیشتری مصرف کند.
این گزینه بهطور پیشفرض true است زیرا رندرینگ ناهمگام در macOS میتواند باعث خطای کرنل پنیک (در macOS 14.4 به بعد) و مشکلات عملکردی برای نمایشگرهای خارجی با سختافزارهایی مانند DisplayLink شود. اگر میخواهید تاخیر ورودی را به حداقل برسانید، با در نظر گرفتن خطرات فوق آن را روی false قرار دهید.
تغییر این مقدار در زمان اجرا فقط بر ترمینالهای جدید تأثیر میگذارد.
این تنظیم در حال حاضر فقط در macOS پشتیبانی میشود.
- --window-inherit-working-directory
- اگر true باشد، پنجرههای جدید دایرکتوری کاری پنجره متمرکزشده قبلی را به ارث خواهند برد. اگر هیچ پنجرهای قبلاً متمرکز نبوده باشد، از دایرکتوری کاری پیشفرض استفاده خواهد شد (گزینه working-directory).
- --tab-inherit-working-directory
- اگر true باشد، زبانههای جدید دایرکتوری کاری زبانه متمرکزشده قبلی را به ارث خواهند برد. اگر هیچ زبانهای قبلاً متمرکز نبوده باشد، از دایرکتوری کاری پیشفرض استفاده خواهد شد (گزینه working-directory).
- --split-inherit-working-directory
- اگر true باشد، بخشهای تفکیکشده جدید دایرکتوری کاری بخش متمرکزشده قبلی را به ارث خواهند برد. اگر بخشی قبلاً متمرکز نبوده باشد، از دایرکتوری کاری پیشفرض استفاده خواهد شد (گزینه working-directory).
- --window-inherit-font-size
- اگر true باشد، پنجرهها و زبانههای جدید اندازه قلم پنجره متمرکزشده قبلی را به ارث خواهند برد. اگر هیچ پنجرهای قبلاً متمرکز نبوده باشد، از اندازه قلم پیشفرض استفاده خواهد شد. اگر false باشد، از اندازه قلم پیشفرض مشخصشده در پیکربندی font-size استفاده خواهد شد.
- --window-decoration
- پیکربندی ترجیح برای تزئینات پنجره. این تنظیم یک ترجیح را مشخص میکند؛ سیستمعامل واقعی، محیط رومیزی، مدیر پنجره و غیره ممکن است این ترجیح را نادیده بگیرند. شبیهساز Ghostty تمام تلاش خود را برای رعایت این ترجیح انجام میدهد اما ممکن است همیشه امکانپذیر نباشد.
مقادیر معتبر:
- •
- none
تمام تزئینات پنجره غیرفعال میشوند. نوار عنوان، حاشیهها و غیره نشان داده نخواهند شد. در macOS، این امر همچنین زبانهها را غیرفعال میکند (تحمیلشده توسط سیستم).
- •
- auto
تصمیمگیری خودکار برای استفاده از تزئینات سمت کلاینت یا سمت سرور بر اساس اولویتهای تشخیصدادهشده سیستمعامل فعلی و محیط رومیزی. این گزینه معمولاً باعث میشود Ghostty برای دسکتاپ شما بیشترین ظاهر “بومی” را داشته باشد.
- •
- client
ترجیح تزئینات سمت کلاینت (CSD).
موجود از نسخه: 1.1.0 به بعد.
- •
- server
ترجیح تزئینات سمت سرور (SSD). این فقط در لینوکس با GTK صدق میکند، چه روی X11 و چه Wayland روی کامپوزیتوری که از پروتکل org_kde_kwin_server_decoration پشتیبانی کند (مانند KDE Plasma، اما تقریباً هر دسکتاپ غیر GNOME از این پروتکل پشتیبانی میکند).
اگر server تنظیم شود اما محیط از تزئینات سمت سرور پشتیبانی نکند، به جای آن از تزئینات سمت کلاینت استفاده خواهد شد.
موجود از نسخه: 1.1.0 به بعد.
مقدار پیشفرض auto است.
به منظور سازگاری با گذشته و سهولت استفاده، این تنظیم مقادیر بولی true و false را نیز میپذیرد. اگر روی true تنظیم شود، معادل auto است. اگر روی false تنظیم شود، معادل none است. این امر برای کاربرانی که عمدتاً در سیستمهایی کار میکنند که تفاوتی میان تزئینات سمت کلاینت و سمت سرور قائل نیستند (مانند macOS و Windows) راحت است.
اقدام میانبر “toggle_window_decorations” میتواند برای ایجاد یک کلید میانبر برای تغییر وضعیت این تنظیم در زمان اجرا استفاده شود.
سیستمعامل macOS: برای پنهان کردن نوار عنوان بدون حذف حاشیههای بومی پنجره یا گوشههای گرد، به جای آن از macos-titlebar-style = hidden استفاده کنید.
- --window-title-font-family
- قلمی که برای عناوین پنجرهها و زبانههای برنامه استفاده خواهد شد.
اگر این تنظیم بدون مقدار رها شود، از قلم پیشفرض سیستم استفاده خواهد شد.
نکته: هر قلم موجود در سیستم میتواند استفاده شود؛ نیازی نیست این قلم دارای عرض ثابت (fixed-width) باشد.
موجود از نسخه: 1.0.0 در macOS، نسخه 1.1.0 در GTK.
- --window-subtitle
- متنی که در زیرعنوان پنجره نمایش داده خواهد شد. مقادیر معتبر:
- •
- false - غیرفعال کردن زیرعنوان.
- •
- working-directory - تنظیم زیرعنوان روی دایرکتوری کاری صفحه ترمینال.
این قابلیت فقط در GTK پشتیبانی میشود.
موجود از نسخه: 1.1.0 به بعد.
- --window-theme
- پوسته (تم) مورد استفاده برای پنجرهها. مقادیر معتبر:
- •
- auto - تعیین تم بر اساس رنگ پسزمینه پیکربندیشده ترمینال. در صورتی که پیکربندی “theme” دارای تمهای روشن و تاریک جداگانه باشد، این گزینه تاثیری ندارد. در این حالت، رفتار “auto” معادل “system” خواهد بود.
- •
- system - استفاده از تم سیستم.
- •
- light - استفاده از تم روشن صرفنظر از تم سیستم.
- •
- dark - استفاده از تم تاریک صرفنظر از تم سیستم.
- •
- ghostty - استفاده از رنگهای پسزمینه و پیشزمینه مشخصشده در پیکربندی Ghostty. این مورد فقط در نسخههای لینوکس پشتیبانی میشود.
در macOS، اگر macos-titlebar-style برابر با tabs یا transparent باشد، تم پنجره به طور خودکار بر اساس روشنایی رنگ پسزمینه ترمینال تنظیم خواهد شد. این فقط برای پنجرههای ترمینال اعمال میشود. این تنظیم همچنان برای پنجرههای غیرترمینال درون Ghostty اعمال خواهد شد.
این ویژگی در حال حاضر فقط در macOS و لینوکس پشتیبانی میشود.
- --window-colorspace
- فضای رنگی مورد استفاده هنگام تفسیر رنگهای ترمینال. “رنگهای ترمینال” به رنگهای مشخصشده در پیکربندی شما و رنگهای تولیدشده توسط دنبالههای SGR رنگ مستقیم (direct-color) اشاره دارد.
مقادیر معتبر:
- •
- srgb - تفسیر رنگها در فضای رنگی sRGB. این مقدار پیشفرض است.
- •
- display-p3 - تفسیر رنگها در فضای رنگی Display P3.
این تنظیم در حال حاضر فقط در macOS پشتیبانی میشود.
- --window-height
- اندازه اولیه پنجره. این اندازه بهطور پیشفرض بر حسب سلولهای شبکه ترمینال است. هر دو مقدار باید تنظیم شوند تا اعمال گردند. اگر فقط یک مقدار تنظیم شود، نادیده گرفته خواهد شد.
ما در حال حاضر از تعیین اندازه بر حسب پیکسل پشتیبانی نمیکنیم اما تغییرات آینده میتوانند این قابلیت را فعال کنند. اگر این گزینه مشخص نشود، زمان اجرای برنامه یک اندازه پیشفرض را تعیین خواهد کرد.
توجه داشته باشید که مدیر پنجره ممکن است محدودیتهایی روی اندازه اعمال کرده یا اندازه را نادیده بگیرد. برای مثال، یک مدیر پنجره کاشیکار (tiling) ممکن است پنجره را مجبور به داشتن اندازه خاصی کند تا در شبکه پنجرهها جا بگیرد. شبیهساز Ghostty کاری در این مورد نمیتواند انجام دهد، اما تلاش خود را خواهد کرد.
اندازههای بزرگتر از اندازه صفحه نمایش به اندازه صفحه نمایش محدود خواهند شد. از این میتوان برای ایجاد اندازه پنجره بزرگشده (maximized) به صورت پیشفرض استفاده کرد.
این گزینه بر زبانههای جدید، تقسیمات یا سایر عناصر تودرتوی ترمینال تأثیری نخواهد داشت. این فقط بر اندازه اولیه هر پنجره جدید تأثیر میگذارد. تغییر این مقدار پس از ایجاد پنجره تاثیری بر اندازه آن ندارد. این مورد فقط برای اندازه اولیه استفاده میشود.
اشکال (BUG): در لینوکس با GTK، اندازه محاسبهشده پنجره به درستی تزئینات پنجره را در نظر نمیگیرد. در نتیجه، ابعاد شبکه سلولها دقیقاً با این پیکربندی مطابقت نخواهد داشت. اگر تزئینات پنجره غیرفعال باشند (به window-decoration مراجعه کنید)، این ویژگی طبق انتظار کار خواهد کرد.
پنجرههای کوچکتر از ۱۰ سلول عرض در ۴ سلول ارتفاع مجاز نیستند.
window-width
- --window-position-x
- موقعیت اولیه شروع پنجره. این موقعیت بر حسب پیکسل و نسبت به گوشه بالای سمت چپ مانیتور اصلی است. هر دو مقدار باید تنظیم شوند تا اعمال گردند. اگر فقط یک مقدار تنظیم شود، نادیده گرفته خواهد شد.
توجه داشته باشید که مدیر پنجره ممکن است محدودیتهایی روی موقعیت اعمال کرده یا آن را بازنویسی کند. برای مثال، یک مدیر پنجره کاشیکار ممکن است پنجره را مجبور به قرارگیری در موقعیت خاصی برای برازش در شبکه کند. شبیهساز Ghostty در این باره کاری نمیتواند بکند، اما تلاش خود را خواهد کرد.
همچنین توجه داشته باشید که پشتیبانی از مقادیر منفی به سیستمعامل و مدیر پنجره بستگی دارد. برخی مدیران پنجره اجازه قرارگیری پنجرهها در خارج از صفحه نمایش را نمیدهند.
موقعیتهای نامعتبر وابسته به محیط اجرا هستند، اما عموماً موقعیتها به نزدیکترین موقعیت معتبر محدود میشوند.
در macOS، موقعیت پنجره نسبت به گوشه بالای سمت چپ ناحیه قابل مشاهده صفحه است. این بدان معنی است که اگر نوار منو قابل مشاهده باشد، پنجره در زیر نوار منو قرار خواهد گرفت.
نکته: این مورد فقط در macOS پشتیبانی میشود. زمان اجرای GTK از تنظیم موقعیت پنجره پشتیبانی نمیکند، زیرا پنجرهها فقط در X11 مجاز به تعیین موقعیت خود هستند و نه در Wayland.
window-position-y
- --window-save-state
- فعال یا غیرفعال کردن ذخیره و بازیابی وضعیت پنجره. وضعیت پنجره شامل موقعیت، اندازه، زبانهها، تقسیمات و غیره آنها است. برخی وضعیتهای پنجره نیازمند ادغام پوسته هستند، مانند حفظ دایرکتوریهای کاری. برای اطلاعات بیشتر shell-integration را ببینید.
سه مقدار معتبر برای این پیکربندی وجود دارد:
- •
- default از رفتار پیشفرض سیستم استفاده خواهد کرد. در macOS، تنها در صورتی وضعیت ذخیره میشود که برنامه به اجبار خاتمه یابد یا در سراسر سیستم از طریق Settings.app پیکربندی شده باشد.
- •
- never هرگز وضعیت پنجره را ذخیره نخواهد کرد.
- •
- always همیشه هنگام خروج از Ghostty وضعیت پنجره را ذخیره میکند.
اگر زمانی که Ghostty در حال اجرا نیست این مقدار را به never تغییر دهید، در اجرای بعدی Ghostty وضعیت پنجره بازیابی نخواهد شد.
اگر زمانی که Ghostty در حال اجرا نیست این مقدار را به default تغییر دهید و در خروج قبلی وضعیت ذخیره شده باشد، در اجرای بعدی Ghostty همچنان وضعیت پنجره بازیابی خواهد شد. این بدان دلیل است که Ghostty نمیتواند بداند آیا خروج قبلی ناشی از یک ذخیره اجباری بوده است یا خیر (سیستمعامل macOS این اطلاعات را ارائه نمیدهد).
اگر این مقدار را به گونهای تغییر دهید که وضعیت پنجره در حالی که Ghostty در حال اجرا نیست ذخیره شود، وضعیت پنجره قبلی بازیابی نخواهد شد زیرا Ghostty فقط در صورت فعال بودن این گزینه وضعیت را هنگام خروج ذخیره میکند.
مقدار پیشفرض default است.
این گزینه در حال حاضر فقط در macOS پشتیبانی میشود و در لینوکس تاثیری ندارد.
- --window-step-resize
- تغییر اندازه پنجره در گامهای گسسته به اندازه سلول صفحه متمرکزشده. اگر این گزینه غیرفعال باشد، اندازه صفحات در گامهای پیکسلی تغییر میکند. در حال حاضر فقط در macOS پشتیبانی میشود.
- --window-new-tab-position
- موقعیت ایجاد زبانههای جدید. مقادیر معتبر:
- •
- current - درج زبانه جدید بعد از زبانه متمرکزشده فعلی، یا در انتها اگر هیچ زبانهای متمرکز نباشد.
- •
- end - درج زبانه جدید در انتهای فهرست زبانهها.
- --window-show-tab-bar
- نمایش یا عدم نمایش نوار زبانه.
مقادیر معتبر:
- •
- always
همیشه نوار زبانه را نمایش دهد، حتی زمانی که فقط یک زبانه وجود دارد.
موجود از نسخه: 1.2.0 به بعد.
- •
- auto (پیشفرض)
نمایش و پنهانسازی خودکار نوار زبانه. نوار زبانه تنها زمانی نشان داده میشود که دو یا چند زبانه وجود داشته باشد.
- •
- never
هرگز نوار زبانه را نشان ندهد. زبانهها فقط از طریق نمای کلی زبانهها (tab overview) یا با اقدامات کلیدهای میانبر قابل دسترسی خواهند بود.
در حال حاضر فقط در لینوکس (GTK) پشتیبانی میشود.
- --window-titlebar-background
- رنگ پسزمینه برای نوار عنوان پنجره. این گزینه فقط در صورىی اعمال میشود که window-theme روی ghostty تنظیم شده باشد. در حال حاضر فقط در زمان اجرای برنامه GTK پشتیبانی میشود.
به صورت هگزادسیمال (#RRGGBB یا RRGGBB) یا نام رنگهای X11 مشخص میشود.
- --window-titlebar-foreground
- رنگ پیشزمینه (متن) برای نوار عنوان پنجره. این گزینه فقط در صورتی اعمال میشود که window-theme روی ghostty تنظیم شده باشد. در حال حاضر فقط در زمان اجرای برنامه GTK پشتیبانی میشود.
به صورت هگزادسیمال (#RRGGBB یا RRGGBB) یا نام رنگهای X11 مشخص میشود.
- --resize-overlay
- کنترل زمان نمایش کادرهای اعلان تغییر اندازه (resize overlay). کادرهای تغییر اندازه پاپآپهای گذرا هستند که اندازه ترمینال را هنگام تغییر اندازه صفحات نشان میدهند. گزینههای ممکن عبارتند از:
- •
- always - همیشه اعلانهای تغییر اندازه نشان داده شوند.
- •
- never - هرگز اعلانهای تغییر اندازه نشان داده نشوند.
- •
- after-first - اعلان تغییر اندازه هنگام ایجاد اولیه صفحه ظاهر نمیشود، اما در صورت تغییر اندازه بعدی صفحه نشان داده خواهد شد.
پیشفرض after-first است.
- --resize-overlay-position
- اگر اعلانهای تغییر اندازه فعال باشند، این گزینه موقعیت کادر اعلان را کنترل میکند. گزینههای ممکن عبارتند از:
- •
- center
- •
- top-left
- •
- top-center
- •
- top-right
- •
- bottom-left
- •
- bottom-center
- •
- bottom-right
پیشفرض center است.
- --resize-overlay-duration
- اگر اعلانهای تغییر اندازه فعال باشند، این گزینه مدت زمانی را که اعلان قبل از پنهان شدن روی صفحه قابل مشاهده است کنترل میکند. پیشفرض ¾ ثانیه یا 750 میلیثانیه است.
مدتزمان به صورت یک سری اعداد و به دنبال آنها واحدهای زمانی مشخص میشود. استفاده از فاصله میان اعداد و واحدها مجاز است. هر عدد و واحد با هم جمع میشوند تا کل مدتزمان را تشکیل دهند.
واحدهای زمانی مجاز عبارتند از:
- •
- y - ۳۶۵ روز SI، یا ۸۷۶۰ ساعت، یا ۳۱۵۳۶۰۰۰ ثانیه. بدون تعدیل برای سالها یا ثانیههای کبیسه.
- •
- d - یک روز SI، یا ۸۶۴۰۰ ثانیه.
- •
- h - یک ساعت، یا ۳۶۰۰ ثانیه.
- •
- m - یک دقیقه، یا ۶۰ ثانیه.
- •
- s - یک ثانیه.
- •
- ms - یک میلیثانیه، یا 0.001 ثانیه.
- •
- us یا µs - یک میکروثانیه، یا 0.000001 ثانیه.
- •
- ns - یک نانوثانیه، یا 0.000000001 ثانیه.
مثالها: * 1h30m * 45s
واحدها میتوانند تکرار شوند و با هم جمع خواهند شد. این بدان معناست که 1h1h معادل 2h است. این موضوع گیجکننده است و باید از آن اجتناب شود. در بهروزرسانیهای آینده ممکن است غیرمجاز گردد.
حداکثر مقدار 584y 49w 23h 34m 33s 709ms 551µs 615ns است. هر مقداری بزرگتر از این به حداکثر مقدار محدود خواهد شد.
موجود از نسخه 1.0.0 به بعد.
- --focus-follows-mouse
- اگر true باشد، زمانی که چندین بخش تفکیکشده وجود دارد، ماوس بخشی را که متمرکز است انتخاب میکند. این مورد فقط برای پنجره متمرکزشده فعلی اعمال میشود؛ برای مثال، بردن ماوس روی یک بخش در یک پنجره غیرمتمرکز، آن بخش را متمرکز نکرده و پنجره را به جلو نمیآورد.
پیشفرض false است.
- --clipboard-read
- اجازه دادن به برنامههای در حال اجرا در ترمینال برای خواندن/نوشتن در کلیپبورد سیستم (دنباله OSC 52). پیشفرض، اجازه دادن به خواندن کلیپبورد پس از درخواست تأیید از کاربر و اجازه نوشتن بدون قید و شرط است.
مقادیر معتبر:
- •
- ask - درخواست تأیید از کاربر.
- •
- allow - مجاز بودن.
- •
- deny - مسدود کردن.
clipboard-write
- --clipboard-trim-trailing-spaces
- حذف فاصلههای خالی انتهایی از دادههایی که در کلیپبورد کپی میشوند. این گزینه دادههای ارسالشده به کلیپبورد از طریق clipboard-write را تحت تأثیر قرار نمیدهد. این تنظیم فقط برای فاصلههای خالی انتهایی در خطوطی اعمال میشود که نویسههای دیگری دارند. خطوط کاملاً خالی همیشه فاصلههای خالی آنها حذف میشود.
- --clipboard-paste-protection
- درخواست تأیید قبل از چسباندن (paste) متنی که ناامن به نظر میرسد. این قابلیت به جلوگیری از “حمله کپی/پیست” کمک میکند که در آن کاربر ممکن است تصادفاً دستورات ناامنی را با پیست کردن متن حاوی خطوط جدید اجرا کند.
- --clipboard-paste-bracketed-safe
- اگر true باشد، چسباندنهای قلابدار (bracketed pastes) ایمن تلقی خواهند شد. بهطور پیشفرض، چسباندنهای قلابدار ایمن در نظر گرفته میشوند. چسباندنهای “قلابدار” مواردی هستند که در زمان فعال بودن حالت پیست قلابدار توسط برنامه در حال اجرا انجام میشوند (تنظیمی که توسط خود برنامه در حال اجرا اعمال میشود، نه شبیهساز ترمینال).
- --title-report
- فعال یا غیرفعال کردن گزارش عنوان (CSI 21 t). این دنباله گریز به برنامه در حال اجرا اجازه میدهد عنوان ترمینال را جویا شود. این یک مشکل امنیتی متداول است و بهطور پیشفرض غیرفعال میباشد.
هشدار: این قابلیت در بهترین حالت میتواند اطلاعات حساس را فاش کند و در بدترین حالت امکان اجرای کد دلخواه را فراهم سازد (با یک عنوان دستکاریشده مخرب و مقدار اندکی تعامل کاربری).
موجود از نسخه: 1.0.1 به بعد.
- --image-storage-limit
- حجم کل بایتهایی که میتوانند برای دادههای تصویر (مانند پروتکل تصویر Kitty) به ازای هر صفحه ترمینال استفاده شوند. حداکثر مقدار 4,294,967,295 (۴ گیبیبایت) است. پیشفرض 320MB است. اگر این مقدار روی صفر تنظیم شود، تمام پروتکلهای تصویری غیرفعال خواهند شد.
این مقدار برای صفحههای اصلی و جایگزین جداگانه است، بنابراین حد مجاز موثر به ازای هر صفحه دو برابر است.
- --copy-on-select
- کپی خودکار متن انتخابشده در کلیپبورد. مقدار true کپی در کلیپبورد انتخاب (selection clipboard) را ترجیح میدهد، در غیر این صورت در کلیپبورد سیستم کپی میکند.
مقدار clipboard همیشه متن را هم در کلیپبورد انتخاب و هم در کلیپبورد سیستم کپی میکند.
چسباندن با کلیک وسط همیشه از کلیپبورد انتخاب استفاده میکند. چسباندن با کلیک وسط همیشه فعال است حتی اگر این گزینه false باشد.
مقدار پیشفرض در لینوکس و macOS برابر با true است.
- --right-click-action
- اقدامی که هنگام راستکلیک کاربر روی صفحه ترمینال انجام میشود.
مقادیر معتبر: * context-menu - نمایش منوی زمینه (راستکلیک). * paste - چسباندن محتویات کلیپبورد. * copy - کپی کردن متن انتخابشده در کلیپبورد. * copy-or-paste - اگر انتخابی وجود داشته باشد، متن انتخابشده در کلیپبورد کپی شود؛ در غیر این صورت، محتویات کلیپبورد چسبانده شود. * ignore - هیچ کاری انجام ندهد، راستکلیک را نادیده بگیرد.
مقدار پیشفرض context-menu است.
- --click-repeat-interval
- زمان بر حسب میلیثانیه بین کلیکها تا یک کلیک به عنوان کلیک تکراری (دو بار کلیک، سه بار کلیک و غیره) در نظر گرفته شود یا یک تککلیک کاملاً جدید. مقدار صفر از پیشفرض وابسته به پلتفرم استفاده خواهد کرد. پیشفرض در macOS توسط تنظیمات سیستمعامل تعیین میشود. در هر پلتفرم دیگری 500 میلیثانیه است.
- --config-file
- فایلهای پیکربندی اضافی برای خواندن. این پیکربندی میتواند برای خواندن چندین فایل پیکربندی تکرار شود. خود فایلهای پیکربندی میتوانند فایلهای پیکربندی بیشتری را بارگیری کنند. مسیرها نسبت به فایلی که حاوی دستورالعمل config-file است سنجیده میشوند. برای آرگومانهای خط فرمان، مسیرها نسبت به دایرکتوری کاری جاری سنجیده میشوند.
نویسه ? را به ابتدای مسیر فایل اضافه کنید تا در صورت عدم وجود فایل، از خطاهای مربوطه جلوگیری شود. اگر میخواهید فایلی را بگنجانید که با نویسه واقعی ? آغاز میشود، مسیر فایل را در علامت نقلقول دوتایی قرار دهید.
حلقهها (cycles) مجاز نیستند. اگر یک حلقه تشخیص داده شود، خطایی در لاگ ثبت شده و فایل پیکربندی نادیده گرفته میشود.
فایلهای پیکربندی پس از پیکربندی که درون آن تعریف شدهاند و به ترتیبی که تعریف شدهاند بارگیری میشوند. این یک نکته بسیار ظریف اما مهم است. به بیان دیگر: فایلهای پیکربندی تا زمانی که کل پیکربندی بارگیری نشود، اعمال نمیشوند. برای مثال در پیکربندی زیر:
-
config-file = "foo" a = 1
اگر “foo” حاوی a = 2 باشد، مقدار نهایی a برابر با ۲ خواهد بود، زیرا foo پس از فایل پیکربندی که مقدار تودرتوی config-file را تنظیم میکند بارگیری میشود.
- --config-default-files
- هنگامی که این گزینه true باشد، مسیرهای پیشفرض فایل پیکربندی بارگیری خواهند شد. مسیرهای پیشفرض فایل پیکربندی در حال حاضر فقط مسیر کانفیگ XDG ($XDG_CONFIG_HOME/ghostty/config.ghostty) هستند.
اگر این گزینه false باشد، مسیرهای پیکربندی پیشفرض بارگیری نخواهند شد. این ویژگی مستقیماً برای استفاده از Ghostty از طریق خط فرمان به روشی که اثرات بیرونی را به حداقل میرساند هدفگذاری شده است.
این یک پیکربندی فقط خط فرمانی (CLI-only) است. تنظیم این گزینه در یک فایل پیکربندی هیچ تاثیری نخواهد داشت. این کار خطا نیست، اما کاری انجام نمیدهد. این پیکربندی فقط از طریق آرگومانهای خط فرمان قابل تنظیم است.
- --confirm-close-surface
- دریافت تأیید قبل از بستن یک صفحه ترمینال.
پیشفرض این گزینه true است. اگر روی false تنظیم شود، صفحات بدون هیچ تأییدی بسته خواهند شد. همچنین میتواند روی always تنظیم شود که همیشه بستن صفحه را تایید میگیرد، حتی اگر ادغام پوسته اعلام کند فرایندی در حال اجرا نیست.
- --quit-after-last-window-closed
- خروج یا عدم خروج از برنامه پس از بسته شدن آخرین صفحه.
در macOS بهطور پیشفرض false است زیرا این رفتار استاندارد برای یک برنامه macOS است. در لینوکس بهطور پیشفرض true است زیرا عموماً این رفتار مورد انتظار است.
در لینوکس، اگر این گزینه true باشد، Ghostty میتواند خروج کامل را تا سپری شدن مدت زمان قابل تنظیمی پس از بسته شدن آخرین پنجره به تأخیر بیندازد. مستندات quit-after-last-window-closed-delay را ببینید.
- --quit-after-last-window-closed-delay
- کنترل اینکه Ghostty پس از بسته شدن آخرین صفحه باز چه مدت در حال اجرا باقی بماند. این گزینه تنها در صورتی اثر دارد که quit-after-last-window-closed نیز روی true تنظیم شده باشد.
حداقل مقدار برای این پیکربندی 1s است. هر مقداری کمتر از این به 1s محدود خواهد شد.
مدتزمان به صورت یک سری اعداد و به دنبال آنها واحدهای زمانی مشخص میشود. استفاده از فاصله میان اعداد و واحدها مجاز است. هر عدد و واحد با هم جمع میشوند تا کل مدتزمان را تشکیل دهند.
واحدهای زمانی مجاز عبارتند از:
- •
- y - ۳۶۵ روز SI، یا ۸۷۶۰ ساعت، یا ۳۱۵۳۶۰۰۰ ثانیه. بدون تعدیل برای سالها یا ثانیههای کبیسه.
- •
- d - یک روز SI، یا ۸۶۴۰۰ ثانیه.
- •
- h - یک ساعت، یا ۳۶۰۰ ثانیه.
- •
- m - یک دقیقه، یا ۶۰ ثانیه.
- •
- s - یک ثانیه.
- •
- ms - یک میلیثانیه، یا 0.001 ثانیه.
- •
- us یا µs - یک میکروثانیه، یا 0.000001 ثانیه.
- •
- ns - یک نانوثانیه، یا 0.000000001 ثانیه.
مثالها: * 1h30m * 45s
واحدها میتوانند تکرار شوند و با هم جمع خواهند شد. این بدان معناست که 1h1h معادل 2h است. این موضوع گیجکننده است و باید از آن اجتناب شود. در بهروزرسانیهای آینده ممکن است غیرمجاز گردد.
حداکثر مقدار 584y 49w 23h 34m 33s 709ms 551µs 615ns است. هر مقداری بزرگتر از این به حداکثر مقدار محدود خواهد شد.
بهطور پیشفرض quit-after-last-window-closed-delay تنظیم نشده است و اگر quit-after-last-window-closed برابر با true باشد، Ghostty بلافاصله پس از بسته شدن آخرین پنجره خارج خواهد شد.
فقط در لینوکس پیادهسازی شده است.
- --initial-window
- این گزینه کنترل میکند که آیا هنگام اجرای Ghostty یک پنجره اولیه ایجاد شود یا خیر. توجه داشته باشید که اگر quit-after-last-window-closed برابر با true باشد و quit-after-last-window-closed-delay تنظیم شده باشد، تنظیم initial-window روی false به این معنی خواهد بود که در صورت عدم ایجاد هیچ پنجرهای، Ghostty پس از تاخیر پیکربندیشده خارج خواهد شد. فقط در لینوکس و macOS پیادهسازی شده است.
- --undo-timeout
- مدتزمانی که عملیات واگرد (undo) در دسترس باقی میمانند. پس از این زمان، عملیات از پشته واگرد حذف شده و قابل لغو نخواهد بود.
مقدار پیشفرض ۵ ثانیه است.
این زمان انقضا برای هر عملیات به طور جداگانه اعمال میشود، به این معنی که اگر چندین عملیات انجام دهید، هر عملیات مهلت زمانی مخصوص به خود را خواهد داشت. عملیات جدید زمان انقضای عملیات قبلی را بازنشانی نمیکنند.
مهلت زمانی صفر عملاً عملیات واگرد را غیرفعال میکند. تنظیم مهلت نامحدود امکانپذیر نیست، اما میتوانید یک مهلت بسیار بزرگ (در مقیاس سالها) تعیین کنید تا عملاً مهلت زمانی غیرفعال شود. این کار اکیداً توصیه نمیشود، زیرا باعث میشود پشته واگرد به طور نامحدود رشد کند، مصرف حافظه نامحدود افزایش یابد و نشستهای ترمینال هرگز واقعاً خاتمه نیابند.
مدتزمان به صورت یک سری اعداد و به دنبال آنها واحدهای زمانی مشخص میشود. استفاده از فاصله میان اعداد و واحدها مجاز است. هر عدد و واحد با هم جمع میشوند تا کل مدتزمان را تشکیل دهند.
واحدهای زمانی مجاز عبارتند از:
- •
- y - ۳۶۵ روز SI، یا ۸۷۶۰ ساعت، یا ۳۱۵۳۶۰۰۰ ثانیه. بدون تعدیل برای سالها یا ثانیههای کبیسه.
- •
- d - یک روز SI، یا ۸۶۴۰۰ ثانیه.
- •
- h - یک ساعت، یا ۳۶۰۰ ثانیه.
- •
- m - یک دقیقه، یا ۶۰ ثانیه.
- •
- s - یک ثانیه.
- •
- ms - یک میلیثانیه، یا 0.001 ثانیه.
- •
- us یا µs - یک میکروثانیه، یا 0.000001 ثانیه.
- •
- ns - یک نانوثانیه، یا 0.000000001 ثانیه.
مثالها: * 1h30m * 45s
واحدها میتوانند تکرار شوند و با هم جمع خواهند شد. این بدان معناست که 1h1h معادل 2h است. این موضوع گیجکننده است و باید از آن اجتناب شود. در بهروزرسانیهای آینده ممکن است غیرمجاز گردد.
این پیکربندی فقط در macOS پشتیبانی میشود. لینوکس اصلاً از عملیات واگرد پشتیبانی نمیکند بنابراین این پیکربندی هیچ تاثیری ندارد.
موجود از نسخه: 1.2.0 به بعد.
- --quick-terminal-position
- موقعیت پنجره ترمینال سریع (quick terminal). برای کسب اطلاعات بیشتر درباره ترمینال سریع، مستندات اقدام میانبر toggle_quick_terminal را ببینید.
مقادیر معتبر عبارتند از:
- •
- top - ترمینال در بالای صفحه ظاهر میشود.
- •
- bottom - ترمینال در پایین صفحه ظاهر میشود.
- •
- left - ترمینال در سمت چپ صفحه ظاهر میشود.
- •
- right - ترمینال در سمت راست صفحه ظاهر میشود.
- •
- center - ترمینال در مرکز صفحه ظاهر میشود.
در macOS، تغییر این پیکربندی نیازمند راهاندازی مجدد کامل Ghostty است.
نکته: هیچ کلید میانبر پیشفرضی برای تغییر وضعیت ترمینال سریع وجود ندارد. برای فعالسازی این قابلیت، اقدام toggle_quick_terminal را به یک کلید مقید کنید.
- --quick-terminal-size
- اندازه ترمینال سریع.
اندازه میتواند به صورت درصدی از ابعاد صفحه (ارتفاع/عرض) یا به صورت اندازه مطلق بر حسب پیکسل مشخص شود. مقادیر درصدی با پسوند % (مانند 20%) و مقادیر پیکسلی با پسوند px (مانند 300px) مشخص میشوند. مقدار خام بدون پسوند خطای پیکربندی است.
هنگامی که فقط یک اندازه مشخص شود، پارامتر اندازه بر اندازه ترمینال سریع در محور اصلی آن تأثیر میگذارد که به موقعیت آن بستگی دارد: ارتفاع برای ترمینالهای سریع قرارگرفته در بالا یا پایین، و عرض برای چپ یا راست. محور اصلی یک ترمینال سریع متمرکز به جهت مانیتور بستگی دارد: ارتفاع در مانیتور افقی، و عرض در مانیتور عمودی.
محور فرعی برای ترمینالهای سریع غیرمتمرکز به حداکثر خواهد رسید مگر اینکه پارامتر اندازه دیگری مشخص شود که با کاما (,) از پارامتر اول جدا شده باشد. اندازههای درصدی و پیکسلی میتوانند با هم ترکیب شوند؛ برای مثال، اندازه 50%,500px برای یک ترمینال سریع در بالا، نصف ارتفاع صفحه و با عرض ۵۰۰ پیکسل خواهد بود.
موجود از نسخه: 1.2.0 به بعد.
- --gtk-quick-terminal-layer
- لایه پنجره ترمینال سریع در رابط کاربری. هرچه لایه بالاتر باشد، پنجرههای بیشتری ممکن است توسط ترمینال سریع پوشانده شوند.
مقادیر معتبر:
- •
- overlay
ترمینال سریع در جلوی تمام پنجرهها ظاهر میشود.
- •
- top (پیشفرض)
ترمینال سریع در جلوی پنجرههای معمولی اما در پشت لایههای تمامصفحه مانند صفحه قفل ظاهر میشود.
- •
- bottom
ترمینال سریع در پشت پنجرههای معمولی اما در جلوی تصویر پسزمینه و سایر پنجرههای لایه پسزمینه ظاهر میشود.
- •
- background
ترمینال سریع در پشت تمام پنجرهها ظاهر میشود.
فقط در GTK تحت Wayland.
موجود از نسخه: 1.2.0 به بعد.
- --gtk-quick-terminal-namespace
- فضای نام (namespace) برای پنجره ترمینال سریع.
این یک شناسه است که توسط کامپوزیتور Wayland یا اسکریپتها برای تعیین نوع سطوح لایه و احتمالاً اعمال جلوههای ویژه استفاده میشود.
فقط در GTK تحت Wayland.
موجود از نسخه: 1.2.0 به بعد.
- --quick-terminal-screen
- صفحهای که ترمینال سریع باید در آن نمایش داده شود.
مقادیر معتبر:
- •
- main - صفحهای که سیستمعامل به عنوان صفحه اصلی توصیه میکند. در macOS، این صفحهای است که در حال حاضر ورودی صفحهکلید را دریافت میکند. این صفحه توسط سیستمعامل تعیین میشود و توسط Ghostty انتخاب نمیگردد.
- •
- mouse - صفحهای که ماوس در حال حاضر روی آن شناور است.
- •
- macos-menu-bar - صفحهای که شامل نوار منوی macOS طبق تنظیمات صفحه نمایش در macOS است. این تا حدی گیجکننده است زیرا هر صفحه در macOS یک نوار منو دارد، اما این صفحهای است که نوار منوی اصلی را در خود جای داده است.
مقدار پیشفرض main است زیرا این صفحه توصیهشده توسط سیستمعامل است.
فقط در macOS پیادهسازی شده است.
- --quick-terminal-animation-duration
- مدتزمان (بر حسب ثانیه) پویانمایی ورود و خروج ترمینال سریع. برای غیرفعال کردن کامل پویانمایی آن را روی ۰ قرار دهید. این گزینه در زمان اجرا قابل تغییر است.
فقط در macOS پیادهسازی شده است.
- --quick-terminal-autohide
- پنهانسازی خودکار ترمینال سریع هنگامی که تمرکز به پنجره دیگری تغییر میکند. آن را روی false تنظیم کنید تا ترمینال سریع حتی با از دست دادن تمرکز باز بماند.
در macOS بهطور پیشفرض true و در Linux/BSD بهطور پیشفرض false است. دلیل این است که میانبرهای سراسری در لینوکس نیاز به پیکربندی سیستم دارند و دسترسی به آنها نسبت به macOS بسیار دشوارتر است، به این معنی که ترجیح داده میشود ترمینال سریع تا زمانی که کاربر وظیفه خود را کامل نکرده باز بماند. این مقدار پیشفرض ممکن است در آینده تغییر کند.
- --quick-terminal-space-behavior
- این گزینه پیکربندی رفتار ترمینال سریع را هنگام جابهجایی میان فضاهای کاری (spaces) در macOS تعیین میکند. فضاهای کاری macOS دسکتاپهای مجازی هستند که میتوان آنها را به صورت دستی ایجاد کرد یا هنگام تمامصفحه شدن یک برنامه به طور خودکار ایجاد میشوند.
مقادیر معتبر:
- •
- move - هنگام جابهجایی به یک فضای دیگر، ترمینال سریع نیز به فضای جاری منتقل خواهد شد.
- •
- remain - ترمینال سریع فقط در فضایی که در ابتدا باز شده باقی میماند و هنگام جابهجایی به فضای دیگر دنبال آن نمیآید.
مقدار پیشفرض move است.
فقط در macOS پیادهسازی شده است. در لینوکس رفتار همواره معادل move است.
موجود از نسخه: 1.1.0 به بعد.
- --quick-terminal-keyboard-interactivity
- تعیین شرایطی که تحت آن ترمینال سریع باید ورودی صفحهکلید را دریافت کند. برای توضیح دقیقتر رفتار هر گزینه، مستندات Wayland مربوطه را ببینید.
نکته: رفتار دقیق هر گزینه ممکن است در کامپوزیتورهای مختلف تفاوتهای چشمگیری داشته باشد - آنها را در سیستم خود آزمایش کنید تا گزینهای را که با سلیقه شما سازگار است بیابید!
مقادیر معتبر:
- •
- none
ترمینال سریع هیچ ورودی صفحهکلیدی دریافت نخواهد کرد.
- •
- on-demand (پیشفرض)
ترمینال سریع تنها زمانی ورودی صفحهکلید را دریافت میکند که متمرکز باشد.
- •
- exclusive
ترمینال سریع همیشه ورودی صفحهکلید را دریافت خواهد کرد، حتی زمانی که پنجره دیگری در حال حاضر متمرکز باشد.
تنها در لینوکس با Wayland تأثیر دارد. در macOS رفتار همیشه معادل on-demand است.
موجود از نسخه: 1.2.0 به بعد.
- --shell-integration
- فعال یا غیرفعال کردن تزریق خودکار ادغام پوسته (shell integration). ادغام پوسته با فعال کردن تعدادی از قابلیتها، تجربه کار با ترمینال را به شدت بهبود میبخشد:
- •
- گزارش دایرکتوری کاری به گونهای که زبانهها و تقسیمات جدید دایرکتوری کاری ترمینال قبلی را به ارث ببرند.
- •
- علامتگذاری خط اعلان که کلید میانبر “jump_to_prompt” را فعال میکند.
- •
- اگر در خط اعلان قرار داشته باشید، بستن ترمینال درخواستی برای تأیید نخواهد داشت.
- •
- تغییر اندازه پنجره همراه با یک اعلان پیچیده معمولاً بسیار بهتر ترسیم میشود.
مقادیر مجاز عبارتند از:
- •
- none - هیچگونه تزریق خودکاری انجام نشود. همچنان میتوانید پوسته خود را به صورت دستی برای فعالسازی ادغام پیکربندی کنید.
- •
- detect - تشخیص خودکار پوسته بر اساس نام فایل آن.
- •
- bash، elvish، fish، nushell، zsh - استفاده از طرح تزریق اختصاصی برای پوسته مشخصشده.
مقدار پیشفرض detect است.
- --shell-integration-features
- ویژگیهای ادغام پوسته برای فعالسازی. این موارد نیازمند بارگیری ادغام پوسته ما هستند، چه به صورت خودکار از طریق shell-integration یا به صورت دستی.
قالب این تنظیم فهرستی از ویژگیها است که با کاما جدا شدهاند. اگر پیشوند no- را به یک ویژگی اضافه کنید، غیرفعال میشود. اگر ویژگیای را حذف کنید، از مقدار پیشفرض آن استفاده میشود، بنابراین باید ویژگیهایی را که نمیخواهید صراحتاً غیرفعال کنید. همچنین میتوانید از true یا false برای روشن یا خاموش کردن تمام ویژگیها استفاده کنید.
مثال: cursor، no-cursor، sudo، no-sudo، title، no-title
ویژگیهای موجود:
- •
- cursor - تنظیم مکاننما به شکل خطی (bar) در خط اعلان.
- •
- sudo - تنظیم پوشش sudo برای حفظ terminfo.
- •
- title - تنظیم عنوان پنجره از طریق ادغام پوسته.
- •
- ssh-env - فعالسازی سازگاری متغیرهای محیطی SSH. بهطور خودکار هنگام اتصال به میزبانهای راه دور TERM را از xterm-ghostty به xterm-256color تبدیل میکند و COLORTERM، TERM_PROGRAM و TERM_PROGRAM_VERSION را منتشر میسازد. پذیرش این متغیرها توسط میزبانهای راه دور به مجاز بودن آنها در فایل sshd_config آنها بستگی دارد. (موجود از نسخه: 1.2.0 به بعد)
- •
- ssh-terminfo - فعالسازی نصب خودکار terminfo در میزبانهای راه دور. تلاش میکند هنگام اتصال به میزبانهایی که فاقد terminfo مربوط به Ghostty هستند، آن را با استفاده از infocmp و tic نصب کند. نیازمند در دسترس بودن infocmp در مبدا و tic در میزبان راه دور است. پس از نصب terminfo در یک میزبان راه دور، برای جلوگیری از نصب مجدد به طور خودکار ذخیره (cache) میشود. در صورت تمایل، اقدام خط فرمان +ssh-cache میتواند برای مدیریت دستی حافظه نهان نصب استفاده شود. (موجود از نسخه: 1.2.0 به بعد)
- •
- path - افزودن دایرکتوری باینری Ghostty به PATH. این اطمینان میدهد که دستور ghostty در پوسته در دسترس است حتی اگر اسکریپتهای راهاندازی پوسته PATH را بازنشانی کنند. این امر بهویژه در macOS که PATH اغلب توسط اسکریپتهای سیستمی بازنویسی میشود مفید است. این دایرکتوری تنها در صورتی اضافه میشود که از قبل وجود نداشته باشد.
ویژگیهای SSH به طور مستقل کار میکنند و میتوانند برای تجربه کاربری بهینه ترکیب شوند: وقتی هم ssh-env و هم ssh-terminfo فعال باشند، Ghostty تعاریف terminfo خود را در میزبان راه دور نصب کرده و از xterm-ghostty به عنوان TERM استفاده میکند، و در صورت شکست نصب terminfo به xterm-256color همراه با متغیرهای محیطی بازمیگردد.
- --command-palette-entry
- ورودیهای سفارشی در پالت فرمان (command palette).
هر ورودی نیازمند عنوان، اقدام مربوطه، و یک توضیح اختیاری است. هر فیلد باید با نام فیلد، یک دونقطه (:)، و سپس مقدار مشخصشده پیشوندگذاری شود. نحو اقدامات دقیقاً مشابه نحو اقدامات کلیدهای میانبر است. فاصلههای خالی میان فیلدها نادیده گرفته میشوند.
اگر نیاز دارید کاما یا هر کاراکتر خاص دیگری را در مقادیر درج کنید، مقدار را در علامت نقلقول دوتایی قرار دهید تا به عنوان یک لیترال رشته Zig تفسیر شود. این کار همچنین برای گنجاندن فاصله خالی در ابتدا یا انتهای یک مقدار مفید است. برای اطلاعات بیشتر درباره لیترالهای رشته، مستندات Zig را ببینید. توجه داشته باشید که لیترالهای رشته چندخطی پشتیبانی نمیشوند.
علامتهای نقلقول دوتایی نمیتوانند در اطراف نامهای فیلد استفاده شوند.
-
command-palette-entry = title:Reset Font Style, action:csi:0m command-palette-entry = title:Crash on Main Thread,description:Causes a crash on the main (UI) thread.,action:crash:main command-palette-entry = title:Focus Split: Right,description:"Focus the split to the right, if it exists.",action:goto_split:right command-palette-entry = title:"Ghostty",description:"Add a little Ghostty to your terminal.",action:"text:f1"
بهطور پیشفرض، پالت فرمان با اکثر اقداماتی که ممکن است در یک محیط تعاملی مفید باشند اما میانبرهای با دسترسی آسان ندارند از پیش پر شده است. ورودیهای پیشفرض را میتوان با تنظیم این گزینه روی یک مقدار خالی پاک کرد:
-
command-palette-entry =
موجود از نسخه: 1.2.0 به بعد.
- --osc-color-report-format
- قالب گزارش برای دنبالههای OSC که اطلاعات رنگ را درخواست میکنند. شبیهساز Ghostty در حال حاضر از پرسوجوهای OSC 10 (پیشزمینه)، OSC 11 (پسزمینه) و OSC 4 (پالت ۲۵۶ رنگ) پشتیبانی میکند، و بهطور پیشفرض مقادیر گزارششده مقادیر مقیاسیافته RGB هستند که هر مؤلفه ۱۶ بیتی است. بیشتر ترمینالها این مقادیر را به این صورت گزارش میکنند. با این حال، برخی برنامههای قدیمی ممکن است به مؤلفههای ۸ بیتی و مقیاسنیافته نیاز داشته باشند. ما همچنین از غیرفعال کردن کامل گزارش رنگ پشتیبانی میکنیم. مؤلفهها مقادیر هگزادسیمال با حروف کوچک هستند.
مقادیر مجاز عبارتند از:
- •
- none - پرسوجوهای OSC 4/10/11 پاسخی دریافت نمیکنند.
- •
- 8-bit - مؤلفههای رنگ به صورت مقیاسنیافته برگردانده میشوند؛ مانند rr/gg/bb.
- •
- 16-bit - مؤلفههای رنگ به صورت مقیاسیافته برگردانده میشوند؛ مانند rrrr/gggg/bbbb.
مقدار پیشفرض 16-bit است.
- --vt-kam-allowed
- اگر true باشد، اجازه میدهد حالت “KAM” (حالت ۲ استاندارد ANSI) در ترمینال استفاده شود. حالت KAM ورودی صفحهکلید را به درخواست برنامه غیرفعال میکند. این یک ویژگی معمول نیست و فعالسازی آن توصیه نمیشود. این مورد بیشتر از این مستند نخواهد شد، زیرا اگر بدانید به KAM نیاز دارید، نیازی به توضیح بیشتر ندارید. اگر نمیدانید به KAM نیاز دارید یا خیر، پس به آن نیازی ندارید.
- --custom-shader
- شیدرهای سفارشی برای اجرا پس از شیدرهای پیشفرض. این مقدار یک مسیر فایل به شیدر با نحو GLSL برای تمام پلتفرمها است.
هشدار: شیدرهای نامعتبر میتوانند باعث غیرقابل استفاده شدن Ghostty شوند، مانند سیاه شدن کامل پنجره. اگر این اتفاق افتاد، میتوانید این پیکربندی را لغو کنید تا شیدر غیرفعال شود.
پشتیبانی از شیدر سفارشی بر اساس شیدرهای Shadertoy بوده و با آنها سازگار است. شیدرها باید یک تابع mainImage را مشخص کنند و یونیفرمهای (uniforms) در دسترس عمدتاً با Shadertoy مطابقت دارند، با برخی نکات و الحاقات اختصاصی Ghostty.
مقادیر یونیفرم در دسترس شیدرها عبارتند از:
- •
- sampler2D iChannel0 - بافت ورودی (Input texture).
بافتی حاوی صفحه فعلی ترمینال. اگر چندین شیدر سفارشی مشخص شده باشند، خروجی شیدرهای قبلی روی این بافت نوشته میشود تا امکان ترکیب چندین افکت فراهم گردد.
- •
- vec3 iResolution - اندازه بافت خروجی، [width, height, 1] (بر حسب پیکسل).
- •
- float iTime - زمان بر حسب ثانیه از زمان رندر اولین فریم.
- •
- float iTimeDelta - زمان بر حسب ثانیه از زمان رندر فریم قبلی.
- •
- float iFrameRate - میانگین نرخ فریم (در حال حاضر پشتیبانی نمیشود).
- •
- int iFrame - تعداد فریمهایی که تاکنون رندر شدهاند.
- •
- float iChannelTime[4] - زمان جاری برای ورودی ویدیو یا صدا (غیر قابل اعمال).
- •
- vec3 iChannelResolution[4] - رزولوشنهای ۴ نمونهبردار ورودی.
در حال حاضر فقط iChannel0 وجود دارد، و iChannelResolution[0] با iResolution یکسان است.
- •
- vec4 iMouse - اطلاعات ورودی ماوس (در حال حاضر پشتیبانی نمیشود).
- •
- vec4 iDate - اطلاعات تاریخ/زمان (در حال حاضر پشتیبانی نمیشود).
- •
- float iSampleRate - نرخ نمونهبرداری برای صدا (غیر قابل اعمال).
الحاقات اختصاصی Ghostty:
- •
- vec4 iCurrentCursor - اطلاعات درباره مکاننمای ترمینال.
- •
- iCurrentCursor.xy گوشه -X و +Y مکاننمای جاری است.
- •
- iCurrentCursor.zw عرض و ارتفاع مکاننمای جاری است.
- •
- vec4 iPreviousCursor - اطلاعات درباره مکاننمای قبلی ترمینال.
- •
- vec4 iCurrentCursorColor - رنگ مکاننمای ترمینال.
- •
- vec4 iPreviousCursorColor - رنگ مکاننمای قبلی ترمینال.
- •
- vec4 iCurrentCursorStyle - سبک مکاننمای ترمینال.
ماکروهایی برای استفاده سادهتر برای سبکهای مختلف مکاننما تعریف شدهاند:
- •
- CURSORSTYLE_BLOCK یا 0
- •
- CURSORSTYLE_BLOCK_HOLLOW یا 1
- •
- CURSORSTYLE_BAR یا 2
- •
- CURSORSTYLE_UNDERLINE یا 3
- •
- CURSORSTYLE_LOCK یا 4
- •
- vec4 iPreviousCursorStyle - سبک مکاننمای قبلی ترمینال.
- •
- vec4 iCursorVisible - قابلیت مشاهده مکاننمای ترمینال.
- •
- float iTimeCursorChange - برچسب زمانی تغییر مکاننمای ترمینال.
هنگامی که مکاننمای ترمینال موقعیت یا رنگ خود را تغییر میدهد، این متغیر روی همان زمان یونیفرم iTime تنظیم میشود و به شما امکان میدهد زمان سپریشده از زمان تغییر را با کسر این مقدار از iTime محاسبه کنید.
- •
- float iTimeFocus - برچسب زمانی هنگامی که صفحه آخرین بار متمرکز شد.
هنگامی که صفحه تمرکز را به دست میآورد، این متغیر روی مقدار فعلی iTime تنظیم میشود، مشابه نحوه کار iTimeCursorChange. این به شما امکان میدهد زمان سپریشده از زمان دریافت یا از دست دادن تمرکز را با محاسبه iTime - iTimeFocus به دست آورید. از این برای ایجاد پویانماییهایی استفاده کنید که هنگام بازگشت تمرکز به ترمینال مجدداً شروع میشوند.
- •
- int iFocus - وضعیت تمرکز فعلی صفحه.
هنگامی که صفحه متمرکز است روی 1.0 و زمانی که غیرمتمرکز است روی 0.0 تنظیم میشود. این به شیدرها اجازه میدهد تا وضعیت غیرمتمرکز را تشخیص داده و از مصنوعات پویانمایی ناشی از دلتاهای زمانی بزرگ که توسط فریمهای فریبنده نامکرر ایجاد میشوند جلوگیری کنند. شرط iFocus > 0 را بررسی کنید تا تعیین نمایید آیا صفحه در حال حاضر متمرکز است یا خیر.
- •
- vec3 iPalette[256] - پالت ۲۵۶ رنگ ترمینال.
مقادیر RGB برای تمام ۲۵۶ رنگ در پالت ترمینال، نرمالشده در بازه [0.0, 1.0]. اندیسهای ۰ تا ۱۵ رنگهای ANSI، ۱۶ تا ۲۳۱ مکعب رنگی ۶×۶×۶ و ۲۳۲ تا ۲۵۵ رنگهای مقیاس خاکستری هستند.
- •
- vec3 iBackgroundColor - رنگ پسزمینه ترمینال (RGB).
- •
- vec3 iForegroundColor - رنگ متن پیشزمینه ترمینال (RGB).
- •
- vec3 iCursorColor - رنگ مکاننمای ترمینال (RGB).
- •
- vec3 iCursorText - رنگ متن مکاننمای ترمینال (RGB).
- •
- vec3 iSelectionBackgroundColor - رنگ پسزمینه متن انتخابشده (RGB).
- •
- vec3 iSelectionForegroundColor - رنگ متن پیشزمینه انتخابشده (RGB).
اگر شیدر کامپایل نشود، شیدر نادیده گرفته خواهد شد. هرگونه خطای مربوط به کامپایل شیدر به عنوان خطای پیکربندی ظاهر نمیشود و تنها در لاگ ثبت میگردد، زیرا کامپایل شیدر پس از بارگیری کانفیگ در رشته اختصاصی رندر انجام میشود. برای توسعه تعاملی، از shadertoy.com استفاده کنید.
این گزینه میتواند چندین بار برای بارگیری چندین شیدر تکرار شود. شیدرها به ترتیبی که مشخص شدهاند اجرا خواهند شد.
این تنظیم در زمان اجرا قابل تغییر است و بر تمام ترمینالهای باز تأثیر میگذارد.
- --custom-shader-animation
- اگر true باشد (پیشفرض)، صفحه ترمینال متمرکزشده هنگام استفاده از شیدرهای سفارشی یک حلقه پویانمایی را اجرا خواهد کرد. این کار پردازنده کمی بیشتری مصرف میکند (عموماً کمتر از ۱۰٪) اما امکان پویانمایی شیدر را فراهم میسازد. این مورد تنها در صورتی اجرا میشود که شیدرهای سفارشی وجود داشته باشند و ترمینال متمرکز باشد.
اگر روی false تنظیم شود، ترمینال و شیدر سفارشی تنها زمانی رندر میشوند که ترمینال بهروزرسانی شود. این کار کارآمدتر است اما شیدر پویانمایی نخواهد داشت.
همچنین میتواند روی always تنظیم شود، که همیشه حلقه پویانمایی را صرفنظر از اینکه ترمینال متمرکز است یا خیر اجرا میکند. توجه داشته باشید که این کار مصرف پردازنده بیشتری به ازای هر صفحه ایجاد میکند و میتواند بسته به شیدر و میزان مصرف ترمینال، بسیار سنگین باشد.
این گزینه در زمان اجرا قابل تغییر است و بر تمام ترمینالهای باز تأثیر میگذارد.
- --bell-features
- ویژگیهای زنگ ترمینال (bell) برای فعالسازی در صورت در دسترس بودن در محیط اجرای شما. همه ویژگیها در همه محیطها در دسترس نیستند. قالب آن فهرستی از ویژگیها است که با کاما جدا شدهاند. اگر پیشوند no- را به یک ویژگی اضافه کنید، غیرفعال میشود. اگر ویژگیای را حذف کنید، مقدار پیشفرض آن استفاده میشود.
مقادیر معتبر عبارتند از:
- •
- system
دستور به سیستم برای اطلاعرسانی به کاربر با استفاده از توابع داخلی سیستم. این میتواند منجر به یک افکت سمعی و بصری، یک اعلان، یا چیز دیگری شود. تغییر این افکتها نیازمند تغییر تنظیمات سیستم است؛ مانند تنظیم “Sound > Alert Sound” در GNOME یا تنظیمات “Accessibility > System Bell” در KDE Plasma. در macOS، این صدا هشدار سیستم را پخش میکند.
- •
- audio
پخش یک صدای سفارشی. (موجود از نسخه 1.3.0 در macOS)
- •
- attention (بهطور پیشفرض فعال است)
درخواست توجه کاربر هنگامی که Ghostty متمرکز نیست، تا زمانی که مجدداً تمرکز را به دست آورد. در macOS، این کار آیکون برنامه را یک بار در داک میپراند. در لینوکس، رفتار به محیط رومیزی و/یا مدیر پنجره بستگی دارد: در KDE، پسزمینه آیکون دسکتاپ در نوار وظیفه برجسته میشود؛ در GNOME، ممکن است اعلانی دریافت کنید که با کلیک روی آن پنجره Ghostty متمرکز میشود؛ در Sway، پنجره ممکن است با یک حاشیه رنگی متمایز تزئین شود؛ در سایر سیستمها ممکن است هیچ اثری نداشته باشد.
- •
- title (بهطور پیشفرض فعال است)
افزودن ایموجی زنگ (🔔) به ابتدای عنوان صفحه هشدار داده شده تا زمانی که ترمینال مجدداً متمرکز شود یا با آن تعامل صورت گیرد (مانند فشردن کلید).
- •
- border
نمایش یک حاشیه در اطراف صفحه هشدار داده شده تا زمانی که ترمینال مجدداً متمرکز شود یا تعاملی صورت گیرد.
موجود از نسخه: 1.2.0 در GTK، نسخه 1.2.1 در macOS.
مثال: audio، no-audio، system، no-system
موجود از نسخه: 1.2.0 به بعد.
- --bell-audio-path
- اگر audio یک ویژگی فعال زنگ باشد، این مقداری است که به مسیر فایل صوتی اشاره دارد. اگر مسیر مطلق نباشد، نسبت به دایرکتوری فایل کانفیگی که از آن فراخوانی شده، یا از دایرکتوری کاری فعلی در صورت استفاده به عنوان پرچم CLI سنجیده میشود. مسیر میتواند با ~/ برای ارجاع به دایرکتوری خانگی کاربر پیشوندگذاری شود.
موجود از نسخه: 1.2.0 در GTK، نسخه 1.3.0 در macOS.
- --bell-audio-volume
- اگر audio فعال باشد، بلندی صدای پخش فایل صوتی (نسبت به حجم صدای سیستم). این یک عدد اعشاری از 0.0 (سکوت) تا 1.0 (حداکثر بلندی ممکن) است. پیشفرض 0.5 است.
موجود از نسخه: 1.2.0 در GTK، نسخه 1.3.0 در macOS.
- --app-notifications
- کنترل اعلانهای درونبرنامهای که Ghostty نمایش میدهد.
در لینوکس (GTK)، اعلانهای درونبرنامهای به صورت کادرهای پیام کوتاه (toasts) نمایش داده میشوند. این کادرها به صورت همپوشان در بالای پنجره ترمینال ظاهر میشوند. آنها برای نمایش اطلاعاتی استفاده میشوند که حیاتی نیستند اما ممکن است مهم باشند.
اعلانهای ممکن عبارتند از:
- •
- clipboard-copy (پیشفرض: true) - نمایش اعلان هنگامی که متن در کلیپبورد کپی میشود.
- •
- config-reload (پیشفرض: true) - نمایش اعلان هنگامی که پیکربندی مجدداً بارگیری میشود.
برای فعالسازی یک اعلان، نام آن را مشخص کنید. برای غیرفعالسازی، پیشوند no- را به ابتدای نام اضافه نمایید؛ برای مثال no-clipboard-copy.
میتوان چندین اعلان را با جدا کردن آنها با کاما فعال یا غیرفعال کرد. مقدار “false” تمام اعلانها را غیرفعال و “true” تمام اعلانها را فعال میکند.
این پیکربندی فقط در GTK اعمال میشود.
موجود از نسخه: 1.1.0 به بعد.
- --macos-non-native-fullscreen
- اگر مقداری غیر از false باشد، حالت تمامصفحه در macOS از تمامصفحه بومی استفاده نخواهد کرد، بلکه پنجره را بدون پویانمایی و با استفاده از یک فضای کاری جدید تمامصفحه میکند. این روش سریعتر از حالت تمامصفحه بومی است زیرا از پویانمایی استفاده نمیکند.
مهم: زبانهها در این حالت کار نمیکنند. تمامصفحه غیربومی نوار عنوان را حذف میکند و زبانههای بومی macOS به نوار عنوان نیاز دارند. اگر از زبانهها استفاده میکنید، نباید از این حالت استفاده نمایید.
اگر پنجرهای دارای زبانه را تمامصفحه کنید، زبانه متمرکزشده فعلی تمامصفحه شده در حالی که زبانههای دیگر در یک پنجره جداگانه در پسزمینه باقی خواهند ماند. میتوانید با استفاده از میانبرهای معمولی جابهجایی پنجره مانند command+tilde به آن پنجره بروید. هنگامی که از حالت تمامصفحه خارج شوید، پنجره به وضعیت دارای زبانهای که قبلاً در آن بود بازمیگردد.
مقادیر مجاز عبارتند از:
- •
- true - استفاده از تمامصفحه غیربومی macOS، پنهان کردن نوار منو.
- •
- false - استفاده از تمامصفحه بومی macOS.
- •
- visible-menu - استفاده از تمامصفحه غیربومی macOS، نمایان نگه داشتن نوار منو.
- •
- padded-notch - استفاده از تمامصفحه غیربومی macOS، پنهان کردن نوار منو اما در نظر گرفتن حاشیه برای ناچ (بریدگی بالای صفحه) در دستگاههای دارای ناچ.
تغییر این گزینه در زمان اجرا کار میکند اما فقط برای دفعه بعدی که پنجره تمامصفحه میشود اعمال خواهد شد.
- --macos-window-buttons
- آیا دکمههای پنجره در نوار عنوان macOS قابل مشاهده باشند یا خیر. دکمههای پنجره همان دکمههای رنگی در گوشه بالای سمت چپ اکثر برنامههای macOS هستند که به چراغهای راهنمایی معروفند و به شما امکان میبندند، کوچک میکنند یا پنجره را بزرگنمایی مینمایند.
این تنظیم هنگامی که window-decoration = none یا macos-titlebar-style = hidden باشد تاثیری ندارد، زیرا دکمههای پنجره در این حالتها همیشه پنهان هستند.
مقادیر معتبر:
- •
- visible - نمایش دکمههای پنجره.
- •
- hidden - پنهان کردن دکمههای پنجره.
مقدار پیشفرض visible است.
تغییر این گزینه در زمان اجرا فقط برای پنجرههای جدید اعمال میشود.
موجود از نسخه: 1.2.0 به بعد.
- --macos-titlebar-style
- سبک نوار عنوان در macOS. مقادیر موجود عبارتند از: “native”، “transparent”، “tabs” و “hidden”.
سبک “native” از نوار عنوان بومی macOS بدون هیچگونه سفارشیسازی استفاده میکند. نوار عنوان با تم پنجره شما مطابقت خواهد داشت (به window-theme مراجعه کنید).
سبک “transparent” همانند “native” است اما نوار عنوان شفاف بوده و اجازه میدهد رنگ پسزمینه پنجره شما نمایان شود. این ظاهر یکپارچهتری ایجاد میکند اما برای برنامههای macOS کمی نامتعارفتر به نظر میرسد و ممکن است با همه تمها خوب کار نکند.
سبک “transparent” همچنین در زمان واقعی نسبت به تغییرات پویای رنگ پسزمینه پنجره (مانند دنباله OSC 11) بهروزرسانی میشود. برای زیباتر شدن، این تنها در صورتی رخ میدهد که ترمینال یک پنجره، زبانه یا بخشی باشد که به بالای پنجره متصل است.
سبک “tabs” یک نوار عنوان کاملاً سفارشی است که نوار زبانه را در نوار عنوان ادغام میکند. این نوار عنوان همیشه با رنگ پسزمینه ترمینال مطابقت دارد.
سبک “hidden” نوار عنوان را پنهان میکند. با این حال برخلاف window-decoration = none، قاب پنجره یا گوشههای گرد آن را حذف نمیکند. هنگامی که روی “hidden” باشد، ناحیه بالای نوار عنوان دیگر نمیتواند برای کشیدن پنجره استفاده شود. برای کشیدن پنجره میتوانید از option+click روی نواحی با قابلیت تغییر اندازه قاب استفاده کنید.
مقدار پیشفرض “transparent” است. تغییر این گزینه در زمان اجرا فقط برای پنجرههای جدید اعمال میشود.
- --macos-titlebar-proxy-icon
- نمایش یا عدم نمایش آیکون پروکسی در نوار عنوان macOS. آیکون پروکسی آیکونی است که نشاندهنده پوشه دایرکتوری کاری فعلی است. میتوانید این را در نوار عنوان برنامه پیشفرض Terminal.app در macOS به وضوح ببینید.
آیکون پروکسی فقط با سبک نوار عنوان بومی macOS قابل مشاهده است.
مقادیر معتبر:
- •
- visible - نمایش آیکون پروکسی.
- •
- hidden - پنهان کردن آیکون پروکسی.
مقدار پیشفرض visible است.
این تنظیم در زمان اجرا قابل تغییر است و بر پنجرههای باز فعلی پس از تغییر دایرکتوری کاری آنها اعمال میشود.
- --macos-dock-drop-behavior
- کنترل رفتار پنجرهها هنگام کشیدن و رها کردن (drop) یک فایل یا پوشه روی آیکون Ghostty در داک macOS.
مقادیر معتبر:
- •
- new-tab - ایجاد یک زبانه جدید در پنجره فعلی، یا باز کردن پنجره جدید در صورت عدم وجود پنجره.
- •
- new-window - ایجاد بدون قید و شرط یک پنجره جدید.
مقدار پیشفرض new-tab است.
این تنظیم فقط در macOS پشتیبانی میشود.
- --macos-option-as-alt
- سیستمعامل macOS کلید متمایز “alt” ندارد و در عوض کلید “option” دارد که رفتاری اندکی متفاوت دارد. در macOS بهطور پیشفرض، کلید option به همراه یک نویسه گاهی یک نویسه یونیکد تولید میکند؛ برای مثال در چیدمان استاندارد ایالات متحده، option-b کاراکتر “∫” را تولید میکند. اگر بخواهید از option به عنوان کلید alt برای میانبرها در برنامههای ترمینال یا پوستهها استفاده کنید، این ممکن است نامطلوب باشد.
این پیکربندی به شما امکان میدهد رفتار را تغییر دهید تا با option مانند alt رفتار شود.
رفتار پیشفرض (در صورت عدم تنظیم) به چیدمان صفحهکلید فعال شما بستگی دارد. اگر چیدمان صفحهکلید شما یکی از چیدمانهای U.S. Standard یا U.S. International باشد، مقدار پیشفرض “true” است؛ در غیر این صورت “false” است.
اگر true باشد، کلید Option مانند Alt تلقی میشود. این باعث میشود دنبالههای ترمینالی که انتظار Alt را دارند به درستی کار کنند، اما دنبالههای ورودی یونیکد در macOS را در صورت استفاده از کلید Option با اختلال مواجه میکند.
مقادیر left یا right این قابلیت را به ترتیب فقط برای کلید Option چپ یا راست فعال میکنند.
- --macos-window-shadow
- فعالسازی سایه پنجره در macOS. مقدار پیشفرض true است. با برخی مدیران پنجره و تنظیمات شفافیت پنجره، ممکن است مقدار false از نظر بصری جذابتر باشد.
- --macos-hidden
- کنترل اینکه آیا برنامه macOS از داک و تعویضکننده برنامهها (App Switcher) مستثنی و پنهان شود یا خیر. این گزینه در درجه اول برای کسانی در نظر گرفته شده که از حالت ترمینال سریع (quick terminal) استفاده میکنند.
مقادیر موجود:
- •
- never - برنامه macOS هرگز پنهان نشود.
- •
- always - برنامه macOS همیشه پنهان باشد.
نکته: هنگامی که برنامه macOS پنهان باشد، تغییرات چیدمان صفحهکلید دیگر خودکار نخواهد بود. این یکی از محدودیتهای سیستمعامل macOS است.
موجود از نسخه: 1.2.0 به بعد.
- --macos-auto-secure-input
- اگر true باشد، Ghostty در macOS هنگام تشخیص نمایش اعلان رمز عبور، به طور خودکار ویژگی “ورودی امن” (Secure Input) را فعال میکند.
قابلیت “ورودی امن” یک ویژگی امنیتی macOS است که از خواندن رویدادهای صفحهکلید توسط سایر برنامهها جلوگیری میکند. این مورد همیشه میتواند به صورت دستی از طریق آیتم منوی Ghostty > Secure Keyboard Entry فعال شود.
توجه داشته باشید که تشخیص خودکار اعلان رمز عبور مبتنی بر روشهای حدسی است و ممکن است همیشه طبق انتظار کار نکند؛ بهویژه در اتصالات SSH کار نمیکند.
- --macos-secure-input-indication
- اگر true باشد، شبیهساز Ghostty هنگام فعال بودن ورودی امن یک نشانگر گرافیکی را نمایش میدهد. عموماً توصیه میشود این نشانگر فعال باشد تا مشخص گردد چه زمانی ورودی امن فعال است.
بهطور معمول ورودی امن فقط هنگام نمایش اعلان رمز عبور یا به صورت دستی فعال میشود. اما اگر همیشه ورودی امن را فعال دارید، این نشانگر ممکن است حواسپرتکن باشد و بخواهید آن را غیرفعال کنید.
- --macos-applescript
- اگر true باشد، Ghostty فرهنگ لغت داخلی AppleScript را در macOS ارائه و مدیریت میکند.
اگر false باشد، تمام تعاملات AppleScript غیرفعال میشوند. این شامل دستورات AppleScript و جستجوی اشیاء AppleScript برای پنجرهها، زبانهها و ترمینالها است. پیشفرض true است.
- --macos-icon
- شخصیسازی آیکون برنامه در macOS.
این گزینه فقط بر آیکونی تأثیر میگذارد که در داک، جابهجاگر برنامهها و غیره ظاهر میشود. این بر آیکون در Finder تأثیری ندارد زیرا توسط مقداری ثابت در بسته نرمافزاری امضاشده کنترل میشود و در زمان اجرا قابل تغییر نیست.
مقادیر معتبر:
- •
- official - استفاده از آیکون رسمی Ghostty.
- •
- blueprint، chalkboard، microchip، glass، holographic، paper، retro، xray - گونههای رسمی آیکون Ghostty که توسط هنرمندان به صورت دستی طراحی شدهاند (بدون هوش مصنوعی).
- •
- custom - استفاده از یک آیکون کاملاً سفارشی. مکان فایل باید با استفاده از پیکربندی اضافی macos-custom-icon مشخص شود.
- •
- custom-style - استفاده از آیکون رسمی Ghostty اما با سبکهای سفارشی اعمالشده بر روی لایههای مختلف. سبکهای سفارشی باید با استفاده از پیکربندیهای دارای پیشوند macos-icon مشخص شوند. پیکربندیهای macos-icon-ghost-color و macos-icon-screen-color برای این سبک الزامی هستند.
هشدار: گزینه custom-style آزمایشی است.
- --macos-custom-icon
- مسیر مطلق به فایل آیکون سفارشی. قالبهای پشتیبانیشده شامل PNG، JPEG و ICNS هستند.
پیشفرض: ~/.config/ghostty/Ghostty.icns
- --macos-icon-frame
- ماده و جنس مورد استفاده برای قاب آیکون برنامه در macOS.
مقادیر معتبر:
- •
- aluminum - قاب آلومینیومی برسخورده (پیشفرض).
- •
- beige - قاب کرمرنگ کلاسیک رایانههای دهه ۹۰.
- •
- plastic - قاب پلاستیکی تیره و براق.
- •
- chrome - قاب کرومی براق.
نکته: این پیکربندی هنگامی که macos-icon روی custom-style تنظیم شده باشد الزامی است.
- --macos-icon-ghost-color
- رنگ روح در آیکون برنامه macOS.
نکته: این تنظیم هنگامی که macos-icon روی custom-style باشد الزامی است. به صورت هگزادسیمال (#RRGGBB یا RRGGBB) یا نام رنگهای X11 مشخص میشود.
- --macos-icon-screen-color
- رنگ صفحه نمایش در آیکون برنامه macOS.
صفحه نمایش یک گرادیان خطی است بنابراین میتوانید چندین رنگ را برای ساخت گرادیان مشخص کنید. حداکثر ۶۴ رنگ جداشده با کاما میتوانند به صورت هگزادسیمال یا نام رنگهای X11 مشخص شوند. اولین رنگ، پایین گرادیان و آخرین رنگ بالای گرادیان است.
نکته: این تنظیم هنگامی که macos-icon روی custom-style تنظیم شده باشد الزامی است.
- --macos-shortcuts
- اجازه یا عدم اجازه به برنامه Shortcuts در macOS برای کنترل Ghostty.
شبیهساز Ghostty مجموعهای از اقدامات را در دسترس قرار میدهد که به Shortcuts امکان میدهد تا با Ghostty تعامل داشته باشد. این شامل ایجاد ترمینالهای جدید، ارسال متن، اجرای دستورات، فراخوانی هرگونه اقدام کلید میانبر و غیره است. این قابلیت قدرتمندی است اما در صورت اجرای یک میانبر مخرب میتواند ریسک امنیتی داشته باشد.
مقادیر معتبر:
- •
- ask - درخواست تأیید از کاربر. شبیهساز Ghostty این انتخاب را به خاطر میسپارد.
- •
- allow - اجازه به Shortcuts بدون درخواست تأیید.
- •
- deny - رد دسترسی Shortcuts به کنترل Ghostty.
موجود از نسخه: 1.2.0 به بعد.
- --linux-cgroup
- قرار دادن هر صفحه ترمینال (زبانه، بخش تفکیکشده، پنجره) در یک دامنه (scope) گذرای systemd.
این قابلیت مدیریت منابع را به ازای هر صفحه امکانپذیر میسازد. برای مثال، اگر یک برنامه پوسته حافظه زیادی مصرف کند، فقط آن پوسته توسط پایشگر OOM متوقف خواهد شد به جای اینکه کل فرایند Ghostty بسته شود. همچنین اگر برنامهای پردازنده زیادی مصرف کند، فقط همان صفحه با محدودیت پردازنده مواجه خواهد شد.
این گزینه باعث افزایش زمان راهاندازی (در حدود ۱۰۰ میلیثانیه) میشود، بنابراین مقدار پیشفرض “single-instance” است. این ویژگی نیازمند systemd است.
مقادیر معتبر:
- •
- never - هرگز از cgroupها استفاده نشود.
- •
- always - همیشه از cgroupها استفاده شود.
- •
- single-instance - فعالسازی cgroupها تنها برای نمونههای Ghostty که به صورت برنامه تکنمونه اجرا شدهاند.
- --linux-cgroup-memory-limit
- حد حافظه برای هر فرایند ترمینال منفرد (زبانه، بخش تفکیکشده، پنجره و غیره) بر حسب بایت. در صورت عدم تنظیم، هیچ محدودیت حافظهای اعمال نخواهد شد.
توجه داشته باشید که این گزینه تنظیم MemoryHigh را در دامنه گذرای systemd تنظیم میکند که یک حد نرم (soft limit) است. برای اطلاعات بیشتر مستندات systemd.resource-control را ببینید: https://www.freedesktop.org/software/systemd/man/latest/systemd.resource-control.html
- --linux-cgroup-processes-limit
- محدودیت تعداد فرایندها برای هر فرایند ترمینال منفرد. در صورت عدم تنظیم، هیچ محدودیتی اعمال نخواهد شد.
توجه داشته باشید که این گزینه تنظیم TasksMax را در دامنه گذرای systemd تنظیم میکند که یک حد سخت (hard limit) است. برای اطلاعات بیشتر مستندات systemd.resource-control را ببینید: https://www.freedesktop.org/software/systemd/man/latest/systemd.resource-control.html
- --linux-cgroup-hard-fail
- اگر false باشد، شکست در ایجاد یک دامنه گذرای systemd مجاز خواهد بود و نادیده گرفته میشود. اگر true باشد، هرگونه شکست در ایجاد دامنه باعث شکست در ایجاد صفحه ترمینال خواهد شد.
تغییر این مقدار و بارگیری مجدد کانفیگ بر صفحات موجود تأثیری نخواهد داشت.
- --gtk-opengl-debug
- فعال یا غیرفعال کردن لاگهای اشکالزدایی OpenGL در GTK. پیشفرض برای نسخههای دیباگ true و برای سایر نسخهها false است.
موجود از نسخه: 1.1.0 به بعد.
- --gtk-single-instance
- اگر true باشد، برنامه GTK در حالت تکنمونه اجرا خواهد شد: هر فرایند جدید ghostty در صورتی که فرایندی در حال اجرا باشد منجر به یک پنجره جدید میشود.
اگر false باشد، هر فرایند جدید یک برنامه جداگانه را اجرا خواهد کرد.
اگر detect باشد، Ghostty مقدار true (تکنمونه) را فرض میکند مگر اینکه یکی از سناریوهای زیر رخ دهد:
- 1.
- متغیر محیطی TERM_PROGRAM مقداری غیرخالی باشد.
- 2.
- آرگومانهای خط فرمان (CLI) وجود داشته باشند.
مقدار پیشفرض detect است.
- --gtk-titlebar
- در صورت فعال بودن، نوار عنوان کامل GTK به جای نوار عنوان ساده مدیر پنجره شما نمایش داده میشود. رفتار این گزینه با مدیر پنجره شما متفاوت خواهد بود.
این گزینه هنگامی که window-decoration روی none باشد یا در صورت اجرا تحت macOS کاری انجام نمیدهد.
- --gtk-tabs-location
- جهت صفحه که نوار زبانه GTK به آن میچسبد. حالتهای بالا (top)، پایین (bottom) و پنهان (hidden) پشتیبانی میشوند. پیشفرض top است.
هنگامی که روی hidden تنظیم شود، یک دکمه زبانه که تعداد زبانهها را نشان میدهد در نوار عنوان ظاهر خواهد شد.
- --gtk-titlebar-hide-when-maximized
- اگر true باشد، هنگام بزرگنمایی پنجره (maximize)، نوار عنوان پنهان شده و با خروج از حالت بزرگنمایی مجدداً نمایش داده میشود. فقط در GTK.
موجود از نسخه: 1.1.0 به بعد.
- --gtk-toolbar-style
- ظاهر نوار ابزار بالا و پایین در نوار زبانهها.
مقادیر معتبر:
- •
- flat - نوارهای بالا و پایین همسطح و تخت با پنجره ترمینال هستند.
- •
- raised - نوارهای بالا و پایین سایهای روی ناحیه ترمینال میاندازند.
- •
- raised-border - مشابه raised اما سایه با یک حاشیه ظریفتر جایگزین شده است.
- --gtk-titlebar-style
- سبک نوار عنوان GTK. مقادیر موجود native و tabs هستند.
سبک native یک نوار عنوان سنتی با یک عنوان، چند دکمه و کنترلهای پنجره است. یک نوار زبانه جداگانه در زیر نوار عنوان در صورت باز بودن چندین زبانه نمایش داده میشود.
سبک tabs نوار زبانه و نوار عنوان سنتی را ادغام میکند. این امر فضای عمودی روی صفحه شما را آزاد میسازد. یک محدودیت این است که دیگر نمیتوانید پنجره را با کشیدن عناوین زبانه حرکت دهید. سایر نواحی نوار عنوان میتوانند برای کشیدن پنجره استفاده شوند.
سبک پیشفرض native است.
- --gtk-wide-tabs
- اگر true باشد (پیشفرض)، زبانههای GTK در Ghostty به صورت “پهن (wide)” خواهند بود. زبانههای پهن سبک متداول جدید در گنوم هستند که در آن زبانهها فضای موجود خود را پر میکنند. اگر این گزینه را روی false قرار دهید، زبانهها فقط فضای مورد نیاز خود را اشغال خواهند کرد.
- --gtk-custom-css
- فایلهای CSS سفارشی برای بارگیری.
مستندات GTK CSS را میتوانید در پیوندهای زیر بیابید:
- •
- https://docs.gtk.org/gtk4/css-overview.html - نمای کلی GTK CSS.
- •
- https://docs.gtk.org/gtk4/css-properties.html - فهرست کامل ویژگیهای CSS پشتیبانیشده.
شبیهساز Ghostty را با دستور env GTK_DEBUG=interactive ghostty راهاندازی کنید تا بتوانید با استفاده از GTK Inspector استایلهای CSS را در لحظه تغییر دهید. خطاهای فایلهای CSS در ترمینالی که Ghostty را از آن اجرا کردهاید گزارش خواهند شد. برای اطلاعات بیشتر درباره GTK Inspector به https://developer.gnome.org/documentation/tools/inspector.html مراجعه نمایید.
این پیکربندی میتواند برای بارگیری چندین فایل تکرار شود. علامت ? را به ابتدای مسیر فایل اضافه کنید تا در صورت عدم وجود فایل از خطا جلوگیری شود. محدودیت اندازه برای یک شیوهنامه منفرد برابر با 5MiB است.
موجود از نسخه: 1.1.0 به بعد.
- --desktop-notifications
- اگر true باشد (پیشفرض)، برنامههای در حال اجرا در ترمینال میتوانند اعلانهای دسکتاپ را با استفاده از دنبالههای گریز خاصی مانند OSC 9 یا OSC 777 نمایش دهند.
- --progress-style
- اگر true باشد (پیشفرض)، برنامههای در حال اجرا در ترمینال میتوانند نوارهای پیشرفت گرافیکی را با استفاده از دنباله گریز ConEmu OSC 9;4 نمایش دهند. اگر false باشد، دنبالههای نوار پیشرفت بدون اعلان نادیده گرفته میشوند.
- --bold-color
- رنگ مورد استفاده برای متن توپر (bold) در ترمینال را تغییر میدهد.
میتواند روی یک رنگ خاص تنظیم شود، با استفاده از همان قالبی که برای background یا foreground استفاده میشود (مانند #RRGGBB). اگر رنگ خاصی تعیین شود، این رنگ همیشه برای رنگ پیشفرض متن bold استفاده خواهد شد. این گزینه بقیه رنگهای bold را روی bright تنظیم میکند.
همچنین میتواند روی bright تنظیم شود، که از پالت رنگ روشن برای متن bold استفاده میکند. برای مثال، اگر متن قرمز باشد، متن bold از رنگ قرمز روشن استفاده خواهد کرد. پالت ترمینال با palette تنظیم میشود اما میتواند توسط خود برنامه ترمینال با استفاده از دنبالههای گریزی مانند OSC 4 بازنویسی شود.
موجود از نسخه Ghostty 1.2.0 به بعد.
- --faint-opacity
- میزان کدری (عکس شفافیت) متن کمرنگ (faint). مقدار ۱ کاملاً کدر و مقدار ۰ کاملاً شفاف است. مقداری کمتر از ۰ یا بزرگتر از ۱ به نزدیکترین مقدار معتبر محدود خواهد شد.
موجود از نسخه Ghostty 1.2.0 به بعد.
- --term
- برای تنظیم متغیر محیطی TERM استفاده خواهد شد. ما این را با پیشوند xterm تنظیم میکنیم زیرا vim از آن برای فعالسازی پروتکلهای کلید (بهویژه فعالسازی modifyOtherKeys) و سایر قابلیتها استفاده میکند. گزینهای در vim برای تغییر این مورد وجود دارد: :set keyprotocol=ghostty:kitty، با این حال یک اشکال در پیادهسازی مانع کارکرد صحیح آن میشود. پیوند https://github.com/vim/vim/pull/13211 این مشکل را حل میکند.
- --enquiry-response
- رشتهای که هنگام دریافت ENQ (کد 0x05) از دستور در حال اجرا ارسال میشود. در صورت عدم تنظیم، به صورت پیشفرض یک رشته خالی است.
- --async-backend
- رابط برنامهنویسی سطح پایینی را که برای ورودی/خروجی ناهمگام (async IO)، مدیریت رویدادها و غیره استفاده میشود، پیکربندی میکند.
بیشتر کاربران باید این گزینه را روی auto رها کنند. این حالت به طور خودکار شرایطی را که ممکن است APIها در دسترس نباشند (مانند io_uring در برخی کرنلهای سختگیر) تشخیص داده و به یک API دیگر بازمیگردد. با این حال، اگر به هر دلیلی میخواهید یک بکاند خاص را اجبار کنید، میتوانید آن را در اینجا تنظیم نمایید.
بر اساس معیارهای مختلف، ما تفاوت آماری معنیداری میان بکاندها از نظر حافظه، پردازنده یا تأخیر مشاهده نکردهایم. انتخاب بکاند بیشتر به سازگاری و ویژگیها مربوط میشود.
گزینههای موجود:
- •
- auto - انتخاب خودکار بهترین بکاند برای پلتفرم بر اساس گزینههای موجود.
- •
- epoll - استفاده از رابط epoll.
- •
- io_uring - استفاده از رابط io_uring.
اگر بکاند انتخابشده در پلتفرم در دسترس نباشد، Ghostty به یک بکاند انتخابی خودکار که در دسترس است بازخواهد گشت. تغییر این مقدار نیازمند راهاندازی مجدد کامل برنامه است تا اعمال شود.
این گزینه فقط در لینوکس پشتیبانی میشود زیرا تنها پلتفرمی است که در آن چندین گزینه داریم. در macOS همواره از kqueue استفاده میکنیم.
موجود از نسخه: 1.2.0 به بعد.
- --auto-update
- کنترل قابلیت بهروزرسانی خودکار Ghostty. این گزینه در حال حاضر فقط در macOS پشتیبانی میشود، زیرا نسخههای لینوکس از طریق مدیر بستههایی توزیع میشوند که به صورت مرکزی توسط Ghostty کنترل نمیشوند.
بررسی یا بارگیری بهروزرسانی هیچ اطلاعاتی فراتر از اطلاعات استاندارد شبکه که توسط پروتکلهای زیربنایی الزامی است به پروژه ارسال نمیکند. به بیان دیگر: Ghostty هیچگونه ردگیری اختصاصی به فرآیند بهروزرسانی اضافه نکرده است. فرآیند بهروزرسانی با بارگیری اطلاعات مربوط به آخرین نسخه و مقایسه آن در سمت کلاینت با نسخه فعلی کار میکند.
مقادیر معتبر عبارتند از:
- •
- off - غیرفعال کردن بهروزرسانی خودکار.
- •
- check - بررسی برای بهروزرسانیها و اطلاعرسانی به کاربر در صورت موجود بودن، بدون دانلود یا نصب خودکار.
- •
- download - بررسی برای بهروزرسانیها، دانلود خودکار بهروزرسانی، اطلاعرسانی به کاربر، اما بدون نصب خودکار.
در صورت عدم تنظیم، از رفتار پیشفرض Sparkle تبعیت میشود که اولویت ذخیرهشده در تنظیمات پیشفرض کاربر (defaults(1)) را رعایت میکند.
تغییر این مقدار در زمان اجرا پس از یک تأخیر کوتاه اعمال میشود.
- --auto-update-channel
- کانال انتشار مورد استفاده برای بهروزرسانیهای خودکار.
مقدار پیشفرض این گزینه با کانال انتشار نسخه در حال اجرای فعلی Ghostty مطابقت دارد. اگر نسخه پیشانتشار (pre-release) Ghostty را دانلود کنید، این روی tip تنظیم میشود و بهروزرسانیهای پیشانتشار را دریافت خواهید کرد. اگر نسخه پایدار Ghostty را دانلود کنید، این روی stable تنظیم میشود و بهروزرسانیهای پایدار را دریافت خواهید کرد.
مقادیر معتبر:
- •
- stable - نسخههای پایدار و برچسبخورده مانند “1.0.0”.
- •
- tip - نسخههای پیشانتشار تولیدشده از هر کامیت روی شاخه اصلی (main). این نسخهای است که در طول آزمایش بتا خصوصی توسط هزاران نفر استفاده شده است. عموماً پایدار است اما احتمالاً اشکالات بیشتری نسبت به کانال پایدار خواهد داشت.
تغییر این پیکربندی نیازمند راهاندازی مجدد کامل Ghostty است تا اعمال شود.
این گزینه فقط در macOS کار میکند زیرا فقط macOS دارای قابلیت بهروزرسانی خودکار است.
فایلها (FILES)
- ?[I]/ghostty/config.ghostty?[R]
- محل قرارگیری فایل پیکربندی پیشفرض.
- ?[I]/home/jobin/Library/Application Support/com.mitchellh.ghostty/config.ghostty?[R]
- ?[B]در macOS?[R]، محل قرارگیری فایل پیکربندی پیشفرض. این مکان نسبت به مکانهای محیط XDG اولویت دارد.
- ?[I]/ghostty/config.ghostty?[R]
- ?[B]در ویندوز?[R]، در صورتی که ?[I]?[R] تنظیم نشده باشد، مسیر ?[I]?[R] برای فایلهای پیکربندی جستجو خواهد شد.
محیط (ENVIRONMENT)
- ?[B]TERM?[R]
- بهطور پیشفرض روی ?[CR]xterm-ghostty?[R] تنظیم میشود. میتواند با گزینه پیکربندی ?[CR]term?[R] سفارشیسازی شود.
- ?[B]GHOSTTY_RESOURCES_DIR?[R]
- مسیری که منابع Ghostty در آن یافت میشوند.
- ?[B]XDG_CONFIG_HOME?[R]
- مکان پیشفرض برای فایلهای پیکربندی.
- ?[B]/home/jobin/Library/Application Support/com.mitchellh.ghostty?[R]
- مکان پیشفرض فایلهای پیکربندی ?[B]فقط در MACOS?[R]. این مکان نسبت به مکانهای محیط XDG اولویت دارد.
- ?[B]LOCALAPPDATA?[R]
- ?[B]فقط در ویندوز:?[R] مکان جایگزین برای جستجوی فایلهای پیکربندی.
- ?[B]GHOSTTY_LOG?[R]
- متغیر محیطی ?[CR]GHOSTTY_LOG?[R] میتواند برای کنترل مقصدهای دریافت لاگ استفاده شود. در حال حاضر Ghostty دو مقصد تعریف میکند:
- •
- ?[CR]stderr?[R] - ثبت لاگ در ?[CR]stderr?[R].
- •
- ?[CR]macos?[R] - ثبت در لاگ یکپارچه macOS (در سایر پلتفرمها بیاثر است). مقادیر را با کاما ترکیب کنید تا چندین مقصد فعال شوند. یک پیشوند ?[CR]no-?[R] به مقصد اضافه کنید تا غیرفعال شود. فعالسازی و غیرفعالسازی مقاصد میتواند همزمان انجام شود. تنظیم ?[CR]GHOSTTY_LOG?[R] روی ?[CR]true?[R] همه مقصدها را فعال میکند. تنظیم آن روی ?[CR]false?[R] همه مقصدها را غیرفعال میکند.
اشکالات (BUGS)
مشاهده گزارشهای گیتهاب: https://github.com/ghostty-org/ghostty/issues
نویسندگان (AUTHORS)
Mitchell Hashimoto m@mitchellh.com مشارکتکنندگان Ghostty https://github.com/ghostty-org/ghostty/graphs/contributors
همچنین ببینید (SEE ALSO)
?[B]ghostty(5)?[R]
| Version 1.3.1-arch2 |