chore: update for backup 89d79dd1
Steve · 2025-06-20 22:19 7 file(s) · +70 −2305
Brewfile +36 −14
1 +
tap "bbkane/tap"
1 2
tap "charmbracelet/tap"
3 +
tap "da-luce/astroterm"
2 4
tap "dustinblackman/tap"
3 5
tap "eddieantonio/eddieantonio"
4 6
tap "epk/epk"
5 7
tap "ethereum/ethereum"
6 8
tap "homebrew/bundle"
7 -
tap "homebrew/cask-fonts"
8 -
tap "homebrew/cask-versions"
9 9
tap "homebrew/services"
10 10
tap "joshmedeski/sesh"
11 11
tap "koekeishiya/formulae"
15 15
tap "ngrok/ngrok"
16 16
tap "nikitabobko/tap"
17 17
tap "orangekame3/tap"
18 -
tap "pinatacloud/files-cli"
19 -
tap "pinatacloud/pinata-go-cli"
18 +
tap "pinatacloud/ipfs-cli"
20 19
tap "samtay/tui"
21 20
tap "stevedylandev/mast-cli"
22 21
tap "stevedylandev/radicalize"
24 23
tap "tinted-theming/tinted"
25 24
tap "universal-ctags/universal-ctags"
26 25
tap "vrypan/fargo"
26 +
tap "vrypan/farma"
27 27
brew "age"
28 +
brew "aichat"
28 29
brew "openssl@3"
29 30
brew "readline"
30 31
brew "aircrack-ng"
34 35
brew "bash"
35 36
brew "libssh2"
36 37
brew "bat"
38 +
brew "biome"
37 39
brew "btop"
38 -
brew "python@3.13"
39 40
brew "glib"
40 41
brew "cairo"
41 42
brew "gmp"
42 43
brew "emacs"
43 44
brew "cask"
44 45
brew "cloc"
46 +
brew "cloudflared"
45 47
brew "cmake"
46 48
brew "cmatrix"
47 49
brew "cocoapods"
48 50
brew "cowsay"
49 51
brew "curl"
52 +
brew "python@3.13"
50 53
brew "docutils"
51 54
brew "dua-cli"
55 +
brew "exiftool"
52 56
brew "eza"
53 57
brew "fastfetch"
58 +
brew "fastlane"
54 59
brew "fd"
55 60
brew "harfbuzz"
56 61
brew "leptonica"
57 -
brew "libarchive"
58 62
brew "libass"
59 63
brew "ffmpeg"
60 64
brew "figlet"
62 66
brew "fish"
63 67
brew "fisher"
64 68
brew "fnm"
69 +
brew "libtool"
70 +
brew "woff2"
71 +
brew "fontforge"
65 72
brew "fzf"
66 73
brew "gh"
67 74
brew "git"
69 76
brew "git-delta"
70 77
brew "glow"
71 78
brew "gnupg"
72 -
brew "go"
73 79
brew "goreleaser"
74 80
brew "gum"
75 81
brew "htop"
76 82
brew "httpie"
77 83
brew "hugo"
84 +
brew "imagemagick"
78 85
brew "ipfs"
79 86
brew "jq"
80 87
brew "lazygit"
81 88
brew "libiconv"
82 89
brew "libpq", link: true
83 -
brew "libtool"
90 +
brew "librsvg"
84 91
brew "llvm"
85 92
brew "llvm@17"
86 93
brew "lsd"
94 +
brew "lua-language-server"
87 95
brew "mods"
96 +
brew "monero"
88 97
brew "mutt"
89 98
brew "neofetch"
90 99
brew "neovim"
91 100
brew "nmap"
92 101
brew "nushell"
102 +
brew "ollama"
93 103
brew "pnpm"
104 +
brew "podman"
105 +
brew "podman-compose"
94 106
brew "ripgrep"
107 +
brew "rust-analyzer"
108 +
brew "socat"
95 109
brew "starship"
96 110
brew "stow"
97 111
brew "telnet"
98 112
brew "tmux"
99 113
brew "tree"
114 +
brew "tty-clock"
115 +
brew "typescript-language-server"
100 116
brew "watchman"
101 117
brew "wget"
102 -
brew "woff2"
118 +
brew "xh"
103 119
brew "yarn"
104 120
brew "yazi"
121 +
brew "yt-dlp"
122 +
brew "zola"
105 123
brew "zoxide"
124 +
brew "bbkane/tap/fling"
125 +
brew "da-luce/astroterm/astroterm"
106 126
brew "joshmedeski/sesh/sesh"
107 127
brew "mitchellh/gon/gon"
108 -
brew "stevedylandev/mast-cli/mast-cli"
109 128
brew "stevedylandev/radicalize/radicalize"
110 129
brew "tinted-theming/tinted/tinty"
111 130
brew "vrypan/fargo/fargo"
131 +
brew "vrypan/farma/farma"
112 132
cask "1password-cli"
113 133
cask "affinity-designer"
114 134
cask "alacritty"
135 +
cask "audacity"
115 136
cask "balenaetcher"
116 137
cask "bartender"
117 138
cask "brave-browser"
118 139
cask "discord"
119 -
cask "edex-ui"
120 -
cask "fing-cli"
140 +
cask "docker"
121 141
cask "firefox"
122 142
cask "font-hack-nerd-font"
123 143
cask "font-sf-mono-nerd-font"
124 -
cask "git-credential-manager"
144 +
cask "ghostty"
125 145
cask "git-credential-manager"
126 146
cask "google-chrome"
147 +
cask "inkscape"
127 148
cask "iterm2"
128 149
cask "loop"
129 150
cask "magicavoxel"
132 153
cask "numi"
133 154
cask "obs"
134 155
cask "obsidian"
156 +
cask "postico"
135 157
cask "postman"
136 -
cask "rio"
137 158
cask "spaceid"
138 159
cask "spotify"
139 160
cask "steam"
144 165
cask "visual-studio-code"
145 166
cask "wezterm"
146 167
cask "zoom"
168 +
cask "zulu@17"
147 169
vscode "adamsome.vscode-theme-gruvbox-minor"
148 170
vscode "antfu.icons-carbon"
149 171
vscode "arcticicestudio.nord-visual-studio-code"
btop/btop.conf +2 −2
57 57
proc_sorting = "cpu lazy"
58 58
59 59
#* Reverse sorting order, True or False.
60 -
proc_reversed = False
60 +
proc_reversed = True
61 61
62 62
#* Show processes as a tree.
63 63
proc_tree = True
69 69
proc_gradient = True
70 70
71 71
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
72 -
proc_per_core = False
72 +
proc_per_core = True
73 73
74 74
#* Show process memory as bytes instead of percent.
75 75
proc_mem_bytes = True
cargofile (added) +13 −0
1 +
avm v0.30.1 (https://github.com/coral-xyz/anchor#8eec2e3b):
2 +
    anchor
3 +
    avm
4 +
create-gpui-app v0.1.5:
5 +
    create-gpui-app
6 +
du-dust v1.2.0:
7 +
    dust
8 +
lazy-etherscan v0.1.1:
9 +
    lazy-etherscan
10 +
lstr v0.2.0:
11 +
    lstr
12 +
postman2openapi-cli v1.2.1:
13 +
    postman2openapi
ghostty/config +1 −61
1 -
font-family = BerkeleyMono Nerd Font
2 -
font-family-bold = BerkelyMono Nerd Font
3 -
font-family-italic = BerkeleyMono Nerd Font
4 -
font-family-bold-italic = BerkeleyMono Nerd Font
5 -
font-size = 14
6 -
7 -
confirm-close-surface = false
8 -
clipboard-read = allow
9 -
clipboard-write = allow
10 -
mouse-hide-while-typing = true
11 -
macos-titlebar-style = hidden
12 -
macos-window-shadow = false
13 -
window-padding-x = 6
14 -
window-padding-balance = true
15 -
window-save-state = never
16 -
window-inherit-working-directory = false
17 -
window-width = 85
18 -
window-height = 30
19 -
20 -
keybind = global:opt+i=toggle_quick_terminal
21 -
22 -
# Icon
23 -
macos-icon = custom-style
24 -
macos-icon-frame = plastic
25 -
macos-icon-screen-color = #000000
26 -
macos-icon-ghost-color = #E78B52
27 -
28 -
# Scheme: Black Metal (Bathory)
29 -
# Generated by Ghostty Base16 Converter
30 -
background = #000000
31 -
foreground = #ffffff
32 -
33 -
selection-background = #222222
34 -
selection-foreground = #000000
35 -
36 -
palette = 0=#000000
37 -
palette = 1=#5f8787
38 -
palette = 2=#fbcb97
39 -
palette = 3=#e78a53
40 -
palette = 4=#888888
41 -
palette = 5=#999999
42 -
palette = 6=#aaaaaa
43 -
palette = 7=#c1c1c1
44 -
palette = 8=#333333
45 -
palette = 9=#5f8787
46 -
palette = 10=#fbcb97
47 -
palette = 11=#e78a53
48 -
palette = 12=#888888
49 -
palette = 13=#999999
50 -
palette = 14=#aaaaaa
51 -
palette = 15=#c1c1c1
52 -
palette = 16=#aaaaaa
53 -
palette = 17=#444444
54 -
palette = 18=#121212
55 -
palette = 19=#222222
56 -
palette = 20=#999999
57 -
palette = 21=#999999
58 -
59 -
auto-update-channel = stable
60 -
click-repeat-interval = 500
61 -
command = /opt/homebrew/bin/nu
1 +
/Users/stevedylandev/dotfiles/ghostty/config
ghostty/config.bak +1 −2222
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
nushell/env.nu +1 −0
73 73
path add ~/.sp1/bin
74 74
path add ~/.aztec/bin
75 75
path add ~/.nargo/bin
76 +
path add ~/.helios/bin
76 77
$env.ANDROID_HOME = "~/Library/Android/sdk"
77 78
path add ~/Library/Android/sdk/emulator
78 79
path add ~/Library/Android/sdk/platform-tools
zed/settings.json +16 −6
1 1
{
2 +
	"ssh_connections": [
3 +
		{
4 +
			"host": "jetson-local",
5 +
			"projects": [
6 +
				{
7 +
					"paths": ["/home/steve/Developer"]
8 +
				}
9 +
			]
10 +
		}
11 +
	],
2 12
	"edit_predictions": {
3 13
		"mode": "subtle",
4 14
		"copilot": {
149 159
		"default_profile": "steve",
150 160
		"default_model": {
151 161
			"provider": "anthropic",
152 -
			"model": "claude-3-7-sonnet-latest"
162 +
			"model": "claude-sonnet-4-latest"
153 163
		},
154 164
		"version": "2",
155 165
		"button": false,
166 176
			"formatter": "language_server"
167 177
		}
168 178
	},
169 -
	// "formatter": {
170 -
	// 	"language_server": {
171 -
	// 		"name": "biome"
172 -
	// 	}
173 -
	// },
179 +
	"formatter": {
180 +
		"language_server": {
181 +
			"name": "biome"
182 +
		}
183 +
	},
174 184
	"lsp": {
175 185
		"biome": {
176 186
			"settings": {