Commit Graph

12140 Commits

Author SHA1 Message Date
Daniel Wennberg
6781fbda93 Measure ascii height and use to upper bound ic_width 2025-09-17 12:44:42 -07:00
Mitchell Hashimoto
0f0a61c38d selection scrolling should only depend on y value (#8686)
Fixes #8683

The selection scrolling logic should only depend on the y value of the
cursor position, not the x value. This presents unwanted scroll
behaviors, such as reversing the scroll direction which was just a side
effect of attempting to scroll tick to begin with.
2025-09-16 16:37:31 -07:00
Mitchell Hashimoto
4f47138ea3 selection scrolling should only depend on y value
Fixes #8683

The selection scrolling logic should only depend on the y value of the
cursor position, not the x value. This presents unwanted scroll
behaviors, such as reversing the scroll direction which was just a side
effect of attempting to scroll tick to begin with.
2025-09-16 16:33:49 -07:00
Mitchell Hashimoto
a098816709 font-size reloads at runtime if the font wasn't manually set (#8680)
This was a very common pitfall for users. The new logic will reload the
font-size at runtime, but only if the font wasn't manually set by the
user using actions such as `increase_font_size`, `decrease_font_size`,
or `set_font_size`. The `reset_font_size` action will reset our state to
assume the font-size wasn't manually set.

This was requested by the Omarchy project since their themes also can
adjust font size. It makes sense to me.

I also updated a comment about `font-family` not reloading at runtime;
this wasn't true even prior to this commit.
2025-09-16 15:45:23 -07:00
Mitchell Hashimoto
67992fde91 font-size reloads at runtime if the font wasn't manually set
This was a very common pitfall for users. The new logic will reload the
font-size at runtime, but only if the font wasn't manually set by the
user using actions such as `increase_font_size`, `decrease_font_size`,
or `set_font_size`. The `reset_font_size` action will reset our state
to assume the font-size wasn't manually set.

I also updated a comment about `font-family` not reloading at runtime;
this wasn't true even prior to this commit.
2025-09-16 15:39:34 -07:00
Mitchell Hashimoto
abec922d91 config: fix binding parsing to allow values containing = (#8675)
Fixes #8667

The binding `a=text:=` didn't parse properly.

This is a band-aid solution. It works and we have test coverage for it
thankfully. Longer term we should move the parser to a fully
state-machine based parser that parses the trigger first then the
action, to avoid these kind of things.
2025-09-16 13:57:22 -07:00
Mitchell Hashimoto
f7e622e8af config: fix binding parsing to allow values containing =
Fixes #8667

The binding `a=text:=` didn't parse properly.

This is a band-aid solution. It works and we have test coverage for it
thankfully. Longer term we should move the parser to a fully
state-machine based parser that parses the trigger first then the
action, to avoid these kind of things.
2025-09-16 13:53:16 -07:00
Mitchell Hashimoto
a32d4988f7 config: update theme names in docs (#8655)
They were renamed, see:
https://github.com/mbadolato/iTerm2-Color-Schemes/commits/master/ghostty/Rose%20Pine
2025-09-16 07:01:43 -07:00
Mitchell Hashimoto
b5b4b1be72 ci: no dmg to notarize for debug builds 2025-09-16 06:50:40 -07:00
Mitchell Hashimoto
07243789be docs: add lacking version information (#8653)
According to the release note
(https://ghostty.org/docs/install/release-notes/1-2-0#quick-terminal-size),
`quick-terminal-size` option is available since 1.2.0.
At first, I opened a PR in ghostty-org/website
(https://github.com/ghostty-org/website/pull/370). Then the bot
commented that the part was auto-generated content, so I created this
PR.
2025-09-16 06:05:19 -07:00
Jon Parise
ed0d1b8371 Bash shell-integration mark ssh wrapper as a function (#8647) 2025-09-16 07:55:49 -04:00
Simon Olofsson
fd03a146ba config: update theme names in docs
They were renamed, see: https://github.com/mbadolato/iTerm2-Color-Schemes/commits/master/ghostty/Rose%20Pine
2025-09-16 10:37:24 +02:00
カワリミ人形
a92a237b80 docs: add lacking version information
`quick-terminal-size` option is available since 1.2.0
2025-09-16 16:13:56 +09:00
Nilton Perim Neto
79f8ea07a1 Some portuguese translation updates (#8633)
Added some prepositions not previously added and
changed a word to be more accurate to the portuguese meaning

---------

Signed-off-by: Nilton Perim Neto <niltonperimneto@gmail.com>
2025-09-16 04:13:12 +00:00
rhodes-b
1397c76243 mark ssh shell-integration wrapper as a function this matches other features + fixes a case where users alias to some other command 2025-09-15 21:49:48 -05:00
Mitchell Hashimoto
0646cf8c1e Docs: add undo-timeout configuration setting name (#8639)
The action to undo commands had the configuration option missing

Related to: https://github.com/ghostty-org/website/pull/367
2025-09-15 14:02:14 -07:00
dmunozv04
c6143a1539 Docs: add undo-timeout configuration setting name 2025-09-15 22:55:01 +02:00
Mitchell Hashimoto
0e9d052e68 Pass config to splits in NewTerminalConfig (#8638)
Config contains the command, working directory, and environment
variables intended to be passed to the new split, but it looks like we
forgot to include it as an argument in this branch.

Discussion: https://github.com/ghostty-org/ghostty/discussions/8637
2025-09-15 13:18:40 -07:00
Caleb Hearth
ac9f3b88aa Pass config to splits in NewTerminalConfig
Config contains the command, working directory, and environment
variables intended to be passed to the new split, but it looks like we
forgot to include it as an argument in this branch.

Discussion: https://github.com/ghostty-org/ghostty/discussions/8637
2025-09-15 13:16:18 -06:00
Mitchell Hashimoto
8b00bd430d bump the version for development (#8635) 2025-09-15 11:04:57 -07:00
Mitchell Hashimoto
1201bc27d2 bump the version for development 2025-09-15 11:01:14 -07:00
Mitchell Hashimoto
3e38e284ca pin iTerm2 themes dependency (#8632)
There is an upstream bug where subsequent releases will nuke prior
released packages, resulting in 404s. Not good!
v1.2.0
2025-09-15 09:33:51 -07:00
Mitchell Hashimoto
693d64b5f8 pin iTerm2 themes dependency
There is an upstream bug where subsequent releases will nuke prior
released packages, resulting in 404s. Not good!
2025-09-15 09:31:09 -07:00
Mitchell Hashimoto
d4e62cb6d9 ci: source tarball needs to be uploaded to staged artifacts 2025-09-15 09:24:54 -07:00
Mitchell Hashimoto
6634afc358 ci: fix source tarball copy for release-tag 2025-09-15 09:12:37 -07:00
Mitchell Hashimoto
60aa53d5e2 Update iTerm2 colorschemes (#8631)
Upstream release:
https://github.com/mbadolato/iTerm2-Color-Schemes/releases/tag/release-20250915-154825-b4500fc
2025-09-15 08:57:55 -07:00
mitchellh
5e52659d51 deps: Update iTerm2 color schemes 2025-09-15 15:57:37 +00:00
Mitchell Hashimoto
895fb5f5db ci: release tip should also staple the dmg 2025-09-15 08:49:47 -07:00
Mitchell Hashimoto
d205e65c4d ci: update tag release to Xcode 26, sparkle to 2.7.3 (#8630)
Our built sparkle was always 2.7.3 recently, this just updates our CI
jobs for the auxiliary binaries.
2025-09-15 08:36:27 -07:00
Mitchell Hashimoto
c195cb054d ci: update tag release to Xcode 26, sparkle to 2.7.3 2025-09-15 08:33:17 -07:00
Mitchell Hashimoto
a426e22cb2 Set version to 1.2.0 (#8629) 2025-09-15 08:28:58 -07:00
Mitchell Hashimoto
510f4e474c Set version to 1.2.0 2025-09-15 08:25:54 -07:00
Mitchell Hashimoto
b58a761aba macos: disable NSAutoFillHeuristicController on macOS 26 (#8625)
Fixes #8616

macOS 26 (as of RC1) has some pathological performance bug where the
terminal becomes unusably slow after some period of time. We aren't 100%
sure what triggers the slowdown, but it is app-wide (new tabs or windows
don't resolve it) and Instruments traces point directly to
NSAutoFillHeuristicController. Specifically, to the `debounceTextUpdate`
selector.

This is all not documented as far as I can find and also not open
source, so I have no idea what's going on.

The best I can tell is that the NSAutoFillHeuristicController has
something to do with enabling heuristic-based autofill such as SMS auth
codes in text input fields. I don't know what is causing it to go
haywire.

SMS autofill is not desirable in a terminal app, nor is any of the other
automatic autofill in macOS I know of (contact info, passwords, etc.).
So, we can just disable it.

This default isn't documented but I found it via a strings dump of the
AppKit binary blob and comparing it to the disassembly to see how it is
used. In my limited testing, this seems to work around the problem.
2025-09-14 13:22:54 -07:00
Mitchell Hashimoto
431364cf16 macos: disable NSAutoFillHeuristicController on macOS 26
Fixes #8616

macOS 26 (as of RC1) has some pathological performance bug where the
terminal becomes unusably slow after some period of time. We aren't 100%
sure what triggers the slowdown, but it is app-wide (new tabs or windows
don't resolve it) and Instruments traces point directly to
NSAutoFillHeuristicController. Specifically, to the `debounceTextUpdate`
selector.

This is all not documented as far as I can find and also not open
source, so I have no idea what's going on.

The best I can tell is that the NSAutoFillHeuristicController has
something to do with enabling heuristic-based autofill such as SMS auth
codes in text input fields. I don't know what is causing it to go
haywire.

SMS autofill is not desirable in a terminal app, nor is any of the other
automatic autofill in macOS I know of (contact info, passwords, etc.).
So, we can just disable it.

This default isn't documented but I found it via a strings dump of the
AppKit binary blob and comparing it to the disassembly to see how it is
used. In my limited testing, this seems to work around the problem.
2025-09-14 13:05:01 -07:00
Mitchell Hashimoto
ab5cd0b709 ci: update-colorschemes sets GH token for gh 2025-09-14 07:07:27 -07:00
Mitchell Hashimoto
0c63946bdb termio: don't send extra OSC terminator for color reports (#8615)
Fixes #8613

I reiterate my comment in my own PR that this needs to be extracted so
we can unit test this. :)
2025-09-12 21:20:52 -07:00
Mitchell Hashimoto
d7c2a829bb termio: don't send extra OSC terminator for color reports
Fixes #8613

I reiterate my comment in my own PR that this needs to be extracted so
we can unit test this. :)
2025-09-12 21:19:16 -07:00
Mitchell Hashimoto
a387d6cc08 terminal: OSC 104 with no semicolon should parse as reset palette (#8614)
https://github.com/ghostty-org/ghostty/pull/8590#issuecomment-3287418867
2025-09-12 21:12:11 -07:00
Mitchell Hashimoto
a19aa0a398 terminal: OSC 104 with no semicolon should parse as reset palette
https://github.com/ghostty-org/ghostty/pull/8590#issuecomment-3287418867
2025-09-12 21:10:07 -07:00
Mitchell Hashimoto
b5c8c83468 macOS 26: Always set titlebarview background color for transparent title (#8611)
This fixes an issue where new tabs would not have the proper transparent
background set whilst in native fullscreen. This is because in native
fullscreen, the NSTitlebarView always is visible, so our guard was
preventing us from setting it before.
2025-09-12 20:49:30 -07:00
Mitchell Hashimoto
d813d82da1 macOS 26: Always set titlebarview background color for transparent title
This fixes an issue where new tabs would not have the proper transparent
background set whilst in native fullscreen. This is because in native
fullscreen, the NSTitlebarView always is visible, so our guard was
preventing us from setting it before.
2025-09-12 20:41:02 -07:00
Mitchell Hashimoto
bbf03cfa07 macOS 26: always reset titlebar tab constraints on frame change (#8610)
Fixes #8595

Whenever the titlebar frame changes, we should set up our constraints
again to force it to re-render properly.
2025-09-12 20:40:53 -07:00
Mitchell Hashimoto
eaaf5aa8cf macos: always reset titlebar tab constraints on frame change
Fixes #8595

Whenever the titlebar frame changes, we should set up our constraints
again to force it to re-render properly.
2025-09-12 20:14:31 -07:00
Mitchell Hashimoto
da7e3d1882 deps/ci: Use Ghostty-specific themes release (#8609)
Closes #8608 
iterm2_themes now provides terminal-specific releases, this reduces the
size of the dependency from 55MB->53kB.
- Update the `.github/workflows/update-colorschemes.yml` to track the
latest release and fetch the ghostty-specific theme archive.
2025-09-12 14:45:02 -07:00
azhn
ffa54dceea Update .github/workflows/update-colorschemes.yml to track the latest release and update the ghostty-specific download 2025-09-13 07:17:00 +10:00
azhn
928f5492dc Fix name of check-zig-cache.sh in documentation for updating the zig cache hash 2025-09-13 06:54:56 +10:00
azhn
e0350aa13f nix: update build.zig.zon.nix build.zig.zon.txt build.zig.zon.json flatpak/zig-packages.json 2025-09-13 06:53:18 +10:00
azhn
ac07cf5270 Use ghostty-specific themes release 2025-09-13 06:52:44 +10:00
Mitchell Hashimoto
74b204b6ce ci: disable trigger-snap for PRs (#8601)
Fixes #8568

This will hide snap issues from PRs which is not ideal but we can
address that in the future. We still run snap CI for main.

This more importantly ensures that CI can be green for maintainers to
merge.
2025-09-12 07:34:59 -07:00
Mitchell Hashimoto
dc7bf7e71f ci: disable trigger-snap for PRs
Fixes #8568

This will hide snap issues from PRs which is not ideal but we can
address that in the future. We still run snap CI for main.
2025-09-12 07:29:44 -07:00