| 1 |
|
- |
# The font families to use. |
| 2 |
|
- |
# |
| 3 |
|
- |
# You can generate the list of valid values using the CLI: |
| 4 |
|
- |
# |
| 5 |
|
- |
# ghostty +list-fonts |
| 6 |
|
- |
# |
| 7 |
|
- |
# This configuration can be repeated multiple times to specify preferred |
| 8 |
|
- |
# fallback fonts when the requested codepoint is not available in the primary |
| 9 |
|
- |
# font. This is particularly useful for multiple languages, symbolic fonts, |
| 10 |
|
- |
# etc. |
| 11 |
|
- |
# |
| 12 |
|
- |
# Notes on emoji specifically: On macOS, Ghostty by default will always use |
| 13 |
|
- |
# Apple Color Emoji and on Linux will always use Noto Emoji. You can |
| 14 |
|
- |
# override this behavior by specifying a font family here that contains |
| 15 |
|
- |
# emoji glyphs. |
| 16 |
|
- |
# |
| 17 |
|
- |
# The specific styles (bold, italic, bold italic) do not need to be |
| 18 |
|
- |
# explicitly set. If a style is not set, then the regular style (font-family) |
| 19 |
|
- |
# will be searched for stylistic variants. If a stylistic variant is not |
| 20 |
|
- |
# found, Ghostty will use the regular style. This prevents falling back to a |
| 21 |
|
- |
# different font family just to get a style such as bold. This also applies |
| 22 |
|
- |
# if you explicitly specify a font family for a style. For example, if you |
| 23 |
|
- |
# set `font-family-bold = FooBar` and "FooBar" cannot be found, Ghostty will |
| 24 |
|
- |
# use whatever font is set for `font-family` for the bold style. |
| 25 |
|
- |
# |
| 26 |
|
- |
# Finally, some styles may be synthesized if they are not supported. |
| 27 |
|
- |
# For example, if a font does not have an italic style and no alternative |
| 28 |
|
- |
# italic font is specified, Ghostty will synthesize an italic style by |
| 29 |
|
- |
# applying a slant to the regular style. If you want to disable these |
| 30 |
|
- |
# synthesized styles then you can use the `font-style` configurations |
| 31 |
|
- |
# as documented below. |
| 32 |
|
- |
# |
| 33 |
|
- |
# You can disable styles completely by using the `font-style` set of |
| 34 |
|
- |
# configurations. See the documentation for `font-style` for more information. |
| 35 |
|
- |
# |
| 36 |
|
- |
# If you want to overwrite a previous set value rather than append a fallback, |
| 37 |
|
- |
# specify the value as `""` (empty string) to reset the list and then set the |
| 38 |
|
- |
# new values. For example: |
| 39 |
|
- |
# |
| 40 |
|
- |
# font-family = "" |
| 41 |
|
- |
# font-family = "My Favorite Font" |
| 42 |
|
- |
# |
| 43 |
|
- |
# Setting any of these as CLI arguments will automatically clear the |
| 44 |
|
- |
# values set in configuration files so you don't need to specify |
| 45 |
|
- |
# `--font-family=""` before setting a new value. You only need to specify |
| 46 |
|
- |
# this within config files if you want to clear previously set values in |
| 47 |
|
- |
# configuration files or on the CLI if you want to clear values set on the |
| 48 |
|
- |
# CLI. |
| 49 |
|
- |
# |
| 50 |
|
- |
# Changing this configuration at runtime will only affect new terminals, i.e. |
| 51 |
|
- |
# new windows, tabs, etc. |
| 52 |
|
- |
font-family = "CommitMono Nerd Font" |
| 53 |
|
- |
|
| 54 |
|
- |
font-family-bold = |
| 55 |
|
- |
font-family-italic = |
| 56 |
|
- |
font-family-bold-italic = |
| 57 |
|
- |
|
| 58 |
|
- |
keybind = super+alt+j=toggle_quick_terminal |
| 59 |
|
- |
|
| 60 |
|
- |
# The named font style to use for each of the requested terminal font styles. |
| 61 |
|
- |
# This looks up the style based on the font style string advertised by the |
| 62 |
|
- |
# font itself. For example, "Iosevka Heavy" has a style of "Heavy". |
| 63 |
|
- |
# |
| 64 |
|
- |
# You can also use these fields to completely disable a font style. If you set |
| 65 |
|
- |
# the value of the configuration below to literal `false` then that font style |
| 66 |
|
- |
# will be disabled. If the running program in the terminal requests a disabled |
| 67 |
|
- |
# font style, the regular font style will be used instead. |
| 68 |
|
- |
# |
| 69 |
|
- |
# These are only valid if its corresponding font-family is also specified. If |
| 70 |
|
- |
# no font-family is specified, then the font-style is ignored unless you're |
| 71 |
|
- |
# disabling the font style. |
| 72 |
|
- |
font-style = default |
| 73 |
|
- |
|
| 74 |
|
- |
font-style-bold = default |
| 75 |
|
- |
font-style-italic = default |
| 76 |
|
- |
font-style-bold-italic = default |
| 77 |
|
- |
# Control whether Ghostty should synthesize a style if the requested style is |
| 78 |
|
- |
# not available in the specified font-family. |
| 79 |
|
- |
# |
| 80 |
|
- |
# Ghostty can synthesize bold, italic, and bold italic styles if the font |
| 81 |
|
- |
# does not have a specific style. For bold, this is done by drawing an |
| 82 |
|
- |
# outline around the glyph of varying thickness. For italic, this is done by |
| 83 |
|
- |
# applying a slant to the glyph. For bold italic, both of these are applied. |
| 84 |
|
- |
# |
| 85 |
|
- |
# Synthetic styles are not perfect and will generally not look as good |
| 86 |
|
- |
# as a font that has the style natively. However, they are useful to |
| 87 |
|
- |
# provide styled text when the font does not have the style. |
| 88 |
|
- |
# |
| 89 |
|
- |
# Set this to "false" or "true" to disable or enable synthetic styles |
| 90 |
|
- |
# completely. You can disable specific styles using "no-bold", "no-italic", |
| 91 |
|
- |
# and "no-bold-italic". You can disable multiple styles by separating them |
| 92 |
|
- |
# with a comma. For example, "no-bold,no-italic". |
| 93 |
|
- |
# |
| 94 |
|
- |
# Available style keys are: `bold`, `italic`, `bold-italic`. |
| 95 |
|
- |
# |
| 96 |
|
- |
# If synthetic styles are disabled, then the regular style will be used |
| 97 |
|
- |
# instead if the requested style is not available. If the font has the |
| 98 |
|
- |
# requested style, then the font will be used as-is since the style is |
| 99 |
|
- |
# not synthetic. |
| 100 |
|
- |
# |
| 101 |
|
- |
# Warning: An easy mistake is to disable `bold` or `italic` but not |
| 102 |
|
- |
# `bold-italic`. Disabling only `bold` or `italic` will NOT disable either |
| 103 |
|
- |
# in the `bold-italic` style. If you want to disable `bold-italic`, you must |
| 104 |
|
- |
# explicitly disable it. You cannot partially disable `bold-italic`. |
| 105 |
|
- |
# |
| 106 |
|
- |
# By default, synthetic styles are enabled. |
| 107 |
|
- |
font-synthetic-style = bold,italic,bold-italic |
| 108 |
|
- |
|
| 109 |
|
- |
# Apply a font feature. This can be repeated multiple times to enable multiple |
| 110 |
|
- |
# font features. You can NOT set multiple font features with a single value |
| 111 |
|
- |
# (yet). |
| 112 |
|
- |
# |
| 113 |
|
- |
# The font feature will apply to all fonts rendered by Ghostty. A future |
| 114 |
|
- |
# enhancement will allow targeting specific faces. |
| 115 |
|
- |
# |
| 116 |
|
- |
# A valid value is the name of a feature. Prefix the feature with a `-` to |
| 117 |
|
- |
# explicitly disable it. Example: `ss20` or `-ss20`. |
| 118 |
|
- |
# |
| 119 |
|
- |
# To disable programming ligatures, use `-calt` since this is the typical |
| 120 |
|
- |
# feature name for programming ligatures. To look into what font features |
| 121 |
|
- |
# your font has and what they do, use a font inspection tool such as |
| 122 |
|
- |
# [fontdrop.info](https://fontdrop.info). |
| 123 |
|
- |
# |
| 124 |
|
- |
# To generally disable most ligatures, use `-calt`, `-liga`, and `-dlig` (as |
| 125 |
|
- |
# separate repetitive entries in your config). |
| 126 |
|
- |
font-feature = |
| 127 |
|
- |
|
| 128 |
|
- |
# Font size in points. This value can be a non-integer and the nearest integer |
| 129 |
|
- |
# pixel size will be selected. If you have a high dpi display where 1pt = 2px |
| 130 |
|
- |
# then you can get an odd numbered pixel size by specifying a half point. |
| 131 |
|
- |
# |
| 132 |
|
- |
# For example, 13.5pt @ 2px/pt = 27px |
| 133 |
|
- |
# |
| 134 |
|
- |
# Changing this configuration at runtime will only affect new terminals, |
| 135 |
|
- |
# i.e. new windows, tabs, etc. Note that you may still not see the change |
| 136 |
|
- |
# depending on your `window-inherit-font-size` setting. If that setting is |
| 137 |
|
- |
# true, only the first window will be affected by this change since all |
| 138 |
|
- |
# subsequent windows will inherit the font size of the previous window. |
| 139 |
|
- |
font-size = 13 |
| 140 |
|
- |
|
| 141 |
|
- |
# A repeatable configuration to set one or more font variations values for |
| 142 |
|
- |
# a variable font. A variable font is a single font, usually with a filename |
| 143 |
|
- |
# ending in `-VF.ttf` or `-VF.otf` that contains one or more configurable axes |
| 144 |
|
- |
# for things such as weight, slant, etc. Not all fonts support variations; |
| 145 |
|
- |
# only fonts that explicitly state they are variable fonts will work. |
| 146 |
|
- |
# |
| 147 |
|
- |
# The format of this is `id=value` where `id` is the axis identifier. An axis |
| 148 |
|
- |
# identifier is always a 4 character string, such as `wght`. To get the list |
| 149 |
|
- |
# of supported axes, look at your font documentation or use a font inspection |
| 150 |
|
- |
# tool. |
| 151 |
|
- |
# |
| 152 |
|
- |
# Invalid ids and values are usually ignored. For example, if a font only |
| 153 |
|
- |
# supports weights from 100 to 700, setting `wght=800` will do nothing (it |
| 154 |
|
- |
# will not be clamped to 700). You must consult your font's documentation to |
| 155 |
|
- |
# see what values are supported. |
| 156 |
|
- |
# |
| 157 |
|
- |
# Common axes are: `wght` (weight), `slnt` (slant), `ital` (italic), `opsz` |
| 158 |
|
- |
# (optical size), `wdth` (width), `GRAD` (gradient), etc. |
| 159 |
|
- |
font-variation = |
| 160 |
|
- |
|
| 161 |
|
- |
font-variation-bold = |
| 162 |
|
- |
font-variation-italic = |
| 163 |
|
- |
font-variation-bold-italic = |
| 164 |
|
- |
# Force one or a range of Unicode codepoints to map to a specific named font. |
| 165 |
|
- |
# This is useful if you want to support special symbols or if you want to use |
| 166 |
|
- |
# specific glyphs that render better for your specific font. |
| 167 |
|
- |
# |
| 168 |
|
- |
# The syntax is `codepoint=fontname` where `codepoint` is either a single |
| 169 |
|
- |
# codepoint or a range. Codepoints must be specified as full Unicode |
| 170 |
|
- |
# hex values, such as `U+ABCD`. Codepoints ranges are specified as |
| 171 |
|
- |
# `U+ABCD-U+DEFG`. You can specify multiple ranges for the same font separated |
| 172 |
|
- |
# by commas, such as `U+ABCD-U+DEFG,U+1234-U+5678=fontname`. The font name is |
| 173 |
|
- |
# the same value as you would use for `font-family`. |
| 174 |
|
- |
# |
| 175 |
|
- |
# This configuration can be repeated multiple times to specify multiple |
| 176 |
|
- |
# codepoint mappings. |
| 177 |
|
- |
# |
| 178 |
|
- |
# Changing this configuration at runtime will only affect new terminals, |
| 179 |
|
- |
# i.e. new windows, tabs, etc. |
| 180 |
|
- |
font-codepoint-map = |
| 181 |
|
- |
|
| 182 |
|
- |
# Draw fonts with a thicker stroke, if supported. This is only supported |
| 183 |
|
- |
# currently on macOS. |
| 184 |
|
- |
font-thicken = false |
| 185 |
|
- |
|
| 186 |
|
- |
# All of the configurations behavior adjust various metrics determined by the |
| 187 |
|
- |
# font. The values can be integers (1, -1, etc.) or a percentage (20%, -15%, |
| 188 |
|
- |
# etc.). In each case, the values represent the amount to change the original |
| 189 |
|
- |
# value. |
| 190 |
|
- |
# |
| 191 |
|
- |
# For example, a value of `1` increases the value by 1; it does not set it to |
| 192 |
|
- |
# literally 1. A value of `20%` increases the value by 20%. And so on. |
| 193 |
|
- |
# |
| 194 |
|
- |
# There is little to no validation on these values so the wrong values (i.e. |
| 195 |
|
- |
# `-100%`) can cause the terminal to be unusable. Use with caution and reason. |
| 196 |
|
- |
# |
| 197 |
|
- |
# Some values are clamped to minimum or maximum values. This can make it |
| 198 |
|
- |
# appear that certain values are ignored. For example, many `*-thickness` |
| 199 |
|
- |
# adjustments cannot go below 1px. |
| 200 |
|
- |
# |
| 201 |
|
- |
# `adjust-cell-height` has some additional behaviors to describe: |
| 202 |
|
- |
# |
| 203 |
|
- |
# * The font will be centered vertically in the cell. |
| 204 |
|
- |
# |
| 205 |
|
- |
# * The cursor will remain the same size as the font, but may be |
| 206 |
|
- |
# adjusted separately with `adjust-cursor-height`. |
| 207 |
|
- |
# |
| 208 |
|
- |
# * Powerline glyphs will be adjusted along with the cell height so |
| 209 |
|
- |
# that things like status lines continue to look aligned. |
| 210 |
|
- |
adjust-cell-width = |
| 211 |
|
- |
|
| 212 |
|
- |
adjust-cell-height = |
| 213 |
|
- |
# Distance in pixels from the bottom of the cell to the text baseline. |
| 214 |
|
- |
# Increase to move baseline UP, decrease to move baseline DOWN. |
| 215 |
|
- |
adjust-font-baseline = |
| 216 |
|
- |
|
| 217 |
|
- |
# Distance in pixels from the top of the cell to the top of the underline. |
| 218 |
|
- |
# Increase to move underline DOWN, decrease to move underline UP. |
| 219 |
|
- |
adjust-underline-position = |
| 220 |
|
- |
|
| 221 |
|
- |
# Thickness in pixels of the underline. |
| 222 |
|
- |
adjust-underline-thickness = |
| 223 |
|
- |
|
| 224 |
|
- |
# Distance in pixels from the top of the cell to the top of the strikethrough. |
| 225 |
|
- |
# Increase to move strikethrough DOWN, decrease to move underline UP. |
| 226 |
|
- |
adjust-strikethrough-position = |
| 227 |
|
- |
|
| 228 |
|
- |
# Thickness in pixels of the strikethrough. |
| 229 |
|
- |
adjust-strikethrough-thickness = |
| 230 |
|
- |
|
| 231 |
|
- |
# Distance in pixels from the top of the cell to the top of the overline. |
| 232 |
|
- |
# Increase to move overline DOWN, decrease to move underline UP. |
| 233 |
|
- |
adjust-overline-position = |
| 234 |
|
- |
|
| 235 |
|
- |
# Thickness in pixels of the overline. |
| 236 |
|
- |
adjust-overline-thickness = |
| 237 |
|
- |
|
| 238 |
|
- |
# Thickness in pixels of the bar cursor and outlined rect cursor. |
| 239 |
|
- |
adjust-cursor-thickness = |
| 240 |
|
- |
|
| 241 |
|
- |
# Height in pixels of the cursor. Currently applies to all cursor types: |
| 242 |
|
- |
# bar, rect, and outlined rect. |
| 243 |
|
- |
adjust-cursor-height = |
| 244 |
|
- |
|
| 245 |
|
- |
# Thickness in pixels of box drawing characters. |
| 246 |
|
- |
adjust-box-thickness = |
| 247 |
|
- |
|
| 248 |
|
- |
# The method to use for calculating the cell width of a grapheme cluster. |
| 249 |
|
- |
# The default value is `unicode` which uses the Unicode standard to determine |
| 250 |
|
- |
# grapheme width. This results in correct grapheme width but may result in |
| 251 |
|
- |
# cursor-desync issues with some programs (such as shells) that may use a |
| 252 |
|
- |
# legacy method such as `wcswidth`. |
| 253 |
|
- |
# |
| 254 |
|
- |
# Valid values are: |
| 255 |
|
- |
# |
| 256 |
|
- |
# * `legacy` - Use a legacy method to determine grapheme width, such as |
| 257 |
|
- |
# wcswidth This maximizes compatibility with legacy programs but may result |
| 258 |
|
- |
# in incorrect grapheme width for certain graphemes such as skin-tone |
| 259 |
|
- |
# emoji, non-English characters, etc. |
| 260 |
|
- |
# |
| 261 |
|
- |
# This is called "legacy" and not something more specific because the |
| 262 |
|
- |
# behavior is undefined and we want to retain the ability to modify it. |
| 263 |
|
- |
# For example, we may or may not use libc `wcswidth` now or in the future. |
| 264 |
|
- |
# |
| 265 |
|
- |
# * `unicode` - Use the Unicode standard to determine grapheme width. |
| 266 |
|
- |
# |
| 267 |
|
- |
# If a running program explicitly enables terminal mode 2027, then `unicode` |
| 268 |
|
- |
# width will be forced regardless of this configuration. When mode 2027 is |
| 269 |
|
- |
# reset, this configuration will be used again. |
| 270 |
|
- |
# |
| 271 |
|
- |
# This configuration can be changed at runtime but will not affect existing |
| 272 |
|
- |
# terminals. Only new terminals will use the new configuration. |
| 273 |
|
- |
grapheme-width-method = unicode |
| 274 |
|
- |
|
| 275 |
|
- |
# FreeType load flags to enable. The format of this is a list of flags to |
| 276 |
|
- |
# enable separated by commas. If you prefix a flag with `no-` then it is |
| 277 |
|
- |
# disabled. If you omit a flag, it's default value is used, so you must |
| 278 |
|
- |
# explicitly disable flags you don't want. You can also use `true` or `false` |
| 279 |
|
- |
# to turn all flags on or off. |
| 280 |
|
- |
# |
| 281 |
|
- |
# This configuration only applies to Ghostty builds that use FreeType. |
| 282 |
|
- |
# This is usually the case only for Linux builds. macOS uses CoreText |
| 283 |
|
- |
# and does not have an equivalent configuration. |
| 284 |
|
- |
# |
| 285 |
|
- |
# Available flags: |
| 286 |
|
- |
# |
| 287 |
|
- |
# * `hinting` - Enable or disable hinting, enabled by default. |
| 288 |
|
- |
# * `force-autohint` - Use the freetype auto-hinter rather than the |
| 289 |
|
- |
# font's native hinter. Enabled by default. |
| 290 |
|
- |
# * `monochrome` - Instructs renderer to use 1-bit monochrome |
| 291 |
|
- |
# rendering. This option doesn't impact the hinter. |
| 292 |
|
- |
# Enabled by default. |
| 293 |
|
- |
# * `autohint` - Use the freetype auto-hinter. Enabled by default. |
| 294 |
|
- |
# |
| 295 |
|
- |
# Example: `hinting`, `no-hinting`, `force-autohint`, `no-force-autohint` |
| 296 |
|
- |
freetype-load-flags = hinting,force-autohint,monochrome,autohint |
| 297 |
|
- |
|
| 298 |
|
- |
# A theme to use. This can be a built-in theme name, a custom theme |
| 299 |
|
- |
# name, or an absolute path to a custom theme file. Ghostty also supports |
| 300 |
|
- |
# specifying a different theme to use for light and dark mode. Each |
| 301 |
|
- |
# option is documented below. |
| 302 |
|
- |
# |
| 303 |
|
- |
# If the theme is an absolute pathname, Ghostty will attempt to load that |
| 304 |
|
- |
# file as a theme. If that file does not exist or is inaccessible, an error |
| 305 |
|
- |
# will be logged and no other directories will be searched. |
| 306 |
|
- |
# |
| 307 |
|
- |
# If the theme is not an absolute pathname, two different directories will be |
| 308 |
|
- |
# searched for a file name that matches the theme. This is case sensitive on |
| 309 |
|
- |
# systems with case-sensitive filesystems. It is an error for a theme name to |
| 310 |
|
- |
# include path separators unless it is an absolute pathname. |
| 311 |
|
- |
# |
| 312 |
|
- |
# The first directory is the `themes` subdirectory of your Ghostty |
| 313 |
|
- |
# configuration directory. This is `$XDG_CONFIG_DIR/ghostty/themes` or |
| 314 |
|
- |
# `~/.config/ghostty/themes`. |
| 315 |
|
- |
# |
| 316 |
|
- |
# The second directory is the `themes` subdirectory of the Ghostty resources |
| 317 |
|
- |
# directory. Ghostty ships with a multitude of themes that will be installed |
| 318 |
|
- |
# into this directory. On macOS, this list is in the `Ghostty.app/Contents/ |
| 319 |
|
- |
# Resources/ghostty/themes` directory. On Linux, this list is in the `share/ |
| 320 |
|
- |
# ghostty/themes` directory (wherever you installed the Ghostty "share" |
| 321 |
|
- |
# directory. |
| 322 |
|
- |
# |
| 323 |
|
- |
# To see a list of available themes, run `ghostty +list-themes`. |
| 324 |
|
- |
# |
| 325 |
|
- |
# A theme file is simply another Ghostty configuration file. They share |
| 326 |
|
- |
# the same syntax and same configuration options. A theme can set any valid |
| 327 |
|
- |
# configuration option so please do not use a theme file from an untrusted |
| 328 |
|
- |
# source. The built-in themes are audited to only set safe configuration |
| 329 |
|
- |
# options. |
| 330 |
|
- |
# |
| 331 |
|
- |
# Some options cannot be set within theme files. The reason these are not |
| 332 |
|
- |
# supported should be self-evident. A theme file cannot set `theme` or |
| 333 |
|
- |
# `config-file`. At the time of writing this, Ghostty will not show any |
| 334 |
|
- |
# warnings or errors if you set these options in a theme file but they will |
| 335 |
|
- |
# be silently ignored. |
| 336 |
|
- |
# |
| 337 |
|
- |
# Any additional colors specified via background, foreground, palette, etc. |
| 338 |
|
- |
# will override the colors specified in the theme. |
| 339 |
|
- |
# |
| 340 |
|
- |
# To specify a different theme for light and dark mode, use the following |
| 341 |
|
- |
# syntax: `light:theme-name,dark:theme-name`. For example: |
| 342 |
|
- |
# `light:rose-pine-dawn,dark:rose-pine`. Whitespace around all values are |
| 343 |
|
- |
# trimmed and order of light and dark does not matter. Both light and dark |
| 344 |
|
- |
# must be specified in this form. In this form, the theme used will be |
| 345 |
|
- |
# based on the current desktop environment theme. |
| 346 |
|
- |
# |
| 347 |
|
- |
# There are some known bugs with light/dark mode theming. These will |
| 348 |
|
- |
# be fixed in a future update: |
| 349 |
|
- |
# |
| 350 |
|
- |
# - macOS: titlebar tabs style is not updated when switching themes. |
| 351 |
|
- |
# |
| 352 |
|
- |
theme = |
| 353 |
|
- |
|
| 354 |
|
- |
# Background color for the window. |
| 355 |
|
- |
background = #282c34 |
| 356 |
|
- |
|
| 357 |
|
- |
# Foreground color for the window. |
| 358 |
|
- |
foreground = #ffffff |
| 359 |
|
- |
|
| 360 |
|
- |
# The foreground and background color for selection. If this is not set, then |
| 361 |
|
- |
# the selection color is just the inverted window background and foreground |
| 362 |
|
- |
# (note: not to be confused with the cell bg/fg). |
| 363 |
|
- |
selection-foreground = |
| 364 |
|
- |
|
| 365 |
|
- |
selection-background = |
| 366 |
|
- |
# Swap the foreground and background colors of cells for selection. This |
| 367 |
|
- |
# option overrides the `selection-foreground` and `selection-background` |
| 368 |
|
- |
# options. |
| 369 |
|
- |
# |
| 370 |
|
- |
# If you select across cells with differing foregrounds and backgrounds, the |
| 371 |
|
- |
# selection color will vary across the selection. |
| 372 |
|
- |
selection-invert-fg-bg = false |
| 373 |
|
- |
|
| 374 |
|
- |
# The minimum contrast ratio between the foreground and background colors. |
| 375 |
|
- |
# The contrast ratio is a value between 1 and 21. A value of 1 allows for no |
| 376 |
|
- |
# contrast (i.e. black on black). This value is the contrast ratio as defined |
| 377 |
|
- |
# by the [WCAG 2.0 specification](https://www.w3.org/TR/WCAG20/). |
| 378 |
|
- |
# |
| 379 |
|
- |
# If you want to avoid invisible text (same color as background), a value of |
| 380 |
|
- |
# 1.1 is a good value. If you want to avoid text that is difficult to read, a |
| 381 |
|
- |
# value of 3 or higher is a good value. The higher the value, the more likely |
| 382 |
|
- |
# that text will become black or white. |
| 383 |
|
- |
# |
| 384 |
|
- |
# This value does not apply to Emoji or images. |
| 385 |
|
- |
minimum-contrast = 1 |
| 386 |
|
- |
|
| 387 |
|
- |
# Color palette for the 256 color form that many terminal applications use. |
| 388 |
|
- |
# The syntax of this configuration is `N=HEXCODE` where `N` is 0 to 255 (for |
| 389 |
|
- |
# the 256 colors in the terminal color table) and `HEXCODE` is a typical RGB |
| 390 |
|
- |
# color code such as `#AABBCC`. |
| 391 |
|
- |
# |
| 392 |
|
- |
# For definitions on all the codes [see this cheat |
| 393 |
|
- |
# sheet](https://www.ditig.com/256-colors-cheat-sheet). |
| 394 |
|
- |
palette = 0=#1d1f21 |
| 395 |
|
- |
palette = 1=#cc6666 |
| 396 |
|
- |
palette = 2=#b5bd68 |
| 397 |
|
- |
palette = 3=#f0c674 |
| 398 |
|
- |
palette = 4=#81a2be |
| 399 |
|
- |
palette = 5=#b294bb |
| 400 |
|
- |
palette = 6=#8abeb7 |
| 401 |
|
- |
palette = 7=#c5c8c6 |
| 402 |
|
- |
palette = 8=#666666 |
| 403 |
|
- |
palette = 9=#d54e53 |
| 404 |
|
- |
palette = 10=#b9ca4a |
| 405 |
|
- |
palette = 11=#e7c547 |
| 406 |
|
- |
palette = 12=#7aa6da |
| 407 |
|
- |
palette = 13=#c397d8 |
| 408 |
|
- |
palette = 14=#70c0b1 |
| 409 |
|
- |
palette = 15=#eaeaea |
| 410 |
|
- |
palette = 16=#000000 |
| 411 |
|
- |
palette = 17=#00005f |
| 412 |
|
- |
palette = 18=#000087 |
| 413 |
|
- |
palette = 19=#0000af |
| 414 |
|
- |
palette = 20=#0000d7 |
| 415 |
|
- |
palette = 21=#0000ff |
| 416 |
|
- |
palette = 22=#005f00 |
| 417 |
|
- |
palette = 23=#005f5f |
| 418 |
|
- |
palette = 24=#005f87 |
| 419 |
|
- |
palette = 25=#005faf |
| 420 |
|
- |
palette = 26=#005fd7 |
| 421 |
|
- |
palette = 27=#005fff |
| 422 |
|
- |
palette = 28=#008700 |
| 423 |
|
- |
palette = 29=#00875f |
| 424 |
|
- |
palette = 30=#008787 |
| 425 |
|
- |
palette = 31=#0087af |
| 426 |
|
- |
palette = 32=#0087d7 |
| 427 |
|
- |
palette = 33=#0087ff |
| 428 |
|
- |
palette = 34=#00af00 |
| 429 |
|
- |
palette = 35=#00af5f |
| 430 |
|
- |
palette = 36=#00af87 |
| 431 |
|
- |
palette = 37=#00afaf |
| 432 |
|
- |
palette = 38=#00afd7 |
| 433 |
|
- |
palette = 39=#00afff |
| 434 |
|
- |
palette = 40=#00d700 |
| 435 |
|
- |
palette = 41=#00d75f |
| 436 |
|
- |
palette = 42=#00d787 |
| 437 |
|
- |
palette = 43=#00d7af |
| 438 |
|
- |
palette = 44=#00d7d7 |
| 439 |
|
- |
palette = 45=#00d7ff |
| 440 |
|
- |
palette = 46=#00ff00 |
| 441 |
|
- |
palette = 47=#00ff5f |
| 442 |
|
- |
palette = 48=#00ff87 |
| 443 |
|
- |
palette = 49=#00ffaf |
| 444 |
|
- |
palette = 50=#00ffd7 |
| 445 |
|
- |
palette = 51=#00ffff |
| 446 |
|
- |
palette = 52=#5f0000 |
| 447 |
|
- |
palette = 53=#5f005f |
| 448 |
|
- |
palette = 54=#5f0087 |
| 449 |
|
- |
palette = 55=#5f00af |
| 450 |
|
- |
palette = 56=#5f00d7 |
| 451 |
|
- |
palette = 57=#5f00ff |
| 452 |
|
- |
palette = 58=#5f5f00 |
| 453 |
|
- |
palette = 59=#5f5f5f |
| 454 |
|
- |
palette = 60=#5f5f87 |
| 455 |
|
- |
palette = 61=#5f5faf |
| 456 |
|
- |
palette = 62=#5f5fd7 |
| 457 |
|
- |
palette = 63=#5f5fff |
| 458 |
|
- |
palette = 64=#5f8700 |
| 459 |
|
- |
palette = 65=#5f875f |
| 460 |
|
- |
palette = 66=#5f8787 |
| 461 |
|
- |
palette = 67=#5f87af |
| 462 |
|
- |
palette = 68=#5f87d7 |
| 463 |
|
- |
palette = 69=#5f87ff |
| 464 |
|
- |
palette = 70=#5faf00 |
| 465 |
|
- |
palette = 71=#5faf5f |
| 466 |
|
- |
palette = 72=#5faf87 |
| 467 |
|
- |
palette = 73=#5fafaf |
| 468 |
|
- |
palette = 74=#5fafd7 |
| 469 |
|
- |
palette = 75=#5fafff |
| 470 |
|
- |
palette = 76=#5fd700 |
| 471 |
|
- |
palette = 77=#5fd75f |
| 472 |
|
- |
palette = 78=#5fd787 |
| 473 |
|
- |
palette = 79=#5fd7af |
| 474 |
|
- |
palette = 80=#5fd7d7 |
| 475 |
|
- |
palette = 81=#5fd7ff |
| 476 |
|
- |
palette = 82=#5fff00 |
| 477 |
|
- |
palette = 83=#5fff5f |
| 478 |
|
- |
palette = 84=#5fff87 |
| 479 |
|
- |
palette = 85=#5fffaf |
| 480 |
|
- |
palette = 86=#5fffd7 |
| 481 |
|
- |
palette = 87=#5fffff |
| 482 |
|
- |
palette = 88=#870000 |
| 483 |
|
- |
palette = 89=#87005f |
| 484 |
|
- |
palette = 90=#870087 |
| 485 |
|
- |
palette = 91=#8700af |
| 486 |
|
- |
palette = 92=#8700d7 |
| 487 |
|
- |
palette = 93=#8700ff |
| 488 |
|
- |
palette = 94=#875f00 |
| 489 |
|
- |
palette = 95=#875f5f |
| 490 |
|
- |
palette = 96=#875f87 |
| 491 |
|
- |
palette = 97=#875faf |
| 492 |
|
- |
palette = 98=#875fd7 |
| 493 |
|
- |
palette = 99=#875fff |
| 494 |
|
- |
palette = 100=#878700 |
| 495 |
|
- |
palette = 101=#87875f |
| 496 |
|
- |
palette = 102=#878787 |
| 497 |
|
- |
palette = 103=#8787af |
| 498 |
|
- |
palette = 104=#8787d7 |
| 499 |
|
- |
palette = 105=#8787ff |
| 500 |
|
- |
palette = 106=#87af00 |
| 501 |
|
- |
palette = 107=#87af5f |
| 502 |
|
- |
palette = 108=#87af87 |
| 503 |
|
- |
palette = 109=#87afaf |
| 504 |
|
- |
palette = 110=#87afd7 |
| 505 |
|
- |
palette = 111=#87afff |
| 506 |
|
- |
palette = 112=#87d700 |
| 507 |
|
- |
palette = 113=#87d75f |
| 508 |
|
- |
palette = 114=#87d787 |
| 509 |
|
- |
palette = 115=#87d7af |
| 510 |
|
- |
palette = 116=#87d7d7 |
| 511 |
|
- |
palette = 117=#87d7ff |
| 512 |
|
- |
palette = 118=#87ff00 |
| 513 |
|
- |
palette = 119=#87ff5f |
| 514 |
|
- |
palette = 120=#87ff87 |
| 515 |
|
- |
palette = 121=#87ffaf |
| 516 |
|
- |
palette = 122=#87ffd7 |
| 517 |
|
- |
palette = 123=#87ffff |
| 518 |
|
- |
palette = 124=#af0000 |
| 519 |
|
- |
palette = 125=#af005f |
| 520 |
|
- |
palette = 126=#af0087 |
| 521 |
|
- |
palette = 127=#af00af |
| 522 |
|
- |
palette = 128=#af00d7 |
| 523 |
|
- |
palette = 129=#af00ff |
| 524 |
|
- |
palette = 130=#af5f00 |
| 525 |
|
- |
palette = 131=#af5f5f |
| 526 |
|
- |
palette = 132=#af5f87 |
| 527 |
|
- |
palette = 133=#af5faf |
| 528 |
|
- |
palette = 134=#af5fd7 |
| 529 |
|
- |
palette = 135=#af5fff |
| 530 |
|
- |
palette = 136=#af8700 |
| 531 |
|
- |
palette = 137=#af875f |
| 532 |
|
- |
palette = 138=#af8787 |
| 533 |
|
- |
palette = 139=#af87af |
| 534 |
|
- |
palette = 140=#af87d7 |
| 535 |
|
- |
palette = 141=#af87ff |
| 536 |
|
- |
palette = 142=#afaf00 |
| 537 |
|
- |
palette = 143=#afaf5f |
| 538 |
|
- |
palette = 144=#afaf87 |
| 539 |
|
- |
palette = 145=#afafaf |
| 540 |
|
- |
palette = 146=#afafd7 |
| 541 |
|
- |
palette = 147=#afafff |
| 542 |
|
- |
palette = 148=#afd700 |
| 543 |
|
- |
palette = 149=#afd75f |
| 544 |
|
- |
palette = 150=#afd787 |
| 545 |
|
- |
palette = 151=#afd7af |
| 546 |
|
- |
palette = 152=#afd7d7 |
| 547 |
|
- |
palette = 153=#afd7ff |
| 548 |
|
- |
palette = 154=#afff00 |
| 549 |
|
- |
palette = 155=#afff5f |
| 550 |
|
- |
palette = 156=#afff87 |
| 551 |
|
- |
palette = 157=#afffaf |
| 552 |
|
- |
palette = 158=#afffd7 |
| 553 |
|
- |
palette = 159=#afffff |
| 554 |
|
- |
palette = 160=#d70000 |
| 555 |
|
- |
palette = 161=#d7005f |
| 556 |
|
- |
palette = 162=#d70087 |
| 557 |
|
- |
palette = 163=#d700af |
| 558 |
|
- |
palette = 164=#d700d7 |
| 559 |
|
- |
palette = 165=#d700ff |
| 560 |
|
- |
palette = 166=#d75f00 |
| 561 |
|
- |
palette = 167=#d75f5f |
| 562 |
|
- |
palette = 168=#d75f87 |
| 563 |
|
- |
palette = 169=#d75faf |
| 564 |
|
- |
palette = 170=#d75fd7 |
| 565 |
|
- |
palette = 171=#d75fff |
| 566 |
|
- |
palette = 172=#d78700 |
| 567 |
|
- |
palette = 173=#d7875f |
| 568 |
|
- |
palette = 174=#d78787 |
| 569 |
|
- |
palette = 175=#d787af |
| 570 |
|
- |
palette = 176=#d787d7 |
| 571 |
|
- |
palette = 177=#d787ff |
| 572 |
|
- |
palette = 178=#d7af00 |
| 573 |
|
- |
palette = 179=#d7af5f |
| 574 |
|
- |
palette = 180=#d7af87 |
| 575 |
|
- |
palette = 181=#d7afaf |
| 576 |
|
- |
palette = 182=#d7afd7 |
| 577 |
|
- |
palette = 183=#d7afff |
| 578 |
|
- |
palette = 184=#d7d700 |
| 579 |
|
- |
palette = 185=#d7d75f |
| 580 |
|
- |
palette = 186=#d7d787 |
| 581 |
|
- |
palette = 187=#d7d7af |
| 582 |
|
- |
palette = 188=#d7d7d7 |
| 583 |
|
- |
palette = 189=#d7d7ff |
| 584 |
|
- |
palette = 190=#d7ff00 |
| 585 |
|
- |
palette = 191=#d7ff5f |
| 586 |
|
- |
palette = 192=#d7ff87 |
| 587 |
|
- |
palette = 193=#d7ffaf |
| 588 |
|
- |
palette = 194=#d7ffd7 |
| 589 |
|
- |
palette = 195=#d7ffff |
| 590 |
|
- |
palette = 196=#ff0000 |
| 591 |
|
- |
palette = 197=#ff005f |
| 592 |
|
- |
palette = 198=#ff0087 |
| 593 |
|
- |
palette = 199=#ff00af |
| 594 |
|
- |
palette = 200=#ff00d7 |
| 595 |
|
- |
palette = 201=#ff00ff |
| 596 |
|
- |
palette = 202=#ff5f00 |
| 597 |
|
- |
palette = 203=#ff5f5f |
| 598 |
|
- |
palette = 204=#ff5f87 |
| 599 |
|
- |
palette = 205=#ff5faf |
| 600 |
|
- |
palette = 206=#ff5fd7 |
| 601 |
|
- |
palette = 207=#ff5fff |
| 602 |
|
- |
palette = 208=#ff8700 |
| 603 |
|
- |
palette = 209=#ff875f |
| 604 |
|
- |
palette = 210=#ff8787 |
| 605 |
|
- |
palette = 211=#ff87af |
| 606 |
|
- |
palette = 212=#ff87d7 |
| 607 |
|
- |
palette = 213=#ff87ff |
| 608 |
|
- |
palette = 214=#ffaf00 |
| 609 |
|
- |
palette = 215=#ffaf5f |
| 610 |
|
- |
palette = 216=#ffaf87 |
| 611 |
|
- |
palette = 217=#ffafaf |
| 612 |
|
- |
palette = 218=#ffafd7 |
| 613 |
|
- |
palette = 219=#ffafff |
| 614 |
|
- |
palette = 220=#ffd700 |
| 615 |
|
- |
palette = 221=#ffd75f |
| 616 |
|
- |
palette = 222=#ffd787 |
| 617 |
|
- |
palette = 223=#ffd7af |
| 618 |
|
- |
palette = 224=#ffd7d7 |
| 619 |
|
- |
palette = 225=#ffd7ff |
| 620 |
|
- |
palette = 226=#ffff00 |
| 621 |
|
- |
palette = 227=#ffff5f |
| 622 |
|
- |
palette = 228=#ffff87 |
| 623 |
|
- |
palette = 229=#ffffaf |
| 624 |
|
- |
palette = 230=#ffffd7 |
| 625 |
|
- |
palette = 231=#ffffff |
| 626 |
|
- |
palette = 232=#080808 |
| 627 |
|
- |
palette = 233=#121212 |
| 628 |
|
- |
palette = 234=#1c1c1c |
| 629 |
|
- |
palette = 235=#262626 |
| 630 |
|
- |
palette = 236=#303030 |
| 631 |
|
- |
palette = 237=#3a3a3a |
| 632 |
|
- |
palette = 238=#444444 |
| 633 |
|
- |
palette = 239=#4e4e4e |
| 634 |
|
- |
palette = 240=#585858 |
| 635 |
|
- |
palette = 241=#626262 |
| 636 |
|
- |
palette = 242=#6c6c6c |
| 637 |
|
- |
palette = 243=#767676 |
| 638 |
|
- |
palette = 244=#808080 |
| 639 |
|
- |
palette = 245=#8a8a8a |
| 640 |
|
- |
palette = 246=#949494 |
| 641 |
|
- |
palette = 247=#9e9e9e |
| 642 |
|
- |
palette = 248=#a8a8a8 |
| 643 |
|
- |
palette = 249=#b2b2b2 |
| 644 |
|
- |
palette = 250=#bcbcbc |
| 645 |
|
- |
palette = 251=#c6c6c6 |
| 646 |
|
- |
palette = 252=#d0d0d0 |
| 647 |
|
- |
palette = 253=#dadada |
| 648 |
|
- |
palette = 254=#e4e4e4 |
| 649 |
|
- |
palette = 255=#eeeeee |
| 650 |
|
- |
|
| 651 |
|
- |
# The color of the cursor. If this is not set, a default will be chosen. |
| 652 |
|
- |
cursor-color = |
| 653 |
|
- |
|
| 654 |
|
- |
# Swap the foreground and background colors of the cell under the cursor. This |
| 655 |
|
- |
# option overrides the `cursor-color` and `cursor-text` options. |
| 656 |
|
- |
cursor-invert-fg-bg = false |
| 657 |
|
- |
|
| 658 |
|
- |
# The opacity level (opposite of transparency) of the cursor. A value of 1 |
| 659 |
|
- |
# is fully opaque and a value of 0 is fully transparent. A value less than 0 |
| 660 |
|
- |
# or greater than 1 will be clamped to the nearest valid value. Note that a |
| 661 |
|
- |
# sufficiently small value such as 0.3 may be effectively invisible and may |
| 662 |
|
- |
# make it difficult to find the cursor. |
| 663 |
|
- |
cursor-opacity = 1 |
| 664 |
|
- |
|
| 665 |
|
- |
# The style of the cursor. This sets the default style. A running program can |
| 666 |
|
- |
# still request an explicit cursor style using escape sequences (such as `CSI |
| 667 |
|
- |
# q`). Shell configurations will often request specific cursor styles. |
| 668 |
|
- |
# |
| 669 |
|
- |
# Note that shell integration will automatically set the cursor to a bar at |
| 670 |
|
- |
# a prompt, regardless of this configuration. You can disable that behavior |
| 671 |
|
- |
# by specifying `shell-integration-features = no-cursor` or disabling shell |
| 672 |
|
- |
# integration entirely. |
| 673 |
|
- |
# |
| 674 |
|
- |
# Valid values are: |
| 675 |
|
- |
# |
| 676 |
|
- |
# * `block` |
| 677 |
|
- |
# * `bar` |
| 678 |
|
- |
# * `underline` |
| 679 |
|
- |
# * `block_hollow` |
| 680 |
|
- |
# |
| 681 |
|
- |
cursor-style = block |
| 682 |
|
- |
|
| 683 |
|
- |
# Sets the default blinking state of the cursor. This is just the default |
| 684 |
|
- |
# state; running programs may override the cursor style using `DECSCUSR` (`CSI |
| 685 |
|
- |
# q`). |
| 686 |
|
- |
# |
| 687 |
|
- |
# If this is not set, the cursor blinks by default. Note that this is not the |
| 688 |
|
- |
# same as a "true" value, as noted below. |
| 689 |
|
- |
# |
| 690 |
|
- |
# If this is not set at all (`null`), then Ghostty will respect DEC Mode 12 |
| 691 |
|
- |
# (AT&T cursor blink) as an alternate approach to turning blinking on/off. If |
| 692 |
|
- |
# this is set to any value other than null, DEC mode 12 will be ignored but |
| 693 |
|
- |
# `DECSCUSR` will still be respected. |
| 694 |
|
- |
# |
| 695 |
|
- |
# Valid values are: |
| 696 |
|
- |
# |
| 697 |
|
- |
# * `` (blank) |
| 698 |
|
- |
# * `true` |
| 699 |
|
- |
# * `false` |
| 700 |
|
- |
# |
| 701 |
|
- |
cursor-style-blink = |
| 702 |
|
- |
|
| 703 |
|
- |
# The color of the text under the cursor. If this is not set, a default will |
| 704 |
|
- |
# be chosen. |
| 705 |
|
- |
cursor-text = |
| 706 |
|
- |
|
| 707 |
|
- |
# Enables the ability to move the cursor at prompts by using `alt+click` on |
| 708 |
|
- |
# Linux and `option+click` on macOS. |
| 709 |
|
- |
# |
| 710 |
|
- |
# This feature requires shell integration (specifically prompt marking |
| 711 |
|
- |
# via `OSC 133`) and only works in primary screen mode. Alternate screen |
| 712 |
|
- |
# applications like vim usually have their own version of this feature but |
| 713 |
|
- |
# this configuration doesn't control that. |
| 714 |
|
- |
# |
| 715 |
|
- |
# It should be noted that this feature works by translating your desired |
| 716 |
|
- |
# position into a series of synthetic arrow key movements, so some weird |
| 717 |
|
- |
# behavior around edge cases are to be expected. This is unfortunately how |
| 718 |
|
- |
# this feature is implemented across terminals because there isn't any other |
| 719 |
|
- |
# way to implement it. |
| 720 |
|
- |
cursor-click-to-move = true |
| 721 |
|
- |
|
| 722 |
|
- |
# Hide the mouse immediately when typing. The mouse becomes visible again |
| 723 |
|
- |
# when the mouse is used (button, movement, etc.). Platform-specific behavior |
| 724 |
|
- |
# may dictate other scenarios where the mouse is shown. For example on macOS, |
| 725 |
|
- |
# the mouse is shown again when a new window, tab, or split is created. |
| 726 |
|
- |
mouse-hide-while-typing = false |
| 727 |
|
- |
|
| 728 |
|
- |
# Determines whether running programs can detect the shift key pressed with a |
| 729 |
|
- |
# mouse click. Typically, the shift key is used to extend mouse selection. |
| 730 |
|
- |
# |
| 731 |
|
- |
# The default value of `false` means that the shift key is not sent with |
| 732 |
|
- |
# the mouse protocol and will extend the selection. This value can be |
| 733 |
|
- |
# conditionally overridden by the running program with the `XTSHIFTESCAPE` |
| 734 |
|
- |
# sequence. |
| 735 |
|
- |
# |
| 736 |
|
- |
# The value `true` means that the shift key is sent with the mouse protocol |
| 737 |
|
- |
# but the running program can override this behavior with `XTSHIFTESCAPE`. |
| 738 |
|
- |
# |
| 739 |
|
- |
# The value `never` is the same as `false` but the running program cannot |
| 740 |
|
- |
# override this behavior with `XTSHIFTESCAPE`. The value `always` is the |
| 741 |
|
- |
# same as `true` but the running program cannot override this behavior with |
| 742 |
|
- |
# `XTSHIFTESCAPE`. |
| 743 |
|
- |
# |
| 744 |
|
- |
# If you always want shift to extend mouse selection even if the program |
| 745 |
|
- |
# requests otherwise, set this to `never`. |
| 746 |
|
- |
# |
| 747 |
|
- |
# Valid values are: |
| 748 |
|
- |
# |
| 749 |
|
- |
# * `true` |
| 750 |
|
- |
# * `false` |
| 751 |
|
- |
# * `always` |
| 752 |
|
- |
# * `never` |
| 753 |
|
- |
# |
| 754 |
|
- |
mouse-shift-capture = false |
| 755 |
|
- |
|
| 756 |
|
- |
# Multiplier for scrolling distance with the mouse wheel. Any value less |
| 757 |
|
- |
# than 0.01 or greater than 10,000 will be clamped to the nearest valid |
| 758 |
|
- |
# value. |
| 759 |
|
- |
# |
| 760 |
|
- |
# A value of "1" (default) scrolls te default amount. A value of "2" scrolls |
| 761 |
|
- |
# double the default amount. A value of "0.5" scrolls half the default amount. |
| 762 |
|
- |
# Et cetera. |
| 763 |
|
- |
mouse-scroll-multiplier = 1 |
| 764 |
|
- |
|
| 765 |
|
- |
# The opacity level (opposite of transparency) of the background. A value of |
| 766 |
|
- |
# 1 is fully opaque and a value of 0 is fully transparent. A value less than 0 |
| 767 |
|
- |
# or greater than 1 will be clamped to the nearest valid value. |
| 768 |
|
- |
# |
| 769 |
|
- |
# On macOS, background opacity is disabled when the terminal enters native |
| 770 |
|
- |
# fullscreen. This is because the background becomes gray and it can cause |
| 771 |
|
- |
# widgets to show through which isn't generally desirable. |
| 772 |
|
- |
background-opacity = 1 |
| 773 |
|
- |
|
| 774 |
|
- |
# A positive value enables blurring of the background when background-opacity |
| 775 |
|
- |
# is less than 1. The value is the blur radius to apply. A value of 20 |
| 776 |
|
- |
# is reasonable for a good looking blur. Higher values will cause strange |
| 777 |
|
- |
# rendering issues as well as performance issues. |
| 778 |
|
- |
# |
| 779 |
|
- |
# This is only supported on macOS. |
| 780 |
|
- |
background-blur-radius = 0 |
| 781 |
|
- |
|
| 782 |
|
- |
# The opacity level (opposite of transparency) of an unfocused split. |
| 783 |
|
- |
# Unfocused splits by default are slightly faded out to make it easier to see |
| 784 |
|
- |
# which split is focused. To disable this feature, set this value to 1. |
| 785 |
|
- |
# |
| 786 |
|
- |
# A value of 1 is fully opaque and a value of 0 is fully transparent. Because |
| 787 |
|
- |
# "0" is not useful (it makes the window look very weird), the minimum value |
| 788 |
|
- |
# is 0.15. This value still looks weird but you can at least see what's going |
| 789 |
|
- |
# on. A value outside of the range 0.15 to 1 will be clamped to the nearest |
| 790 |
|
- |
# valid value. |
| 791 |
|
- |
unfocused-split-opacity = 0.7 |
| 792 |
|
- |
|
| 793 |
|
- |
# The color to dim the unfocused split. Unfocused splits are dimmed by |
| 794 |
|
- |
# rendering a semi-transparent rectangle over the split. This sets the color of |
| 795 |
|
- |
# that rectangle and can be used to carefully control the dimming effect. |
| 796 |
|
- |
# |
| 797 |
|
- |
# This will default to the background color. |
| 798 |
|
- |
unfocused-split-fill = |
| 799 |
|
- |
|
| 800 |
|
- |
# The command to run, usually a shell. If this is not an absolute path, it'll |
| 801 |
|
- |
# be looked up in the `PATH`. If this is not set, a default will be looked up |
| 802 |
|
- |
# from your system. The rules for the default lookup are: |
| 803 |
|
- |
# |
| 804 |
|
- |
# * `SHELL` environment variable |
| 805 |
|
- |
# |
| 806 |
|
- |
# * `passwd` entry (user information) |
| 807 |
|
- |
# |
| 808 |
|
- |
# This can contain additional arguments to run the command with. If additional |
| 809 |
|
- |
# arguments are provided, the command will be executed using `/bin/sh -c`. |
| 810 |
|
- |
# Ghostty does not do any shell command parsing. |
| 811 |
|
- |
# |
| 812 |
|
- |
# This command will be used for all new terminal surfaces, i.e. new windows, |
| 813 |
|
- |
# tabs, etc. If you want to run a command only for the first terminal surface |
| 814 |
|
- |
# created when Ghostty starts, use the `initial-command` configuration. |
| 815 |
|
- |
# |
| 816 |
|
- |
# Ghostty supports the common `-e` flag for executing a command with |
| 817 |
|
- |
# arguments. For example, `ghostty -e fish --with --custom --args`. |
| 818 |
|
- |
# This flag sets the `initial-command` configuration, see that for more |
| 819 |
|
- |
# information. |
| 820 |
|
- |
command = |
| 821 |
|
- |
|
| 822 |
|
- |
# This is the same as "command", but only applies to the first terminal |
| 823 |
|
- |
# surface created when Ghostty starts. Subsequent terminal surfaces will use |
| 824 |
|
- |
# the `command` configuration. |
| 825 |
|
- |
# |
| 826 |
|
- |
# After the first terminal surface is created (or closed), there is no |
| 827 |
|
- |
# way to run this initial command again automatically. As such, setting |
| 828 |
|
- |
# this at runtime works but will only affect the next terminal surface |
| 829 |
|
- |
# if it is the first one ever created. |
| 830 |
|
- |
# |
| 831 |
|
- |
# If you're using the `ghostty` CLI there is also a shortcut to set this |
| 832 |
|
- |
# with arguments directly: you can use the `-e` flag. For example: `ghostty -e |
| 833 |
|
- |
# fish --with --custom --args`. The `-e` flag automatically forces some |
| 834 |
|
- |
# other behaviors as well: |
| 835 |
|
- |
# |
| 836 |
|
- |
# * `gtk-single-instance=false` - This ensures that a new instance is |
| 837 |
|
- |
# launched and the CLI args are respected. |
| 838 |
|
- |
# |
| 839 |
|
- |
# * `quit-after-last-window-closed=true` - This ensures that the Ghostty |
| 840 |
|
- |
# process will exit when the command exits. Additionally, the |
| 841 |
|
- |
# `quit-after-last-window-closed-delay` is unset. |
| 842 |
|
- |
# |
| 843 |
|
- |
# * `shell-integration=detect` (if not `none`) - This prevents forcibly |
| 844 |
|
- |
# injecting any configured shell integration into the command's |
| 845 |
|
- |
# environment. With `-e` its highly unlikely that you're executing a |
| 846 |
|
- |
# shell and forced shell integration is likely to cause problems |
| 847 |
|
- |
# (i.e. by wrapping your command in a shell, setting env vars, etc.). |
| 848 |
|
- |
# This is a safety measure to prevent unexpected behavior. If you want |
| 849 |
|
- |
# shell integration with a `-e`-executed command, you must either |
| 850 |
|
- |
# name your binary appopriately or source the shell integration script |
| 851 |
|
- |
# manually. |
| 852 |
|
- |
# |
| 853 |
|
- |
initial-command = |
| 854 |
|
- |
|
| 855 |
|
- |
# If true, keep the terminal open after the command exits. Normally, the |
| 856 |
|
- |
# terminal window closes when the running command (such as a shell) exits. |
| 857 |
|
- |
# With this true, the terminal window will stay open until any keypress is |
| 858 |
|
- |
# received. |
| 859 |
|
- |
# |
| 860 |
|
- |
# This is primarily useful for scripts or debugging. |
| 861 |
|
- |
wait-after-command = false |
| 862 |
|
- |
|
| 863 |
|
- |
# The number of milliseconds of runtime below which we consider a process exit |
| 864 |
|
- |
# to be abnormal. This is used to show an error message when the process exits |
| 865 |
|
- |
# too quickly. |
| 866 |
|
- |
# |
| 867 |
|
- |
# On Linux, this must be paired with a non-zero exit code. On macOS, we allow |
| 868 |
|
- |
# any exit code because of the way shell processes are launched via the login |
| 869 |
|
- |
# command. |
| 870 |
|
- |
abnormal-command-exit-runtime = 250 |
| 871 |
|
- |
|
| 872 |
|
- |
# The size of the scrollback buffer in bytes. This also includes the active |
| 873 |
|
- |
# screen. No matter what this is set to, enough memory will always be |
| 874 |
|
- |
# allocated for the visible screen and anything leftover is the limit for |
| 875 |
|
- |
# the scrollback. |
| 876 |
|
- |
# |
| 877 |
|
- |
# When this limit is reached, the oldest lines are removed from the |
| 878 |
|
- |
# scrollback. |
| 879 |
|
- |
# |
| 880 |
|
- |
# Scrollback currently exists completely in memory. This means that the |
| 881 |
|
- |
# larger this value, the larger potential memory usage. Scrollback is |
| 882 |
|
- |
# allocated lazily up to this limit, so if you set this to a very large |
| 883 |
|
- |
# value, it will not immediately consume a lot of memory. |
| 884 |
|
- |
# |
| 885 |
|
- |
# This size is per terminal surface, not for the entire application. |
| 886 |
|
- |
# |
| 887 |
|
- |
# It is not currently possible to set an unlimited scrollback buffer. |
| 888 |
|
- |
# This is a future planned feature. |
| 889 |
|
- |
# |
| 890 |
|
- |
# This can be changed at runtime but will only affect new terminal surfaces. |
| 891 |
|
- |
scrollback-limit = 10000000 |
| 892 |
|
- |
|
| 893 |
|
- |
# Match a regular expression against the terminal text and associate clicking |
| 894 |
|
- |
# it with an action. This can be used to match URLs, file paths, etc. Actions |
| 895 |
|
- |
# can be opening using the system opener (i.e. `open` or `xdg-open`) or |
| 896 |
|
- |
# executing any arbitrary binding action. |
| 897 |
|
- |
# |
| 898 |
|
- |
# Links that are configured earlier take precedence over links that are |
| 899 |
|
- |
# configured later. |
| 900 |
|
- |
# |
| 901 |
|
- |
# A default link that matches a URL and opens it in the system opener always |
| 902 |
|
- |
# exists. This can be disabled using `link-url`. |
| 903 |
|
- |
# |
| 904 |
|
- |
# TODO: This can't currently be set! |
| 905 |
|
- |
|
| 906 |
|
- |
# Enable URL matching. URLs are matched on hover with control (Linux) or |
| 907 |
|
- |
# super (macOS) pressed and open using the default system application for |
| 908 |
|
- |
# the linked URL. |
| 909 |
|
- |
# |
| 910 |
|
- |
# The URL matcher is always lowest priority of any configured links (see |
| 911 |
|
- |
# `link`). If you want to customize URL matching, use `link` and disable this. |
| 912 |
|
- |
link-url = true |
| 913 |
|
- |
|
| 914 |
|
- |
# Start new windows in fullscreen. This setting applies to new windows and |
| 915 |
|
- |
# does not apply to tabs, splits, etc. However, this setting will apply to all |
| 916 |
|
- |
# new windows, not just the first one. |
| 917 |
|
- |
# |
| 918 |
|
- |
# On macOS, this setting does not work if window-decoration is set to |
| 919 |
|
- |
# "false", because native fullscreen on macOS requires window decorations |
| 920 |
|
- |
# to be set. |
| 921 |
|
- |
fullscreen = false |
| 922 |
|
- |
|
| 923 |
|
- |
# The title Ghostty will use for the window. This will force the title of the |
| 924 |
|
- |
# window to be this title at all times and Ghostty will ignore any set title |
| 925 |
|
- |
# escape sequences programs (such as Neovim) may send. |
| 926 |
|
- |
# |
| 927 |
|
- |
# If you want a blank title, set this to one or more spaces by quoting |
| 928 |
|
- |
# the value. For example, `title = " "`. This effectively hides the title. |
| 929 |
|
- |
# This is necessary because setting a blank value resets the title to the |
| 930 |
|
- |
# default value of the running program. |
| 931 |
|
- |
# |
| 932 |
|
- |
# This configuration can be reloaded at runtime. If it is set, the title |
| 933 |
|
- |
# will update for all windows. If it is unset, the next title change escape |
| 934 |
|
- |
# sequence will be honored but previous changes will not retroactively |
| 935 |
|
- |
# be set. This latter case may require you restart programs such as neovim |
| 936 |
|
- |
# to get the new title. |
| 937 |
|
- |
title = |
| 938 |
|
- |
|
| 939 |
|
- |
# The setting that will change the application class value. |
| 940 |
|
- |
# |
| 941 |
|
- |
# This controls the class field of the `WM_CLASS` X11 property (when running |
| 942 |
|
- |
# under X11), and the Wayland application ID (when running under Wayland). |
| 943 |
|
- |
# |
| 944 |
|
- |
# Note that changing this value between invocations will create new, separate |
| 945 |
|
- |
# instances, of Ghostty when running with `gtk-single-instance=true`. See that |
| 946 |
|
- |
# option for more details. |
| 947 |
|
- |
# |
| 948 |
|
- |
# The class name must follow the requirements defined [in the GTK |
| 949 |
|
- |
# documentation](https://docs.gtk.org/gio/type_func.Application.id_is_valid.html). |
| 950 |
|
- |
# |
| 951 |
|
- |
# The default is `com.mitchellh.ghostty`. |
| 952 |
|
- |
# |
| 953 |
|
- |
# This only affects GTK builds. |
| 954 |
|
- |
class = |
| 955 |
|
- |
|
| 956 |
|
- |
# This controls the instance name field of the `WM_CLASS` X11 property when |
| 957 |
|
- |
# running under X11. It has no effect otherwise. |
| 958 |
|
- |
# |
| 959 |
|
- |
# The default is `ghostty`. |
| 960 |
|
- |
# |
| 961 |
|
- |
# This only affects GTK builds. |
| 962 |
|
- |
x11-instance-name = |
| 963 |
|
- |
|
| 964 |
|
- |
# The directory to change to after starting the command. |
| 965 |
|
- |
# |
| 966 |
|
- |
# This setting is secondary to the `window-inherit-working-directory` |
| 967 |
|
- |
# setting. If a previous Ghostty terminal exists in the same process, |
| 968 |
|
- |
# `window-inherit-working-directory` will take precedence. Otherwise, this |
| 969 |
|
- |
# setting will be used. Typically, this setting is used only for the first |
| 970 |
|
- |
# window. |
| 971 |
|
- |
# |
| 972 |
|
- |
# The default is `inherit` except in special scenarios listed next. On macOS, |
| 973 |
|
- |
# if Ghostty can detect it is launched from launchd (double-clicked) or |
| 974 |
|
- |
# `open`, then it defaults to `home`. On Linux with GTK, if Ghostty can detect |
| 975 |
|
- |
# it was launched from a desktop launcher, then it defaults to `home`. |
| 976 |
|
- |
# |
| 977 |
|
- |
# The value of this must be an absolute value or one of the special values |
| 978 |
|
- |
# below: |
| 979 |
|
- |
# |
| 980 |
|
- |
# * `home` - The home directory of the executing user. |
| 981 |
|
- |
# |
| 982 |
|
- |
# * `inherit` - The working directory of the launching process. |
| 983 |
|
- |
working-directory = |
| 984 |
|
- |
|
| 985 |
|
- |
# Key bindings. The format is `trigger=action`. Duplicate triggers will |
| 986 |
|
- |
# overwrite previously set values. The list of actions is available in |
| 987 |
|
- |
# the documentation or using the `ghostty +list-actions` command. |
| 988 |
|
- |
# |
| 989 |
|
- |
# Trigger: `+`-separated list of keys and modifiers. Example: `ctrl+a`, |
| 990 |
|
- |
# `ctrl+shift+b`, `up`. Some notes: |
| 991 |
|
- |
# |
| 992 |
|
- |
# * modifiers cannot repeat, `ctrl+ctrl+a` is invalid. |
| 993 |
|
- |
# |
| 994 |
|
- |
# * modifiers and keys can be in any order, `shift+a+ctrl` is *weird*, |
| 995 |
|
- |
# but valid. |
| 996 |
|
- |
# |
| 997 |
|
- |
# * only a single key input is allowed, `ctrl+a+b` is invalid. |
| 998 |
|
- |
# |
| 999 |
|
- |
# * the key input can be prefixed with `physical:` to specify a |
| 1000 |
|
- |
# physical key mapping rather than a logical one. A physical key |
| 1001 |
|
- |
# mapping responds to the hardware keycode and not the keycode |
| 1002 |
|
- |
# translated by any system keyboard layouts. Example: "ctrl+physical:a" |
| 1003 |
|
- |
# |
| 1004 |
|
- |
# Valid modifiers are `shift`, `ctrl` (alias: `control`), `alt` (alias: `opt`, |
| 1005 |
|
- |
# `option`), and `super` (alias: `cmd`, `command`). You may use the modifier |
| 1006 |
|
- |
# or the alias. When debugging keybinds, the non-aliased modifier will always |
| 1007 |
|
- |
# be used in output. |
| 1008 |
|
- |
# |
| 1009 |
|
- |
# Note: The fn or "globe" key on keyboards are not supported as a |
| 1010 |
|
- |
# modifier. This is a limitation of the operating systems and GUI toolkits |
| 1011 |
|
- |
# that Ghostty uses. |
| 1012 |
|
- |
# |
| 1013 |
|
- |
# You may also specify multiple triggers separated by `>` to require a |
| 1014 |
|
- |
# sequence of triggers to activate the action. For example, |
| 1015 |
|
- |
# `ctrl+a>n=new_window` will only trigger the `new_window` action if the |
| 1016 |
|
- |
# user presses `ctrl+a` followed separately by `n`. In other software, this |
| 1017 |
|
- |
# is sometimes called a leader key, a key chord, a key table, etc. There |
| 1018 |
|
- |
# is no hardcoded limit on the number of parts in a sequence. |
| 1019 |
|
- |
# |
| 1020 |
|
- |
# Warning: If you define a sequence as a CLI argument to `ghostty`, |
| 1021 |
|
- |
# you probably have to quote the keybind since `>` is a special character |
| 1022 |
|
- |
# in most shells. Example: ghostty --keybind='ctrl+a>n=new_window' |
| 1023 |
|
- |
# |
| 1024 |
|
- |
# A trigger sequence has some special handling: |
| 1025 |
|
- |
# |
| 1026 |
|
- |
# * Ghostty will wait an indefinite amount of time for the next key in |
| 1027 |
|
- |
# the sequence. There is no way to specify a timeout. The only way to |
| 1028 |
|
- |
# force the output of a prefix key is to assign another keybind to |
| 1029 |
|
- |
# specifically output that key (i.e. `ctrl+a>ctrl+a=text:foo`) or |
| 1030 |
|
- |
# press an unbound key which will send both keys to the program. |
| 1031 |
|
- |
# |
| 1032 |
|
- |
# * If a prefix in a sequence is previously bound, the sequence will |
| 1033 |
|
- |
# override the previous binding. For example, if `ctrl+a` is bound to |
| 1034 |
|
- |
# `new_window` and `ctrl+a>n` is bound to `new_tab`, pressing `ctrl+a` |
| 1035 |
|
- |
# will do nothing. |
| 1036 |
|
- |
# |
| 1037 |
|
- |
# * Adding to the above, if a previously bound sequence prefix is |
| 1038 |
|
- |
# used in a new, non-sequence binding, the entire previously bound |
| 1039 |
|
- |
# sequence will be unbound. For example, if you bind `ctrl+a>n` and |
| 1040 |
|
- |
# `ctrl+a>t`, and then bind `ctrl+a` directly, both `ctrl+a>n` and |
| 1041 |
|
- |
# `ctrl+a>t` will become unbound. |
| 1042 |
|
- |
# |
| 1043 |
|
- |
# * Trigger sequences are not allowed for `global:` or `all:`-prefixed |
| 1044 |
|
- |
# triggers. This is a limitation we could remove in the future. |
| 1045 |
|
- |
# |
| 1046 |
|
- |
# Action is the action to take when the trigger is satisfied. It takes the |
| 1047 |
|
- |
# format `action` or `action:param`. The latter form is only valid if the |
| 1048 |
|
- |
# action requires a parameter. |
| 1049 |
|
- |
# |
| 1050 |
|
- |
# * `ignore` - Do nothing, ignore the key input. This can be used to |
| 1051 |
|
- |
# black hole certain inputs to have no effect. |
| 1052 |
|
- |
# |
| 1053 |
|
- |
# * `unbind` - Remove the binding. This makes it so the previous action |
| 1054 |
|
- |
# is removed, and the key will be sent through to the child command |
| 1055 |
|
- |
# if it is printable. |
| 1056 |
|
- |
# |
| 1057 |
|
- |
# * `csi:text` - Send a CSI sequence. i.e. `csi:A` sends "cursor up". |
| 1058 |
|
- |
# |
| 1059 |
|
- |
# * `esc:text` - Send an escape sequence. i.e. `esc:d` deletes to the |
| 1060 |
|
- |
# end of the word to the right. |
| 1061 |
|
- |
# |
| 1062 |
|
- |
# * `text:text` - Send a string. Uses Zig string literal syntax. |
| 1063 |
|
- |
# i.e. `text:\x15` sends Ctrl-U. |
| 1064 |
|
- |
# |
| 1065 |
|
- |
# * All other actions can be found in the documentation or by using the |
| 1066 |
|
- |
# `ghostty +list-actions` command. |
| 1067 |
|
- |
# |
| 1068 |
|
- |
# Some notes for the action: |
| 1069 |
|
- |
# |
| 1070 |
|
- |
# * The parameter is taken as-is after the `:`. Double quotes or |
| 1071 |
|
- |
# other mechanisms are included and NOT parsed. If you want to |
| 1072 |
|
- |
# send a string value that includes spaces, wrap the entire |
| 1073 |
|
- |
# trigger/action in double quotes. Example: `--keybind="up=csi:A B"` |
| 1074 |
|
- |
# |
| 1075 |
|
- |
# There are some additional special values that can be specified for |
| 1076 |
|
- |
# keybind: |
| 1077 |
|
- |
# |
| 1078 |
|
- |
# * `keybind=clear` will clear all set keybindings. Warning: this |
| 1079 |
|
- |
# removes ALL keybindings up to this point, including the default |
| 1080 |
|
- |
# keybindings. |
| 1081 |
|
- |
# |
| 1082 |
|
- |
# The keybind trigger can be prefixed with some special values to change |
| 1083 |
|
- |
# the behavior of the keybind. These are: |
| 1084 |
|
- |
# |
| 1085 |
|
- |
# * `all:` - Make the keybind apply to all terminal surfaces. By default, |
| 1086 |
|
- |
# keybinds only apply to the focused terminal surface. If this is true, |
| 1087 |
|
- |
# then the keybind will be sent to all terminal surfaces. This only |
| 1088 |
|
- |
# applies to actions that are surface-specific. For actions that |
| 1089 |
|
- |
# are already global (i.e. `quit`), this prefix has no effect. |
| 1090 |
|
- |
# |
| 1091 |
|
- |
# * `global:` - Make the keybind global. By default, keybinds only work |
| 1092 |
|
- |
# within Ghostty and under the right conditions (application focused, |
| 1093 |
|
- |
# sometimes terminal focused, etc.). If you want a keybind to work |
| 1094 |
|
- |
# globally across your system (i.e. even when Ghostty is not focused), |
| 1095 |
|
- |
# specify this prefix. This prefix implies `all:`. Note: this does not |
| 1096 |
|
- |
# work in all environments; see the additional notes below for more |
| 1097 |
|
- |
# information. |
| 1098 |
|
- |
# |
| 1099 |
|
- |
# * `unconsumed:` - Do not consume the input. By default, a keybind |
| 1100 |
|
- |
# will consume the input, meaning that the associated encoding (if |
| 1101 |
|
- |
# any) will not be sent to the running program in the terminal. If |
| 1102 |
|
- |
# you wish to send the encoded value to the program, specify the |
| 1103 |
|
- |
# `unconsumed:` prefix before the entire keybind. For example: |
| 1104 |
|
- |
# `unconsumed:ctrl+a=reload_config`. `global:` and `all:`-prefixed |
| 1105 |
|
- |
# keybinds will always consume the input regardless of this setting. |
| 1106 |
|
- |
# Since they are not associated with a specific terminal surface, |
| 1107 |
|
- |
# they're never encoded. |
| 1108 |
|
- |
# |
| 1109 |
|
- |
# Keybind triggers are not unique per prefix combination. For example, |
| 1110 |
|
- |
# `ctrl+a` and `global:ctrl+a` are not two separate keybinds. The keybind |
| 1111 |
|
- |
# set later will overwrite the keybind set earlier. In this case, the |
| 1112 |
|
- |
# `global:` keybind will be used. |
| 1113 |
|
- |
# |
| 1114 |
|
- |
# Multiple prefixes can be specified. For example, |
| 1115 |
|
- |
# `global:unconsumed:ctrl+a=reload_config` will make the keybind global |
| 1116 |
|
- |
# and not consume the input to reload the config. |
| 1117 |
|
- |
# |
| 1118 |
|
- |
# Note: `global:` is only supported on macOS. On macOS, |
| 1119 |
|
- |
# this feature requires accessibility permissions to be granted to Ghostty. |
| 1120 |
|
- |
# When a `global:` keybind is specified and Ghostty is launched or reloaded, |
| 1121 |
|
- |
# Ghostty will attempt to request these permissions. If the permissions are |
| 1122 |
|
- |
# not granted, the keybind will not work. On macOS, you can find these |
| 1123 |
|
- |
# permissions in System Preferences -> Privacy & Security -> Accessibility. |
| 1124 |
|
- |
keybind = super+page_up=scroll_page_up |
| 1125 |
|
- |
keybind = super+ctrl+equal=equalize_splits |
| 1126 |
|
- |
keybind = super+physical:four=goto_tab:4 |
| 1127 |
|
- |
keybind = super+shift+down=jump_to_prompt:1 |
| 1128 |
|
- |
keybind = super+shift+w=close_window |
| 1129 |
|
- |
keybind = super+shift+left_bracket=previous_tab |
| 1130 |
|
- |
keybind = super+alt+i=inspector:toggle |
| 1131 |
|
- |
keybind = super+w=close_surface |
| 1132 |
|
- |
keybind = super+physical:eight=goto_tab:8 |
| 1133 |
|
- |
keybind = super+alt+right=goto_split:right |
| 1134 |
|
- |
keybind = shift+up=adjust_selection:up |
| 1135 |
|
- |
keybind = super+down=jump_to_prompt:1 |
| 1136 |
|
- |
keybind = super+enter=toggle_fullscreen |
| 1137 |
|
- |
keybind = super+t=new_tab |
| 1138 |
|
- |
keybind = super+c=copy_to_clipboard |
| 1139 |
|
- |
keybind = super+shift+right_bracket=next_tab |
| 1140 |
|
- |
keybind = super+physical:one=goto_tab:1 |
| 1141 |
|
- |
keybind = shift+left=adjust_selection:left |
| 1142 |
|
- |
keybind = super+equal=increase_font_size:1 |
| 1143 |
|
- |
keybind = shift+page_up=adjust_selection:page_up |
| 1144 |
|
- |
keybind = super+physical:three=goto_tab:3 |
| 1145 |
|
- |
keybind = super+physical:zero=last_tab |
| 1146 |
|
- |
keybind = super+right=text:\x05 |
| 1147 |
|
- |
keybind = super+d=new_split:right |
| 1148 |
|
- |
keybind = super+ctrl+down=resize_split:down,10 |
| 1149 |
|
- |
keybind = shift+end=adjust_selection:end |
| 1150 |
|
- |
keybind = super+plus=increase_font_size:1 |
| 1151 |
|
- |
keybind = super+q=quit |
| 1152 |
|
- |
keybind = super+home=scroll_to_top |
| 1153 |
|
- |
keybind = super+ctrl+left=resize_split:left,10 |
| 1154 |
|
- |
keybind = alt+left=esc:b |
| 1155 |
|
- |
keybind = super+ctrl+up=resize_split:up,10 |
| 1156 |
|
- |
keybind = super+left=text:\x01 |
| 1157 |
|
- |
keybind = super+shift+up=jump_to_prompt:-1 |
| 1158 |
|
- |
keybind = shift+right=adjust_selection:right |
| 1159 |
|
- |
keybind = super+comma=open_config |
| 1160 |
|
- |
keybind = super+shift+comma=reload_config |
| 1161 |
|
- |
keybind = super+minus=decrease_font_size:1 |
| 1162 |
|
- |
keybind = shift+page_down=adjust_selection:page_down |
| 1163 |
|
- |
keybind = ctrl+tab=next_tab |
| 1164 |
|
- |
keybind = super+a=select_all |
| 1165 |
|
- |
keybind = alt+right=esc:f |
| 1166 |
|
- |
keybind = super+shift+enter=toggle_split_zoom |
| 1167 |
|
- |
keybind = super+alt+down=goto_split:bottom |
| 1168 |
|
- |
keybind = super+ctrl+f=toggle_fullscreen |
| 1169 |
|
- |
keybind = super+ctrl+right=resize_split:right,10 |
| 1170 |
|
- |
keybind = super+alt+shift+j=write_scrollback_file:open |
| 1171 |
|
- |
keybind = shift+down=adjust_selection:down |
| 1172 |
|
- |
keybind = ctrl+shift+tab=previous_tab |
| 1173 |
|
- |
keybind = super+n=new_window |
| 1174 |
|
- |
keybind = super+alt+left=goto_split:left |
| 1175 |
|
- |
keybind = super+page_down=scroll_page_down |
| 1176 |
|
- |
keybind = super+alt+shift+w=close_all_windows |
| 1177 |
|
- |
keybind = super+alt+up=goto_split:top |
| 1178 |
|
- |
keybind = super+left_bracket=goto_split:previous |
| 1179 |
|
- |
keybind = super+physical:nine=goto_tab:9 |
| 1180 |
|
- |
keybind = super+right_bracket=goto_split:next |
| 1181 |
|
- |
keybind = super+end=scroll_to_bottom |
| 1182 |
|
- |
keybind = super+shift+j=write_scrollback_file:paste |
| 1183 |
|
- |
keybind = super+shift+d=new_split:down |
| 1184 |
|
- |
keybind = super+zero=reset_font_size |
| 1185 |
|
- |
keybind = super+physical:five=goto_tab:5 |
| 1186 |
|
- |
keybind = shift+home=adjust_selection:home |
| 1187 |
|
- |
keybind = super+physical:seven=goto_tab:7 |
| 1188 |
|
- |
keybind = super+up=jump_to_prompt:-1 |
| 1189 |
|
- |
keybind = super+k=clear_screen |
| 1190 |
|
- |
keybind = super+physical:two=goto_tab:2 |
| 1191 |
|
- |
keybind = super+physical:six=goto_tab:6 |
| 1192 |
|
- |
keybind = super+v=paste_from_clipboard |
| 1193 |
|
- |
|
| 1194 |
|
- |
# Horizontal window padding. This applies padding between the terminal cells |
| 1195 |
|
- |
# and the left and right window borders. The value is in points, meaning that |
| 1196 |
|
- |
# it will be scaled appropriately for screen DPI. |
| 1197 |
|
- |
# |
| 1198 |
|
- |
# If this value is set too large, the screen will render nothing, because the |
| 1199 |
|
- |
# grid will be completely squished by the padding. It is up to you as the user |
| 1200 |
|
- |
# to pick a reasonable value. If you pick an unreasonable value, a warning |
| 1201 |
|
- |
# will appear in the logs. |
| 1202 |
|
- |
# |
| 1203 |
|
- |
# Changing this configuration at runtime will only affect new terminals, i.e. |
| 1204 |
|
- |
# new windows, tabs, etc. |
| 1205 |
|
- |
# |
| 1206 |
|
- |
# To set a different left and right padding, specify two numerical values |
| 1207 |
|
- |
# separated by a comma. For example, `window-padding-x = 2,4` will set the |
| 1208 |
|
- |
# left padding to 2 and the right padding to 4. If you want to set both |
| 1209 |
|
- |
# paddings to the same value, you can use a single value. For example, |
| 1210 |
|
- |
# `window-padding-x = 2` will set both paddings to 2. |
| 1211 |
|
- |
window-padding-x = 6 |
| 1212 |
|
- |
|
| 1213 |
|
- |
# Vertical window padding. This applies padding between the terminal cells and |
| 1214 |
|
- |
# the top and bottom window borders. The value is in points, meaning that it |
| 1215 |
|
- |
# will be scaled appropriately for screen DPI. |
| 1216 |
|
- |
# |
| 1217 |
|
- |
# If this value is set too large, the screen will render nothing, because the |
| 1218 |
|
- |
# grid will be completely squished by the padding. It is up to you as the user |
| 1219 |
|
- |
# to pick a reasonable value. If you pick an unreasonable value, a warning |
| 1220 |
|
- |
# will appear in the logs. |
| 1221 |
|
- |
# |
| 1222 |
|
- |
# Changing this configuration at runtime will only affect new terminals, |
| 1223 |
|
- |
# i.e. new windows, tabs, etc. |
| 1224 |
|
- |
# |
| 1225 |
|
- |
# To set a different top and bottom padding, specify two numerical values |
| 1226 |
|
- |
# separated by a comma. For example, `window-padding-y = 2,4` will set the |
| 1227 |
|
- |
# top padding to 2 and the bottom padding to 4. If you want to set both |
| 1228 |
|
- |
# paddings to the same value, you can use a single value. For example, |
| 1229 |
|
- |
# `window-padding-y = 2` will set both paddings to 2. |
| 1230 |
|
- |
window-padding-y = 2 |
| 1231 |
|
- |
|
| 1232 |
|
- |
# The viewport dimensions are usually not perfectly divisible by the cell |
| 1233 |
|
- |
# size. In this case, some extra padding on the end of a column and the bottom |
| 1234 |
|
- |
# of the final row may exist. If this is `true`, then this extra padding |
| 1235 |
|
- |
# is automatically balanced between all four edges to minimize imbalance on |
| 1236 |
|
- |
# one side. If this is `false`, the top left grid cell will always hug the |
| 1237 |
|
- |
# edge with zero padding other than what may be specified with the other |
| 1238 |
|
- |
# `window-padding` options. |
| 1239 |
|
- |
# |
| 1240 |
|
- |
# If other `window-padding` fields are set and this is `true`, this will still |
| 1241 |
|
- |
# apply. The other padding is applied first and may affect how many grid cells |
| 1242 |
|
- |
# actually exist, and this is applied last in order to balance the padding |
| 1243 |
|
- |
# given a certain viewport size and grid cell size. |
| 1244 |
|
- |
window-padding-balance = false |
| 1245 |
|
- |
|
| 1246 |
|
- |
# The color of the padding area of the window. Valid values are: |
| 1247 |
|
- |
# |
| 1248 |
|
- |
# * `background` - The background color specified in `background`. |
| 1249 |
|
- |
# * `extend` - Extend the background color of the nearest grid cell. |
| 1250 |
|
- |
# * `extend-always` - Same as "extend" but always extends without applying |
| 1251 |
|
- |
# any of the heuristics that disable extending noted below. |
| 1252 |
|
- |
# |
| 1253 |
|
- |
# The "extend" value will be disabled in certain scenarios. On primary |
| 1254 |
|
- |
# screen applications (i.e. not something like Neovim), the color will not |
| 1255 |
|
- |
# be extended vertically if any of the following are true: |
| 1256 |
|
- |
# |
| 1257 |
|
- |
# * The nearest row has any cells that have the default background color. |
| 1258 |
|
- |
# The thinking is that in this case, the default background color looks |
| 1259 |
|
- |
# fine as a padding color. |
| 1260 |
|
- |
# * The nearest row is a prompt row (requires shell integration). The |
| 1261 |
|
- |
# thinking here is that prompts often contain powerline glyphs that |
| 1262 |
|
- |
# do not look good extended. |
| 1263 |
|
- |
# * The nearest row contains a perfect fit powerline character. These |
| 1264 |
|
- |
# don't look good extended. |
| 1265 |
|
- |
# |
| 1266 |
|
- |
window-padding-color = background |
| 1267 |
|
- |
|
| 1268 |
|
- |
# Synchronize rendering with the screen refresh rate. If true, this will |
| 1269 |
|
- |
# minimize tearing and align redraws with the screen but may cause input |
| 1270 |
|
- |
# latency. If false, this will maximize redraw frequency but may cause tearing, |
| 1271 |
|
- |
# and under heavy load may use more CPU and power. |
| 1272 |
|
- |
# |
| 1273 |
|
- |
# This defaults to true because out-of-sync rendering on macOS can |
| 1274 |
|
- |
# cause kernel panics (macOS 14.4+) and performance issues for external |
| 1275 |
|
- |
# displays over some hardware such as DisplayLink. If you want to minimize |
| 1276 |
|
- |
# input latency, set this to false with the known aforementioned risks. |
| 1277 |
|
- |
# |
| 1278 |
|
- |
# Changing this value at runtime will only affect new terminals. |
| 1279 |
|
- |
# |
| 1280 |
|
- |
# This setting is only supported currently on macOS. |
| 1281 |
|
- |
window-vsync = true |
| 1282 |
|
- |
|
| 1283 |
|
- |
# If true, new windows and tabs will inherit the working directory of the |
| 1284 |
|
- |
# previously focused window. If no window was previously focused, the default |
| 1285 |
|
- |
# working directory will be used (the `working-directory` option). |
| 1286 |
|
- |
window-inherit-working-directory = true |
| 1287 |
|
- |
|
| 1288 |
|
- |
# If true, new windows and tabs will inherit the font size of the previously |
| 1289 |
|
- |
# focused window. If no window was previously focused, the default font size |
| 1290 |
|
- |
# will be used. If this is false, the default font size specified in the |
| 1291 |
|
- |
# configuration `font-size` will be used. |
| 1292 |
|
- |
window-inherit-font-size = true |
| 1293 |
|
- |
|
| 1294 |
|
- |
# Valid values: |
| 1295 |
|
- |
# |
| 1296 |
|
- |
# * `true` |
| 1297 |
|
- |
# * `false` - windows won't have native decorations, i.e. titlebar and |
| 1298 |
|
- |
# borders. On macOS this also disables tabs and tab overview. |
| 1299 |
|
- |
# |
| 1300 |
|
- |
# The "toggle_window_decorations" keybind action can be used to create |
| 1301 |
|
- |
# a keybinding to toggle this setting at runtime. |
| 1302 |
|
- |
# |
| 1303 |
|
- |
# Changing this configuration in your configuration and reloading will |
| 1304 |
|
- |
# only affect new windows. Existing windows will not be affected. |
| 1305 |
|
- |
# |
| 1306 |
|
- |
# macOS: To hide the titlebar without removing the native window borders |
| 1307 |
|
- |
# or rounded corners, use `mghostty +show-config --default --docsacos-titlebar-style = hidden` instead. |
| 1308 |
|
- |
window-decoration = true |
| 1309 |
|
- |
|
| 1310 |
|
- |
# The font that will be used for the application's window and tab titles. |
| 1311 |
|
- |
# |
| 1312 |
|
- |
# This is currently only supported on macOS. |
| 1313 |
|
- |
window-title-font-family = |
| 1314 |
|
- |
|
| 1315 |
|
- |
# The theme to use for the windows. Valid values: |
| 1316 |
|
- |
# |
| 1317 |
|
- |
# * `auto` - Determine the theme based on the configured terminal |
| 1318 |
|
- |
# background color. This has no effect if the "theme" configuration |
| 1319 |
|
- |
# has separate light and dark themes. In that case, the behavior |
| 1320 |
|
- |
# of "auto" is equivalent to "system". |
| 1321 |
|
- |
# * `system` - Use the system theme. |
| 1322 |
|
- |
# * `light` - Use the light theme regardless of system theme. |
| 1323 |
|
- |
# * `dark` - Use the dark theme regardless of system theme. |
| 1324 |
|
- |
# * `ghostty` - Use the background and foreground colors specified in the |
| 1325 |
|
- |
# Ghostty configuration. This is only supported on Linux builds with |
| 1326 |
|
- |
# Adwaita and `gtk-adwaita` enabled. |
| 1327 |
|
- |
# |
| 1328 |
|
- |
# On macOS, if `macos-titlebar-style` is "tabs", the window theme will be |
| 1329 |
|
- |
# automatically set based on the luminosity of the terminal background color. |
| 1330 |
|
- |
# This only applies to terminal windows. This setting will still apply to |
| 1331 |
|
- |
# non-terminal windows within Ghostty. |
| 1332 |
|
- |
# |
| 1333 |
|
- |
# This is currently only supported on macOS and Linux. |
| 1334 |
|
- |
window-theme = auto |
| 1335 |
|
- |
|
| 1336 |
|
- |
# The colorspace to use for the terminal window. The default is `srgb` but |
| 1337 |
|
- |
# this can also be set to `display-p3` to use the Display P3 colorspace. |
| 1338 |
|
- |
# |
| 1339 |
|
- |
# Changing this value at runtime will only affect new windows. |
| 1340 |
|
- |
# |
| 1341 |
|
- |
# This setting is only supported on macOS. |
| 1342 |
|
- |
window-colorspace = srgb |
| 1343 |
|
- |
|
| 1344 |
|
- |
# The initial window size. This size is in terminal grid cells by default. |
| 1345 |
|
- |
# Both values must be set to take effect. If only one value is set, it is |
| 1346 |
|
- |
# ignored. |
| 1347 |
|
- |
# |
| 1348 |
|
- |
# We don't currently support specifying a size in pixels but a future change |
| 1349 |
|
- |
# can enable that. If this isn't specified, the app runtime will determine |
| 1350 |
|
- |
# some default size. |
| 1351 |
|
- |
# |
| 1352 |
|
- |
# Note that the window manager may put limits on the size or override the |
| 1353 |
|
- |
# size. For example, a tiling window manager may force the window to be a |
| 1354 |
|
- |
# certain size to fit within the grid. There is nothing Ghostty will do about |
| 1355 |
|
- |
# this, but it will make an effort. |
| 1356 |
|
- |
# |
| 1357 |
|
- |
# Sizes larger than the screen size will be clamped to the screen size. |
| 1358 |
|
- |
# This can be used to create a maximized-by-default window size. |
| 1359 |
|
- |
# |
| 1360 |
|
- |
# This will not affect new tabs, splits, or other nested terminal elements. |
| 1361 |
|
- |
# This only affects the initial window size of any new window. Changing this |
| 1362 |
|
- |
# value will not affect the size of the window after it has been created. This |
| 1363 |
|
- |
# is only used for the initial size. |
| 1364 |
|
- |
# |
| 1365 |
|
- |
# BUG: On Linux with GTK, the calculated window size will not properly take |
| 1366 |
|
- |
# into account window decorations. As a result, the grid dimensions will not |
| 1367 |
|
- |
# exactly match this configuration. If window decorations are disabled (see |
| 1368 |
|
- |
# window-decorations), then this will work as expected. |
| 1369 |
|
- |
# |
| 1370 |
|
- |
# Windows smaller than 10 wide by 4 high are not allowed. |
| 1371 |
|
- |
window-height = 0 |
| 1372 |
|
- |
|
| 1373 |
|
- |
window-width = 0 |
| 1374 |
|
- |
# Whether to enable saving and restoring window state. Window state includes |
| 1375 |
|
- |
# their position, size, tabs, splits, etc. Some window state requires shell |
| 1376 |
|
- |
# integration, such as preserving working directories. See `shell-integration` |
| 1377 |
|
- |
# for more information. |
| 1378 |
|
- |
# |
| 1379 |
|
- |
# There are three valid values for this configuration: |
| 1380 |
|
- |
# |
| 1381 |
|
- |
# * `default` will use the default system behavior. On macOS, this |
| 1382 |
|
- |
# will only save state if the application is forcibly terminated |
| 1383 |
|
- |
# or if it is configured systemwide via Settings.app. |
| 1384 |
|
- |
# |
| 1385 |
|
- |
# * `never` will never save window state. |
| 1386 |
|
- |
# |
| 1387 |
|
- |
# * `always` will always save window state whenever Ghostty is exited. |
| 1388 |
|
- |
# |
| 1389 |
|
- |
# If you change this value to `never` while Ghostty is not running, the next |
| 1390 |
|
- |
# Ghostty launch will NOT restore the window state. |
| 1391 |
|
- |
# |
| 1392 |
|
- |
# If you change this value to `default` while Ghostty is not running and the |
| 1393 |
|
- |
# previous exit saved state, the next Ghostty launch will still restore the |
| 1394 |
|
- |
# window state. This is because Ghostty cannot know if the previous exit was |
| 1395 |
|
- |
# due to a forced save or not (macOS doesn't provide this information). |
| 1396 |
|
- |
# |
| 1397 |
|
- |
# If you change this value so that window state is saved while Ghostty is not |
| 1398 |
|
- |
# running, the previous window state will not be restored because Ghostty only |
| 1399 |
|
- |
# saves state on exit if this is enabled. |
| 1400 |
|
- |
# |
| 1401 |
|
- |
# The default value is `default`. |
| 1402 |
|
- |
# |
| 1403 |
|
- |
# This is currently only supported on macOS. This has no effect on Linux. |
| 1404 |
|
- |
window-save-state = default |
| 1405 |
|
- |
|
| 1406 |
|
- |
# Resize the window in discrete increments of the focused surface's cell size. |
| 1407 |
|
- |
# If this is disabled, surfaces are resized in pixel increments. Currently |
| 1408 |
|
- |
# only supported on macOS. |
| 1409 |
|
- |
window-step-resize = false |
| 1410 |
|
- |
|
| 1411 |
|
- |
# The position where new tabs are created. Valid values: |
| 1412 |
|
- |
# |
| 1413 |
|
- |
# * `current` - Insert the new tab after the currently focused tab, |
| 1414 |
|
- |
# or at the end if there are no focused tabs. |
| 1415 |
|
- |
# |
| 1416 |
|
- |
# * `end` - Insert the new tab at the end of the tab list. |
| 1417 |
|
- |
window-new-tab-position = current |
| 1418 |
|
- |
|
| 1419 |
|
- |
# This controls when resize overlays are shown. Resize overlays are a |
| 1420 |
|
- |
# transient popup that shows the size of the terminal while the surfaces are |
| 1421 |
|
- |
# being resized. The possible options are: |
| 1422 |
|
- |
# |
| 1423 |
|
- |
# * `always` - Always show resize overlays. |
| 1424 |
|
- |
# * `never` - Never show resize overlays. |
| 1425 |
|
- |
# * `after-first` - The resize overlay will not appear when the surface |
| 1426 |
|
- |
# is first created, but will show up if the surface is |
| 1427 |
|
- |
# subsequently resized. |
| 1428 |
|
- |
# |
| 1429 |
|
- |
# The default is `after-first`. |
| 1430 |
|
- |
resize-overlay = after-first |
| 1431 |
|
- |
|
| 1432 |
|
- |
# If resize overlays are enabled, this controls the position of the overlay. |
| 1433 |
|
- |
# The possible options are: |
| 1434 |
|
- |
# |
| 1435 |
|
- |
# * `center` |
| 1436 |
|
- |
# * `top-left` |
| 1437 |
|
- |
# * `top-center` |
| 1438 |
|
- |
# * `top-right` |
| 1439 |
|
- |
# * `bottom-left` |
| 1440 |
|
- |
# * `bottom-center` |
| 1441 |
|
- |
# * `bottom-right` |
| 1442 |
|
- |
# |
| 1443 |
|
- |
# The default is `center`. |
| 1444 |
|
- |
resize-overlay-position = center |
| 1445 |
|
- |
|
| 1446 |
|
- |
# If resize overlays are enabled, this controls how long the overlay is |
| 1447 |
|
- |
# visible on the screen before it is hidden. The default is ¾ of a second or |
| 1448 |
|
- |
# 750 ms. |
| 1449 |
|
- |
# |
| 1450 |
|
- |
# The duration is specified as a series of numbers followed by time units. |
| 1451 |
|
- |
# Whitespace is allowed between numbers and units. Each number and unit will |
| 1452 |
|
- |
# be added together to form the total duration. |
| 1453 |
|
- |
# |
| 1454 |
|
- |
# The allowed time units are as follows: |
| 1455 |
|
- |
# |
| 1456 |
|
- |
# * `y` - 365 SI days, or 8760 hours, or 31536000 seconds. No adjustments |
| 1457 |
|
- |
# are made for leap years or leap seconds. |
| 1458 |
|
- |
# * `d` - one SI day, or 86400 seconds. |
| 1459 |
|
- |
# * `h` - one hour, or 3600 seconds. |
| 1460 |
|
- |
# * `m` - one minute, or 60 seconds. |
| 1461 |
|
- |
# * `s` - one second. |
| 1462 |
|
- |
# * `ms` - one millisecond, or 0.001 second. |
| 1463 |
|
- |
# * `us` or `µs` - one microsecond, or 0.000001 second. |
| 1464 |
|
- |
# * `ns` - one nanosecond, or 0.000000001 second. |
| 1465 |
|
- |
# |
| 1466 |
|
- |
# Examples: |
| 1467 |
|
- |
# * `1h30m` |
| 1468 |
|
- |
# * `45s` |
| 1469 |
|
- |
# |
| 1470 |
|
- |
# Units can be repeated and will be added together. This means that |
| 1471 |
|
- |
# `1h1h` is equivalent to `2h`. This is confusing and should be avoided. |
| 1472 |
|
- |
# A future update may disallow this. |
| 1473 |
|
- |
# |
| 1474 |
|
- |
# The maximum value is `584y 49w 23h 34m 33s 709ms 551µs 615ns`. Any |
| 1475 |
|
- |
# value larger than this will be clamped to the maximum value. |
| 1476 |
|
- |
resize-overlay-duration = 750ms |
| 1477 |
|
- |
|
| 1478 |
|
- |
focus-follows-mouse = false |
| 1479 |
|
- |
# Whether to allow programs running in the terminal to read/write to the |
| 1480 |
|
- |
# system clipboard (OSC 52, for googling). The default is to allow clipboard |
| 1481 |
|
- |
# reading after prompting the user and allow writing unconditionally. |
| 1482 |
|
- |
# |
| 1483 |
|
- |
# Valid values are: |
| 1484 |
|
- |
# |
| 1485 |
|
- |
# * `ask` |
| 1486 |
|
- |
# * `allow` |
| 1487 |
|
- |
# * `deny` |
| 1488 |
|
- |
# |
| 1489 |
|
- |
clipboard-read = ask |
| 1490 |
|
- |
|
| 1491 |
|
- |
clipboard-write = allow |
| 1492 |
|
- |
# Trims trailing whitespace on data that is copied to the clipboard. This does |
| 1493 |
|
- |
# not affect data sent to the clipboard via `clipboard-write`. |
| 1494 |
|
- |
clipboard-trim-trailing-spaces = true |
| 1495 |
|
- |
|
| 1496 |
|
- |
# Require confirmation before pasting text that appears unsafe. This helps |
| 1497 |
|
- |
# prevent a "copy/paste attack" where a user may accidentally execute unsafe |
| 1498 |
|
- |
# commands by pasting text with newlines. |
| 1499 |
|
- |
clipboard-paste-protection = true |
| 1500 |
|
- |
|
| 1501 |
|
- |
# If true, bracketed pastes will be considered safe. By default, bracketed |
| 1502 |
|
- |
# pastes are considered safe. "Bracketed" pastes are pastes while the running |
| 1503 |
|
- |
# program has bracketed paste mode enabled (a setting set by the running |
| 1504 |
|
- |
# program, not the terminal emulator). |
| 1505 |
|
- |
clipboard-paste-bracketed-safe = true |
| 1506 |
|
- |
|
| 1507 |
|
- |
# The total amount of bytes that can be used for image data (i.e. the Kitty |
| 1508 |
|
- |
# image protocol) per terminal screen. The maximum value is 4,294,967,295 |
| 1509 |
|
- |
# (4GiB). The default is 320MB. If this is set to zero, then all image |
| 1510 |
|
- |
# protocols will be disabled. |
| 1511 |
|
- |
# |
| 1512 |
|
- |
# This value is separate for primary and alternate screens so the effective |
| 1513 |
|
- |
# limit per surface is double. |
| 1514 |
|
- |
image-storage-limit = 320000000 |
| 1515 |
|
- |
|
| 1516 |
|
- |
# Whether to automatically copy selected text to the clipboard. `true` |
| 1517 |
|
- |
# will prefer to copy to the selection clipboard if supported by the |
| 1518 |
|
- |
# OS, otherwise it will copy to the system clipboard. |
| 1519 |
|
- |
# |
| 1520 |
|
- |
# The value `clipboard` will always copy text to the selection clipboard |
| 1521 |
|
- |
# (for supported systems) as well as the system clipboard. This is sometimes |
| 1522 |
|
- |
# a preferred behavior on Linux. |
| 1523 |
|
- |
# |
| 1524 |
|
- |
# Middle-click paste will always use the selection clipboard on Linux |
| 1525 |
|
- |
# and the system clipboard on macOS. Middle-click paste is always enabled |
| 1526 |
|
- |
# even if this is `false`. |
| 1527 |
|
- |
# |
| 1528 |
|
- |
# The default value is true on Linux and false on macOS. macOS copy on |
| 1529 |
|
- |
# select behavior is not typical for applications so it is disabled by |
| 1530 |
|
- |
# default. On Linux, this is a standard behavior so it is enabled by |
| 1531 |
|
- |
# default. |
| 1532 |
|
- |
copy-on-select = false |
| 1533 |
|
- |
|
| 1534 |
|
- |
# The time in milliseconds between clicks to consider a click a repeat |
| 1535 |
|
- |
# (double, triple, etc.) or an entirely new single click. A value of zero will |
| 1536 |
|
- |
# use a platform-specific default. The default on macOS is determined by the |
| 1537 |
|
- |
# OS settings. On every other platform it is 500ms. |
| 1538 |
|
- |
click-repeat-interval = 0 |
| 1539 |
|
- |
|
| 1540 |
|
- |
# Additional configuration files to read. This configuration can be repeated |
| 1541 |
|
- |
# to read multiple configuration files. Configuration files themselves can |
| 1542 |
|
- |
# load more configuration files. Paths are relative to the file containing the |
| 1543 |
|
- |
# `config-file` directive. For command-line arguments, paths are relative to |
| 1544 |
|
- |
# the current working directory. |
| 1545 |
|
- |
# |
| 1546 |
|
- |
# Prepend a ? character to the file path to suppress errors if the file does |
| 1547 |
|
- |
# not exist. If you want to include a file that begins with a literal ? |
| 1548 |
|
- |
# character, surround the file path in double quotes ("). |
| 1549 |
|
- |
# |
| 1550 |
|
- |
# Cycles are not allowed. If a cycle is detected, an error will be logged and |
| 1551 |
|
- |
# the configuration file will be ignored. |
| 1552 |
|
- |
# |
| 1553 |
|
- |
# Configuration files are loaded after the configuration they're defined |
| 1554 |
|
- |
# within in the order they're defined. **THIS IS A VERY SUBTLE BUT IMPORTANT |
| 1555 |
|
- |
# POINT.** To put it another way: configuration files do not take effect |
| 1556 |
|
- |
# until after the entire configuration is loaded. For example, in the |
| 1557 |
|
- |
# configuration below: |
| 1558 |
|
- |
# |
| 1559 |
|
- |
# ``` |
| 1560 |
|
- |
# config-file = "foo" |
| 1561 |
|
- |
# a = 1 |
| 1562 |
|
- |
# ``` |
| 1563 |
|
- |
# |
| 1564 |
|
- |
# If "foo" contains `a = 2`, the final value of `a` will be 2, because |
| 1565 |
|
- |
# `foo` is loaded after the configuration file that configures the |
| 1566 |
|
- |
# nested `config-file` value. |
| 1567 |
|
- |
config-file = |
| 1568 |
|
- |
|
| 1569 |
|
- |
# When this is true, the default configuration file paths will be loaded. |
| 1570 |
|
- |
# The default configuration file paths are currently only the XDG |
| 1571 |
|
- |
# config path ($XDG_CONFIG_HOME/ghostty/config). |
| 1572 |
|
- |
# |
| 1573 |
|
- |
# If this is false, the default configuration paths will not be loaded. |
| 1574 |
|
- |
# This is targeted directly at using Ghostty from the CLI in a way |
| 1575 |
|
- |
# that minimizes external effects. |
| 1576 |
|
- |
# |
| 1577 |
|
- |
# This is a CLI-only configuration. Setting this in a configuration file |
| 1578 |
|
- |
# will have no effect. It is not an error, but it will not do anything. |
| 1579 |
|
- |
# This configuration can only be set via CLI arguments. |
| 1580 |
|
- |
config-default-files = true |
| 1581 |
|
- |
|
| 1582 |
|
- |
# Confirms that a surface should be closed before closing it. This defaults to |
| 1583 |
|
- |
# true. If set to false, surfaces will close without any confirmation. |
| 1584 |
|
- |
confirm-close-surface = true |
| 1585 |
|
- |
|
| 1586 |
|
- |
# Whether or not to quit after the last surface is closed. |
| 1587 |
|
- |
# |
| 1588 |
|
- |
# This defaults to `false` on macOS since that is standard behavior for |
| 1589 |
|
- |
# a macOS application. On Linux, this defaults to `true` since that is |
| 1590 |
|
- |
# generally expected behavior. |
| 1591 |
|
- |
# |
| 1592 |
|
- |
# On Linux, if this is `true`, Ghostty can delay quitting fully until a |
| 1593 |
|
- |
# configurable amount of time has passed after the last window is closed. |
| 1594 |
|
- |
# See the documentation of `quit-after-last-window-closed-delay`. |
| 1595 |
|
- |
quit-after-last-window-closed = false |
| 1596 |
|
- |
|
| 1597 |
|
- |
# Controls how long Ghostty will stay running after the last open surface has |
| 1598 |
|
- |
# been closed. This only has an effect if `quit-after-last-window-closed` is |
| 1599 |
|
- |
# also set to `true`. |
| 1600 |
|
- |
# |
| 1601 |
|
- |
# The minimum value for this configuration is `1s`. Any values lower than |
| 1602 |
|
- |
# this will be clamped to `1s`. |
| 1603 |
|
- |
# |
| 1604 |
|
- |
# The duration is specified as a series of numbers followed by time units. |
| 1605 |
|
- |
# Whitespace is allowed between numbers and units. Each number and unit will |
| 1606 |
|
- |
# be added together to form the total duration. |
| 1607 |
|
- |
# |
| 1608 |
|
- |
# The allowed time units are as follows: |
| 1609 |
|
- |
# |
| 1610 |
|
- |
# * `y` - 365 SI days, or 8760 hours, or 31536000 seconds. No adjustments |
| 1611 |
|
- |
# are made for leap years or leap seconds. |
| 1612 |
|
- |
# * `d` - one SI day, or 86400 seconds. |
| 1613 |
|
- |
# * `h` - one hour, or 3600 seconds. |
| 1614 |
|
- |
# * `m` - one minute, or 60 seconds. |
| 1615 |
|
- |
# * `s` - one second. |
| 1616 |
|
- |
# * `ms` - one millisecond, or 0.001 second. |
| 1617 |
|
- |
# * `us` or `µs` - one microsecond, or 0.000001 second. |
| 1618 |
|
- |
# * `ns` - one nanosecond, or 0.000000001 second. |
| 1619 |
|
- |
# |
| 1620 |
|
- |
# Examples: |
| 1621 |
|
- |
# * `1h30m` |
| 1622 |
|
- |
# * `45s` |
| 1623 |
|
- |
# |
| 1624 |
|
- |
# Units can be repeated and will be added together. This means that |
| 1625 |
|
- |
# `1h1h` is equivalent to `2h`. This is confusing and should be avoided. |
| 1626 |
|
- |
# A future update may disallow this. |
| 1627 |
|
- |
# |
| 1628 |
|
- |
# The maximum value is `584y 49w 23h 34m 33s 709ms 551µs 615ns`. Any |
| 1629 |
|
- |
# value larger than this will be clamped to the maximum value. |
| 1630 |
|
- |
# |
| 1631 |
|
- |
# By default `quit-after-last-window-closed-delay` is unset and |
| 1632 |
|
- |
# Ghostty will quit immediately after the last window is closed if |
| 1633 |
|
- |
# `quit-after-last-window-closed` is `true`. |
| 1634 |
|
- |
# |
| 1635 |
|
- |
# Only implemented on Linux. |
| 1636 |
|
- |
quit-after-last-window-closed-delay = |
| 1637 |
|
- |
|
| 1638 |
|
- |
# This controls whether an initial window is created when Ghostty |
| 1639 |
|
- |
# is run. Note that if `quit-after-last-window-closed` is `true` and |
| 1640 |
|
- |
# `quit-after-last-window-closed-delay` is set, setting `initial-window` to |
| 1641 |
|
- |
# `false` will mean that Ghostty will quit after the configured delay if no |
| 1642 |
|
- |
# window is ever created. Only implemented on Linux and macOS. |
| 1643 |
|
- |
initial-window = true |
| 1644 |
|
- |
|
| 1645 |
|
- |
# The position of the "quick" terminal window. To learn more about the |
| 1646 |
|
- |
# quick terminal, see the documentation for the `toggle_quick_terminal` |
| 1647 |
|
- |
# binding action. |
| 1648 |
|
- |
# |
| 1649 |
|
- |
# Valid values are: |
| 1650 |
|
- |
# |
| 1651 |
|
- |
# * `top` - Terminal appears at the top of the screen. |
| 1652 |
|
- |
# * `bottom` - Terminal appears at the bottom of the screen. |
| 1653 |
|
- |
# * `left` - Terminal appears at the left of the screen. |
| 1654 |
|
- |
# * `right` - Terminal appears at the right of the screen. |
| 1655 |
|
- |
# * `center` - Terminal appears at the center of the screen. |
| 1656 |
|
- |
# |
| 1657 |
|
- |
# Changing this configuration requires restarting Ghostty completely. |
| 1658 |
|
- |
quick-terminal-position = top |
| 1659 |
|
- |
|
| 1660 |
|
- |
# The screen where the quick terminal should show up. |
| 1661 |
|
- |
# |
| 1662 |
|
- |
# Valid values are: |
| 1663 |
|
- |
# |
| 1664 |
|
- |
# * `main` - The screen that the operating system recommends as the main |
| 1665 |
|
- |
# screen. On macOS, this is the screen that is currently receiving |
| 1666 |
|
- |
# keyboard input. This screen is defined by the operating system and |
| 1667 |
|
- |
# not chosen by Ghostty. |
| 1668 |
|
- |
# |
| 1669 |
|
- |
# * `mouse` - The screen that the mouse is currently hovered over. |
| 1670 |
|
- |
# |
| 1671 |
|
- |
# * `macos-menu-bar` - The screen that contains the macOS menu bar as |
| 1672 |
|
- |
# set in the display settings on macOS. This is a bit confusing because |
| 1673 |
|
- |
# every screen on macOS has a menu bar, but this is the screen that |
| 1674 |
|
- |
# contains the primary menu bar. |
| 1675 |
|
- |
# |
| 1676 |
|
- |
# The default value is `main` because this is the recommended screen |
| 1677 |
|
- |
# by the operating system. |
| 1678 |
|
- |
quick-terminal-screen = main |
| 1679 |
|
- |
|
| 1680 |
|
- |
# Duration (in seconds) of the quick terminal enter and exit animation. |
| 1681 |
|
- |
# Set it to 0 to disable animation completely. This can be changed at |
| 1682 |
|
- |
# runtime. |
| 1683 |
|
- |
quick-terminal-animation-duration = 0.2 |
| 1684 |
|
- |
|
| 1685 |
|
- |
# Automatically hide the quick terminal when focus shifts to another window. |
| 1686 |
|
- |
# Set it to false for the quick terminal to remain open even when it loses focus. |
| 1687 |
|
- |
quick-terminal-autohide = true |
| 1688 |
|
- |
|
| 1689 |
|
- |
# Whether to enable shell integration auto-injection or not. Shell integration |
| 1690 |
|
- |
# greatly enhances the terminal experience by enabling a number of features: |
| 1691 |
|
- |
# |
| 1692 |
|
- |
# * Working directory reporting so new tabs, splits inherit the |
| 1693 |
|
- |
# previous terminal's working directory. |
| 1694 |
|
- |
# |
| 1695 |
|
- |
# * Prompt marking that enables the "jump_to_prompt" keybinding. |
| 1696 |
|
- |
# |
| 1697 |
|
- |
# * If you're sitting at a prompt, closing a terminal will not ask |
| 1698 |
|
- |
# for confirmation. |
| 1699 |
|
- |
# |
| 1700 |
|
- |
# * Resizing the window with a complex prompt usually paints much |
| 1701 |
|
- |
# better. |
| 1702 |
|
- |
# |
| 1703 |
|
- |
# Allowable values are: |
| 1704 |
|
- |
# |
| 1705 |
|
- |
# * `none` - Do not do any automatic injection. You can still manually |
| 1706 |
|
- |
# configure your shell to enable the integration. |
| 1707 |
|
- |
# |
| 1708 |
|
- |
# * `detect` - Detect the shell based on the filename. |
| 1709 |
|
- |
# |
| 1710 |
|
- |
# * `bash`, `elvish`, `fish`, `zsh` - Use this specific shell injection scheme. |
| 1711 |
|
- |
# |
| 1712 |
|
- |
# The default value is `detect`. |
| 1713 |
|
- |
shell-integration = detect |
| 1714 |
|
- |
|
| 1715 |
|
- |
# Shell integration features to enable if shell integration itself is enabled. |
| 1716 |
|
- |
# The format of this is a list of features to enable separated by commas. If |
| 1717 |
|
- |
# you prefix a feature with `no-` then it is disabled. If you omit a feature, |
| 1718 |
|
- |
# its default value is used, so you must explicitly disable features you don't |
| 1719 |
|
- |
# want. You can also use `true` or `false` to turn all features on or off. |
| 1720 |
|
- |
# |
| 1721 |
|
- |
# Available features: |
| 1722 |
|
- |
# |
| 1723 |
|
- |
# * `cursor` - Set the cursor to a blinking bar at the prompt. |
| 1724 |
|
- |
# |
| 1725 |
|
- |
# * `sudo` - Set sudo wrapper to preserve terminfo. |
| 1726 |
|
- |
# |
| 1727 |
|
- |
# * `title` - Set the window title via shell integration. |
| 1728 |
|
- |
# |
| 1729 |
|
- |
# Example: `cursor`, `no-cursor`, `sudo`, `no-sudo`, `title`, `no-title` |
| 1730 |
|
- |
shell-integration-features = cursor,no-sudo,title |
| 1731 |
|
- |
|
| 1732 |
|
- |
# Sets the reporting format for OSC sequences that request color information. |
| 1733 |
|
- |
# Ghostty currently supports OSC 10 (foreground), OSC 11 (background), and |
| 1734 |
|
- |
# OSC 4 (256 color palette) queries, and by default the reported values |
| 1735 |
|
- |
# are scaled-up RGB values, where each component are 16 bits. This is how |
| 1736 |
|
- |
# most terminals report these values. However, some legacy applications may |
| 1737 |
|
- |
# require 8-bit, unscaled, components. We also support turning off reporting |
| 1738 |
|
- |
# altogether. The components are lowercase hex values. |
| 1739 |
|
- |
# |
| 1740 |
|
- |
# Allowable values are: |
| 1741 |
|
- |
# |
| 1742 |
|
- |
# * `none` - OSC 4/10/11 queries receive no reply |
| 1743 |
|
- |
# |
| 1744 |
|
- |
# * `8-bit` - Color components are return unscaled, i.e. `rr/gg/bb` |
| 1745 |
|
- |
# |
| 1746 |
|
- |
# * `16-bit` - Color components are returned scaled, e.g. `rrrr/gggg/bbbb` |
| 1747 |
|
- |
# |
| 1748 |
|
- |
# The default value is `16-bit`. |
| 1749 |
|
- |
osc-color-report-format = 16-bit |
| 1750 |
|
- |
|
| 1751 |
|
- |
# If true, allows the "KAM" mode (ANSI mode 2) to be used within |
| 1752 |
|
- |
# the terminal. KAM disables keyboard input at the request of the |
| 1753 |
|
- |
# application. This is not a common feature and is not recommended |
| 1754 |
|
- |
# to be enabled. This will not be documented further because |
| 1755 |
|
- |
# if you know you need KAM, you know. If you don't know if you |
| 1756 |
|
- |
# need KAM, you don't need it. |
| 1757 |
|
- |
vt-kam-allowed = false |
| 1758 |
|
- |
|
| 1759 |
|
- |
# Custom shaders to run after the default shaders. This is a file path |
| 1760 |
|
- |
# to a GLSL-syntax shader for all platforms. |
| 1761 |
|
- |
# |
| 1762 |
|
- |
# Warning: Invalid shaders can cause Ghostty to become unusable such as by |
| 1763 |
|
- |
# causing the window to be completely black. If this happens, you can |
| 1764 |
|
- |
# unset this configuration to disable the shader. |
| 1765 |
|
- |
# |
| 1766 |
|
- |
# On Linux, this requires OpenGL 4.2. Ghostty typically only requires |
| 1767 |
|
- |
# OpenGL 3.3, but custom shaders push that requirement up to 4.2. |
| 1768 |
|
- |
# |
| 1769 |
|
- |
# The shader API is identical to the Shadertoy API: you specify a `mainImage` |
| 1770 |
|
- |
# function and the available uniforms match Shadertoy. The iChannel0 uniform |
| 1771 |
|
- |
# is a texture containing the rendered terminal screen. |
| 1772 |
|
- |
# |
| 1773 |
|
- |
# If the shader fails to compile, the shader will be ignored. Any errors |
| 1774 |
|
- |
# related to shader compilation will not show up as configuration errors |
| 1775 |
|
- |
# and only show up in the log, since shader compilation happens after |
| 1776 |
|
- |
# configuration loading on the dedicated render thread. For interactive |
| 1777 |
|
- |
# development, use [shadertoy.com](https://shadertoy.com). |
| 1778 |
|
- |
# |
| 1779 |
|
- |
# This can be repeated multiple times to load multiple shaders. The shaders |
| 1780 |
|
- |
# will be run in the order they are specified. |
| 1781 |
|
- |
# |
| 1782 |
|
- |
# Changing this value at runtime and reloading the configuration will only |
| 1783 |
|
- |
# affect new windows, tabs, and splits. |
| 1784 |
|
- |
custom-shader = |
| 1785 |
|
- |
|
| 1786 |
|
- |
# If `true` (default), the focused terminal surface will run an animation |
| 1787 |
|
- |
# loop when custom shaders are used. This uses slightly more CPU (generally |
| 1788 |
|
- |
# less than 10%) but allows the shader to animate. This only runs if there |
| 1789 |
|
- |
# are custom shaders and the terminal is focused. |
| 1790 |
|
- |
# |
| 1791 |
|
- |
# If this is set to `false`, the terminal and custom shader will only render |
| 1792 |
|
- |
# when the terminal is updated. This is more efficient but the shader will |
| 1793 |
|
- |
# not animate. |
| 1794 |
|
- |
# |
| 1795 |
|
- |
# This can also be set to `always`, which will always run the animation |
| 1796 |
|
- |
# loop regardless of whether the terminal is focused or not. The animation |
| 1797 |
|
- |
# loop will still only run when custom shaders are used. Note that this |
| 1798 |
|
- |
# will use more CPU per terminal surface and can become quite expensive |
| 1799 |
|
- |
# depending on the shader and your terminal usage. |
| 1800 |
|
- |
# |
| 1801 |
|
- |
# This value can be changed at runtime and will affect all currently |
| 1802 |
|
- |
# open terminals. |
| 1803 |
|
- |
custom-shader-animation = true |
| 1804 |
|
- |
|
| 1805 |
|
- |
# If anything other than false, fullscreen mode on macOS will not use the |
| 1806 |
|
- |
# native fullscreen, but make the window fullscreen without animations and |
| 1807 |
|
- |
# using a new space. It's faster than the native fullscreen mode since it |
| 1808 |
|
- |
# doesn't use animations. |
| 1809 |
|
- |
# |
| 1810 |
|
- |
# Important: tabs DO NOT WORK in this mode. Non-native fullscreen removes |
| 1811 |
|
- |
# the titlebar and macOS native tabs require the titlebar. If you use tabs, |
| 1812 |
|
- |
# you should not use this mode. |
| 1813 |
|
- |
# |
| 1814 |
|
- |
# If you fullscreen a window with tabs, the currently focused tab will |
| 1815 |
|
- |
# become fullscreen while the others will remain in a separate window in |
| 1816 |
|
- |
# the background. You can switch to that window using normal window-switching |
| 1817 |
|
- |
# keybindings such as command+tilde. When you exit fullscreen, the window |
| 1818 |
|
- |
# will return to the tabbed state it was in before. |
| 1819 |
|
- |
# |
| 1820 |
|
- |
# Allowable values are: |
| 1821 |
|
- |
# |
| 1822 |
|
- |
# * `visible-menu` - Use non-native macOS fullscreen, keep the menu bar visible |
| 1823 |
|
- |
# * `true` - Use non-native macOS fullscreen, hide the menu bar |
| 1824 |
|
- |
# * `false` - Use native macOS fullscreen |
| 1825 |
|
- |
# |
| 1826 |
|
- |
# Changing this option at runtime works, but will only apply to the next |
| 1827 |
|
- |
# time the window is made fullscreen. If a window is already fullscreen, |
| 1828 |
|
- |
# it will retain the previous setting until fullscreen is exited. |
| 1829 |
|
- |
macos-non-native-fullscreen = false |
| 1830 |
|
- |
|
| 1831 |
|
- |
# The style of the macOS titlebar. Available values are: "native", |
| 1832 |
|
- |
# "transparent", "tabs", and "hidden". |
| 1833 |
|
- |
# |
| 1834 |
|
- |
# The "native" style uses the native macOS titlebar with zero customization. |
| 1835 |
|
- |
# The titlebar will match your window theme (see `window-theme`). |
| 1836 |
|
- |
# |
| 1837 |
|
- |
# The "transparent" style is the same as "native" but the titlebar will |
| 1838 |
|
- |
# be transparent and allow your window background color to come through. |
| 1839 |
|
- |
# This makes a more seamless window appearance but looks a little less |
| 1840 |
|
- |
# typical for a macOS application and may not work well with all themes. |
| 1841 |
|
- |
# |
| 1842 |
|
- |
# The "transparent" style will also update in real-time to dynamic |
| 1843 |
|
- |
# changes to the window background color, i.e. via OSC 11. To make this |
| 1844 |
|
- |
# more aesthetically pleasing, this only happens if the terminal is |
| 1845 |
|
- |
# a window, tab, or split that borders the top of the window. This |
| 1846 |
|
- |
# avoids a disjointed appearance where the titlebar color changes |
| 1847 |
|
- |
# but all the topmost terminals don't match. |
| 1848 |
|
- |
# |
| 1849 |
|
- |
# The "tabs" style is a completely custom titlebar that integrates the |
| 1850 |
|
- |
# tab bar into the titlebar. This titlebar always matches the background |
| 1851 |
|
- |
# color of the terminal. There are some limitations to this style: |
| 1852 |
|
- |
# On macOS 13 and below, saved window state will not restore tabs correctly. |
| 1853 |
|
- |
# macOS 14 does not have this issue and any other macOS version has not |
| 1854 |
|
- |
# been tested. |
| 1855 |
|
- |
# |
| 1856 |
|
- |
# The "hidden" style hides the titlebar. Unlike `window-decoration = false`, |
| 1857 |
|
- |
# however, it does not remove the frame from the window or cause it to have |
| 1858 |
|
- |
# squared corners. Changing to or from this option at run-time may affect |
| 1859 |
|
- |
# existing windows in buggy ways. The top titlebar area of the window will |
| 1860 |
|
- |
# continue to drag the window around and you will not be able to use |
| 1861 |
|
- |
# the mouse for terminal events in this space. |
| 1862 |
|
- |
# |
| 1863 |
|
- |
# The default value is "transparent". This is an opinionated choice |
| 1864 |
|
- |
# but its one I think is the most aesthetically pleasing and works in |
| 1865 |
|
- |
# most cases. |
| 1866 |
|
- |
# |
| 1867 |
|
- |
# Changing this option at runtime only applies to new windows. |
| 1868 |
|
- |
macos-titlebar-style = hidden |
| 1869 |
|
- |
|
| 1870 |
|
- |
# Whether the proxy icon in the macOS titlebar is visible. The proxy icon |
| 1871 |
|
- |
# is the icon that represents the folder of the current working directory. |
| 1872 |
|
- |
# You can see this very clearly in the macOS built-in Terminal.app |
| 1873 |
|
- |
# titlebar. |
| 1874 |
|
- |
# |
| 1875 |
|
- |
# The proxy icon is only visible with the native macOS titlebar style. |
| 1876 |
|
- |
# |
| 1877 |
|
- |
# Valid values are: |
| 1878 |
|
- |
# |
| 1879 |
|
- |
# * `visible` - Show the proxy icon. |
| 1880 |
|
- |
# * `hidden` - Hide the proxy icon. |
| 1881 |
|
- |
# |
| 1882 |
|
- |
# The default value is `visible`. |
| 1883 |
|
- |
# |
| 1884 |
|
- |
# This setting can be changed at runtime and will affect all currently |
| 1885 |
|
- |
# open windows but only after their working directory changes again. |
| 1886 |
|
- |
# Therefore, to make this work after changing the setting, you must |
| 1887 |
|
- |
# usually `cd` to a different directory, open a different file in an |
| 1888 |
|
- |
# editor, etc. |
| 1889 |
|
- |
macos-titlebar-proxy-icon = visible |
| 1890 |
|
- |
|
| 1891 |
|
- |
# macOS doesn't have a distinct "alt" key and instead has the "option" |
| 1892 |
|
- |
# key which behaves slightly differently. On macOS by default, the |
| 1893 |
|
- |
# option key plus a character will sometimes produces a Unicode character. |
| 1894 |
|
- |
# For example, on US standard layouts option-b produces "∫". This may be |
| 1895 |
|
- |
# undesirable if you want to use "option" as an "alt" key for keybindings |
| 1896 |
|
- |
# in terminal programs or shells. |
| 1897 |
|
- |
# |
| 1898 |
|
- |
# This configuration lets you change the behavior so that option is treated |
| 1899 |
|
- |
# as alt. |
| 1900 |
|
- |
# |
| 1901 |
|
- |
# The default behavior (unset) will depend on your active keyboard |
| 1902 |
|
- |
# layout. If your keyboard layout is one of the keyboard layouts listed |
| 1903 |
|
- |
# below, then the default value is "true". Otherwise, the default |
| 1904 |
|
- |
# value is "false". Keyboard layouts with a default value of "true" are: |
| 1905 |
|
- |
# |
| 1906 |
|
- |
# - U.S. Standard |
| 1907 |
|
- |
# - U.S. International |
| 1908 |
|
- |
# |
| 1909 |
|
- |
# Note that if an *Option*-sequence doesn't produce a printable character, it |
| 1910 |
|
- |
# will be treated as *Alt* regardless of this setting. (i.e. `alt+ctrl+a`). |
| 1911 |
|
- |
# |
| 1912 |
|
- |
# Explicit values that can be set: |
| 1913 |
|
- |
# |
| 1914 |
|
- |
# If `true`, the *Option* key will be treated as *Alt*. This makes terminal |
| 1915 |
|
- |
# sequences expecting *Alt* to work properly, but will break Unicode input |
| 1916 |
|
- |
# sequences on macOS if you use them via the *Alt* key. |
| 1917 |
|
- |
# |
| 1918 |
|
- |
# You may set this to `false` to restore the macOS *Alt* key unicode |
| 1919 |
|
- |
# sequences but this will break terminal sequences expecting *Alt* to work. |
| 1920 |
|
- |
# |
| 1921 |
|
- |
# The values `left` or `right` enable this for the left or right *Option* |
| 1922 |
|
- |
# key, respectively. |
| 1923 |
|
- |
# |
| 1924 |
|
- |
# This does not work with GLFW builds. |
| 1925 |
|
- |
macos-option-as-alt = |
| 1926 |
|
- |
|
| 1927 |
|
- |
# Whether to enable the macOS window shadow. The default value is true. |
| 1928 |
|
- |
# With some window managers and window transparency settings, you may |
| 1929 |
|
- |
# find false more visually appealing. |
| 1930 |
|
- |
macos-window-shadow = false |
| 1931 |
|
- |
|
| 1932 |
|
- |
# If true, Ghostty on macOS will automatically enable the "Secure Input" |
| 1933 |
|
- |
# feature when it detects that a password prompt is being displayed. |
| 1934 |
|
- |
# |
| 1935 |
|
- |
# "Secure Input" is a macOS security feature that prevents applications from |
| 1936 |
|
- |
# reading keyboard events. This can always be enabled manually using the |
| 1937 |
|
- |
# `Ghostty > Secure Keyboard Entry` menu item. |
| 1938 |
|
- |
# |
| 1939 |
|
- |
# Note that automatic password prompt detection is based on heuristics |
| 1940 |
|
- |
# and may not always work as expected. Specifically, it does not work |
| 1941 |
|
- |
# over SSH connections, but there may be other cases where it also |
| 1942 |
|
- |
# doesn't work. |
| 1943 |
|
- |
# |
| 1944 |
|
- |
# A reason to disable this feature is if you find that it is interfering |
| 1945 |
|
- |
# with legitimate accessibility software (or software that uses the |
| 1946 |
|
- |
# accessibility APIs), since secure input prevents any application from |
| 1947 |
|
- |
# reading keyboard events. |
| 1948 |
|
- |
macos-auto-secure-input = true |
| 1949 |
|
- |
|
| 1950 |
|
- |
# If true, Ghostty will show a graphical indication when secure input is |
| 1951 |
|
- |
# enabled. This indication is generally recommended to know when secure input |
| 1952 |
|
- |
# is enabled. |
| 1953 |
|
- |
# |
| 1954 |
|
- |
# Normally, secure input is only active when a password prompt is displayed |
| 1955 |
|
- |
# or it is manually (and typically temporarily) enabled. However, if you |
| 1956 |
|
- |
# always have secure input enabled, the indication can be distracting and |
| 1957 |
|
- |
# you may want to disable it. |
| 1958 |
|
- |
macos-secure-input-indication = true |
| 1959 |
|
- |
|
| 1960 |
|
- |
# Customize the macOS app icon. |
| 1961 |
|
- |
# |
| 1962 |
|
- |
# This only affects the icon that appears in the dock, application |
| 1963 |
|
- |
# switcher, etc. This does not affect the icon in Finder because |
| 1964 |
|
- |
# that is controlled by a hardcoded value in the signed application |
| 1965 |
|
- |
# bundle and can't be changed at runtime. For more details on what |
| 1966 |
|
- |
# exactly is affected, see the `NSApplication.icon` Apple documentation; |
| 1967 |
|
- |
# that is the API that is being used to set the icon. |
| 1968 |
|
- |
# |
| 1969 |
|
- |
# Valid values: |
| 1970 |
|
- |
# |
| 1971 |
|
- |
# * `official` - Use the official Ghostty icon. |
| 1972 |
|
- |
# * `custom-style` - Use the official Ghostty icon but with custom |
| 1973 |
|
- |
# styles applied to various layers. The custom styles must be |
| 1974 |
|
- |
# specified using the additional `macos-icon`-prefixed configurations. |
| 1975 |
|
- |
# The `macos-icon-ghost-color` and `macos-icon-screen-color` |
| 1976 |
|
- |
# configurations are required for this style. |
| 1977 |
|
- |
# |
| 1978 |
|
- |
# WARNING: The `custom-style` option is _experimental_. We may change |
| 1979 |
|
- |
# the format of the custom styles in the future. We're still finalizing |
| 1980 |
|
- |
# the exact layers and customization options that will be available. |
| 1981 |
|
- |
# |
| 1982 |
|
- |
# Other caveats: |
| 1983 |
|
- |
# |
| 1984 |
|
- |
# * The icon in the update dialog will always be the official icon. |
| 1985 |
|
- |
# This is because the update dialog is managed through a |
| 1986 |
|
- |
# separate framework and cannot be customized without significant |
| 1987 |
|
- |
# effort. |
| 1988 |
|
- |
# |
| 1989 |
|
- |
macos-icon = official |
| 1990 |
|
- |
|
| 1991 |
|
- |
# The material to use for the frame of the macOS app icon. |
| 1992 |
|
- |
# |
| 1993 |
|
- |
# Valid values: |
| 1994 |
|
- |
# |
| 1995 |
|
- |
# * `aluminum` - A brushed aluminum frame. This is the default. |
| 1996 |
|
- |
# * `beige` - A classic 90's computer beige frame. |
| 1997 |
|
- |
# * `plastic` - A glossy, dark plastic frame. |
| 1998 |
|
- |
# * `chrome` - A shiny chrome frame. |
| 1999 |
|
- |
# |
| 2000 |
|
- |
# This only has an effect when `macos-icon` is set to `custom-style`. |
| 2001 |
|
- |
macos-icon-frame = aluminum |
| 2002 |
|
- |
|
| 2003 |
|
- |
# The color of the ghost in the macOS app icon. |
| 2004 |
|
- |
# |
| 2005 |
|
- |
# The format of the color is the same as the `background` configuration; |
| 2006 |
|
- |
# see that for more information. |
| 2007 |
|
- |
# |
| 2008 |
|
- |
# Note: This configuration is required when `macos-icon` is set to |
| 2009 |
|
- |
# `custom-style`. |
| 2010 |
|
- |
# |
| 2011 |
|
- |
# This only has an effect when `macos-icon` is set to `custom-style`. |
| 2012 |
|
- |
macos-icon-ghost-color = |
| 2013 |
|
- |
|
| 2014 |
|
- |
# The color of the screen in the macOS app icon. |
| 2015 |
|
- |
# |
| 2016 |
|
- |
# The screen is a gradient so you can specify multiple colors that |
| 2017 |
|
- |
# make up the gradient. Colors should be separated by commas. The |
| 2018 |
|
- |
# format of the color is the same as the `background` configuration; |
| 2019 |
|
- |
# see that for more information. |
| 2020 |
|
- |
# |
| 2021 |
|
- |
# Note: This configuration is required when `macos-icon` is set to |
| 2022 |
|
- |
# `custom-style`. |
| 2023 |
|
- |
# |
| 2024 |
|
- |
# This only has an effect when `macos-icon` is set to `custom-style`. |
| 2025 |
|
- |
macos-icon-screen-color = |
| 2026 |
|
- |
|
| 2027 |
|
- |
# Put every surface (tab, split, window) into a dedicated Linux cgroup. |
| 2028 |
|
- |
# |
| 2029 |
|
- |
# This makes it so that resource management can be done on a per-surface |
| 2030 |
|
- |
# granularity. For example, if a shell program is using too much memory, |
| 2031 |
|
- |
# only that shell will be killed by the oom monitor instead of the entire |
| 2032 |
|
- |
# Ghostty process. Similarly, if a shell program is using too much CPU, |
| 2033 |
|
- |
# only that surface will be CPU-throttled. |
| 2034 |
|
- |
# |
| 2035 |
|
- |
# This will cause startup times to be slower (a hundred milliseconds or so), |
| 2036 |
|
- |
# so the default value is "single-instance." In single-instance mode, only |
| 2037 |
|
- |
# one instance of Ghostty is running (see gtk-single-instance) so the startup |
| 2038 |
|
- |
# time is a one-time cost. Additionally, single instance Ghostty is much |
| 2039 |
|
- |
# more likely to have many windows, tabs, etc. so cgroup isolation is a |
| 2040 |
|
- |
# big benefit. |
| 2041 |
|
- |
# |
| 2042 |
|
- |
# This feature requires systemd. If systemd is unavailable, cgroup |
| 2043 |
|
- |
# initialization will fail. By default, this will not prevent Ghostty |
| 2044 |
|
- |
# from working (see linux-cgroup-hard-fail). |
| 2045 |
|
- |
# |
| 2046 |
|
- |
# Valid values are: |
| 2047 |
|
- |
# |
| 2048 |
|
- |
# * `never` - Never use cgroups. |
| 2049 |
|
- |
# * `always` - Always use cgroups. |
| 2050 |
|
- |
# * `single-instance` - Enable cgroups only for Ghostty instances launched |
| 2051 |
|
- |
# as single-instance applications (see gtk-single-instance). |
| 2052 |
|
- |
# |
| 2053 |
|
- |
linux-cgroup = single-instance |
| 2054 |
|
- |
|
| 2055 |
|
- |
# Memory limit for any individual terminal process (tab, split, window, |
| 2056 |
|
- |
# etc.) in bytes. If this is unset then no memory limit will be set. |
| 2057 |
|
- |
# |
| 2058 |
|
- |
# Note that this sets the "memory.high" configuration for the memory |
| 2059 |
|
- |
# controller, which is a soft limit. You should configure something like |
| 2060 |
|
- |
# systemd-oom to handle killing processes that have too much memory |
| 2061 |
|
- |
# pressure. |
| 2062 |
|
- |
linux-cgroup-memory-limit = |
| 2063 |
|
- |
|
| 2064 |
|
- |
# Number of processes limit for any individual terminal process (tab, split, |
| 2065 |
|
- |
# window, etc.). If this is unset then no limit will be set. |
| 2066 |
|
- |
# |
| 2067 |
|
- |
# Note that this sets the "pids.max" configuration for the process number |
| 2068 |
|
- |
# controller, which is a hard limit. |
| 2069 |
|
- |
linux-cgroup-processes-limit = |
| 2070 |
|
- |
|
| 2071 |
|
- |
# If this is false, then any cgroup initialization (for linux-cgroup) |
| 2072 |
|
- |
# will be allowed to fail and the failure is ignored. This is useful if |
| 2073 |
|
- |
# you view cgroup isolation as a "nice to have" and not a critical resource |
| 2074 |
|
- |
# management feature, because Ghostty startup will not fail if cgroup APIs |
| 2075 |
|
- |
# fail. |
| 2076 |
|
- |
# |
| 2077 |
|
- |
# If this is true, then any cgroup initialization failure will cause |
| 2078 |
|
- |
# Ghostty to exit or new surfaces to not be created. |
| 2079 |
|
- |
# |
| 2080 |
|
- |
# Note: This currently only affects cgroup initialization. Subprocesses |
| 2081 |
|
- |
# must always be able to move themselves into an isolated cgroup. |
| 2082 |
|
- |
linux-cgroup-hard-fail = false |
| 2083 |
|
- |
|
| 2084 |
|
- |
# If `true`, the Ghostty GTK application will run in single-instance mode: |
| 2085 |
|
- |
# each new `ghostty` process launched will result in a new window if there is |
| 2086 |
|
- |
# already a running process. |
| 2087 |
|
- |
# |
| 2088 |
|
- |
# If `false`, each new ghostty process will launch a separate application. |
| 2089 |
|
- |
# |
| 2090 |
|
- |
# The default value is `detect` which will default to `true` if Ghostty |
| 2091 |
|
- |
# detects that it was launched from the `.desktop` file such as an app |
| 2092 |
|
- |
# launcher (like Gnome Shell) or by D-Bus activation. If Ghostty is launched |
| 2093 |
|
- |
# from the command line, it will default to `false`. |
| 2094 |
|
- |
# |
| 2095 |
|
- |
# Note that debug builds of Ghostty have a separate single-instance ID |
| 2096 |
|
- |
# so you can test single instance without conflicting with release builds. |
| 2097 |
|
- |
gtk-single-instance = desktop |
| 2098 |
|
- |
|
| 2099 |
|
- |
# When enabled, the full GTK titlebar is displayed instead of your window |
| 2100 |
|
- |
# manager's simple titlebar. The behavior of this option will vary with your |
| 2101 |
|
- |
# window manager. |
| 2102 |
|
- |
# |
| 2103 |
|
- |
# This option does nothing when `window-decoration` is false or when running |
| 2104 |
|
- |
# under macOS. |
| 2105 |
|
- |
# |
| 2106 |
|
- |
# Changing this value at runtime and reloading the configuration will only |
| 2107 |
|
- |
# affect new windows. |
| 2108 |
|
- |
gtk-titlebar = true |
| 2109 |
|
- |
|
| 2110 |
|
- |
# Determines the side of the screen that the GTK tab bar will stick to. |
| 2111 |
|
- |
# Top, bottom, left, right, and hidden are supported. The default is top. |
| 2112 |
|
- |
# |
| 2113 |
|
- |
# If this option has value `left` or `right` when using Adwaita, it falls |
| 2114 |
|
- |
# back to `top`. `hidden`, meaning that tabs don't exist, is not supported |
| 2115 |
|
- |
# without using Adwaita, falling back to `top`. |
| 2116 |
|
- |
# |
| 2117 |
|
- |
# When `hidden` is set and Adwaita is enabled, a tab button displaying the |
| 2118 |
|
- |
# number of tabs will appear in the title bar. It has the ability to open a |
| 2119 |
|
- |
# tab overview for displaying tabs. Alternatively, you can use the |
| 2120 |
|
- |
# `toggle_tab_overview` action in a keybind if your window doesn't have a |
| 2121 |
|
- |
# title bar, or you can switch tabs with keybinds. |
| 2122 |
|
- |
gtk-tabs-location = top |
| 2123 |
|
- |
|
| 2124 |
|
- |
# Determines the appearance of the top and bottom bars when using the |
| 2125 |
|
- |
# Adwaita tab bar. This requires `gtk-adwaita` to be enabled (it is |
| 2126 |
|
- |
# by default). |
| 2127 |
|
- |
# |
| 2128 |
|
- |
# Valid values are: |
| 2129 |
|
- |
# |
| 2130 |
|
- |
# * `flat` - Top and bottom bars are flat with the terminal window. |
| 2131 |
|
- |
# * `raised` - Top and bottom bars cast a shadow on the terminal area. |
| 2132 |
|
- |
# * `raised-border` - Similar to `raised` but the shadow is replaced with a |
| 2133 |
|
- |
# more subtle border. |
| 2134 |
|
- |
# |
| 2135 |
|
- |
# Changing this value at runtime will only affect new windows. |
| 2136 |
|
- |
adw-toolbar-style = raised |
| 2137 |
|
- |
|
| 2138 |
|
- |
# If `true` (default), then the Ghostty GTK tabs will be "wide." Wide tabs |
| 2139 |
|
- |
# are the new typical Gnome style where tabs fill their available space. |
| 2140 |
|
- |
# If you set this to `false` then tabs will only take up space they need, |
| 2141 |
|
- |
# which is the old style. |
| 2142 |
|
- |
gtk-wide-tabs = true |
| 2143 |
|
- |
|
| 2144 |
|
- |
# If `true` (default), Ghostty will enable Adwaita theme support. This |
| 2145 |
|
- |
# will make `window-theme` work properly and will also allow Ghostty to |
| 2146 |
|
- |
# properly respond to system theme changes, light/dark mode changing, etc. |
| 2147 |
|
- |
# This requires a GTK4 desktop with a GTK4 theme. |
| 2148 |
|
- |
# |
| 2149 |
|
- |
# If you are running GTK3 or have a GTK3 theme, you may have to set this |
| 2150 |
|
- |
# to false to get your theme picked up properly. Having this set to true |
| 2151 |
|
- |
# with GTK3 should not cause any problems, but it may not work exactly as |
| 2152 |
|
- |
# expected. |
| 2153 |
|
- |
# |
| 2154 |
|
- |
# This configuration only has an effect if Ghostty was built with |
| 2155 |
|
- |
# Adwaita support. |
| 2156 |
|
- |
gtk-adwaita = true |
| 2157 |
|
- |
|
| 2158 |
|
- |
# If `true` (default), applications running in the terminal can show desktop |
| 2159 |
|
- |
# notifications using certain escape sequences such as OSC 9 or OSC 777. |
| 2160 |
|
- |
desktop-notifications = true |
| 2161 |
|
- |
|
| 2162 |
|
- |
# If `true`, the bold text will use the bright color palette. |
| 2163 |
|
- |
bold-is-bright = false |
| 2164 |
|
- |
|
| 2165 |
|
- |
# This will be used to set the `TERM` environment variable. |
| 2166 |
|
- |
# HACK: We set this with an `xterm` prefix because vim uses that to enable key |
| 2167 |
|
- |
# protocols (specifically this will enable `modifyOtherKeys`), among other |
| 2168 |
|
- |
# features. An option exists in vim to modify this: `:set |
| 2169 |
|
- |
# keyprotocol=ghostty:kitty`, however a bug in the implementation prevents it |
| 2170 |
|
- |
# from working properly. https://github.com/vim/vim/pull/13211 fixes this. |
| 2171 |
|
- |
term = xterm-ghostty |
| 2172 |
|
- |
|
| 2173 |
|
- |
# String to send when we receive `ENQ` (`0x05`) from the command that we are |
| 2174 |
|
- |
# running. Defaults to an empty string if not set. |
| 2175 |
|
- |
enquiry-response = |
| 2176 |
|
- |
|
| 2177 |
|
- |
# Control the auto-update functionality of Ghostty. This is only supported |
| 2178 |
|
- |
# on macOS currently, since Linux builds are distributed via package |
| 2179 |
|
- |
# managers that are not centrally controlled by Ghostty. |
| 2180 |
|
- |
# |
| 2181 |
|
- |
# Checking or downloading an update does not send any information to |
| 2182 |
|
- |
# the project beyond standard network information mandated by the |
| 2183 |
|
- |
# underlying protocols. To put it another way: Ghostty doesn't explicitly |
| 2184 |
|
- |
# add any tracking to the update process. The update process works by |
| 2185 |
|
- |
# downloading information about the latest version and comparing it |
| 2186 |
|
- |
# client-side to the current version. |
| 2187 |
|
- |
# |
| 2188 |
|
- |
# Valid values are: |
| 2189 |
|
- |
# |
| 2190 |
|
- |
# * `off` - Disable auto-updates. |
| 2191 |
|
- |
# * `check` - Check for updates and notify the user if an update is |
| 2192 |
|
- |
# available, but do not automatically download or install the update. |
| 2193 |
|
- |
# * `download` - Check for updates, automatically download the update, |
| 2194 |
|
- |
# notify the user, but do not automatically install the update. |
| 2195 |
|
- |
# |
| 2196 |
|
- |
# The default value is `check`. |
| 2197 |
|
- |
# |
| 2198 |
|
- |
# Changing this value at runtime works after a small delay. |
| 2199 |
|
- |
auto-update = check |
| 2200 |
|
- |
|
| 2201 |
|
- |
# The release channel to use for auto-updates. |
| 2202 |
|
- |
# |
| 2203 |
|
- |
# The default value of this matches the release channel of the currently |
| 2204 |
|
- |
# running Ghostty version. If you download a pre-release version of Ghostty |
| 2205 |
|
- |
# then this will be set to `tip` and you will receive pre-release updates. |
| 2206 |
|
- |
# If you download a stable version of Ghostty then this will be set to |
| 2207 |
|
- |
# `stable` and you will receive stable updates. |
| 2208 |
|
- |
# |
| 2209 |
|
- |
# Valid values are: |
| 2210 |
|
- |
# |
| 2211 |
|
- |
# * `stable` - Stable, tagged releases such as "1.0.0". |
| 2212 |
|
- |
# * `tip` - Pre-release versions generated from each commit to the |
| 2213 |
|
- |
# main branch. This is the version that was in use during private |
| 2214 |
|
- |
# beta testing by thousands of people. It is generally stable but |
| 2215 |
|
- |
# will likely have more bugs than the stable channel. |
| 2216 |
|
- |
# |
| 2217 |
|
- |
# Changing this configuration requires a full restart of |
| 2218 |
|
- |
# Ghostty to take effect. |
| 2219 |
|
- |
# |
| 2220 |
|
- |
# This only works on macOS since only macOS has an auto-update feature. |
| 2221 |
|
- |
auto-update-channel = |
| 2222 |
|
- |
|
|
1 |
+ |
/Users/stevedylandev/dotfiles/ghostty/config.bak |