Commit Graph

16128 Commits

Author SHA1 Message Date
Leah Amelia Chen
96848d792e config: clear command-palette-entry like keybind (#12682)
After #1368, `command-palette-entry=` will no longer clear the entries
like the documentation says. Since i couldn't find an existing issue or
discussion about this, I assume no one is actually using it. So I put
1.4.0 here, lemme know if you want to change it to 1.3.2.

> I basically copied the `keybind` parsing code and doc.
2026-05-15 03:27:07 +09:00
Lukas
13ca032b1d config: clear command-palette-entry like keybind
After #1368, `command-palette-entry=` will no longer clear the entries like the documentation says. Since i couldn't find an existing issue or discussion about this, I assume no one is actually using it. So I put 1.4.0 here, lemme know if you want to change it to 1.3.2.

> I basically copied the `keybind` parsing code and doc.
2026-05-14 19:43:08 +02:00
ghostty-vouch[bot]
47382f8dcb Update VOUCHED list (#12680)
Triggered by
[comment](https://github.com/ghostty-org/ghostty/issues/12678#issuecomment-4452472142)
from @trag1c.

Denounce: @zaviro

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-14 16:15:46 +00:00
ghostty-vouch[bot]
b23d567cd8 Update VOUCHED list (#12675)
Triggered by
[comment](https://github.com/ghostty-org/ghostty/issues/12674#issuecomment-4445057781)
from @trag1c.

Vouch: @B1NAR10

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-13 20:43:34 +00:00
Mitchell Hashimoto
b0f8276658 build(deps): bump cachix/cachix-action from 1eb2ef646ac0255473d23a5907ad7b04ce94065c to 5f2d7c5294214f71b873db4b969586b980625e71 (#12651)
Bumps [cachix/cachix-action](https://github.com/cachix/cachix-action)
from 1eb2ef646ac0255473d23a5907ad7b04ce94065c to
5f2d7c5294214f71b873db4b969586b980625e71.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/cachix/cachix-action/blob/master/RELEASE.md">cachix/cachix-action's
changelog</a>.</em></p>
<blockquote>
<h1>Release</h1>
<ol>
<li>
<p>Create and push a new tag:</p>
<pre lang="console"><code>git tag v17
git push origin v17
</code></pre>
</li>
<li>
<p>Wait for CI to pass.</p>
</li>
<li>
<p><a href="https://github.com/cachix/cachix-action/releases/new">Create
a release</a> for the new tag.</p>
</li>
<li>
<p>Move the major version tag to the latest release:</p>
<pre lang="console"><code>git tag -fa v17
git push origin v17 --force
</code></pre>
</li>
</ol>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="5f2d7c5294"><code>5f2d7c5</code></a>
fix: await main functions</li>
<li><a
href="4ee54539d7"><code>4ee5453</code></a>
rebuilt dist</li>
<li><a
href="9f82c7e332"><code>9f82c7e</code></a>
fix: ensure that the post-build hook never fails</li>
<li><a
href="a593539ec5"><code>a593539</code></a>
ci: add a workflow to auto-bump version in README</li>
<li><a
href="8d6d4b9006"><code>8d6d4b9</code></a>
docs: add release and contributing docs</li>
<li><a
href="6505427c13"><code>6505427</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/cachix-action/issues/213">#213</a>
from jleroux98/update-readme</li>
<li><a
href="5941c26199"><code>5941c26</code></a>
use regular tags</li>
<li><a
href="80a630b9fc"><code>80a630b</code></a>
update tags</li>
<li>See full diff in <a
href="1eb2ef646a...5f2d7c5294">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
2026-05-11 06:54:27 -07:00
ghostty-vouch[bot]
64131dcd41 Update VOUCHED list (#12656)
Triggered by [discussion
comment](https://github.com/ghostty-org/ghostty/discussions/12616#discussioncomment-16876564)
from @pluiedev.

Vouch: @00JCIV00

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-11 08:07:48 +00:00
ghostty-vouch[bot]
611525ac3f Update VOUCHED list (#12655)
Triggered by [discussion
comment](https://github.com/ghostty-org/ghostty/discussions/12618#discussioncomment-16876561)
from @pluiedev.

Vouch: @thirstycrow

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-11 08:07:26 +00:00
ghostty-vouch[bot]
4c6859447c Update VOUCHED list (#12654)
Triggered by [discussion
comment](https://github.com/ghostty-org/ghostty/discussions/12650#discussioncomment-16876487)
from @pluiedev.

Vouch: @athaapa

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-11 08:01:15 +00:00
dependabot[bot]
b3c1f754ad build(deps): bump cachix/cachix-action
Bumps [cachix/cachix-action](https://github.com/cachix/cachix-action) from 1eb2ef646ac0255473d23a5907ad7b04ce94065c to 5f2d7c5294214f71b873db4b969586b980625e71.
- [Release notes](https://github.com/cachix/cachix-action/releases)
- [Changelog](https://github.com/cachix/cachix-action/blob/master/RELEASE.md)
- [Commits](1eb2ef646a...5f2d7c5294)

---
updated-dependencies:
- dependency-name: cachix/cachix-action
  dependency-version: 5f2d7c5294214f71b873db4b969586b980625e71
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-11 00:28:49 +00:00
ghostty-vouch[bot]
ce6a00bfbf Update VOUCHED list (#12647)
Triggered by
[comment](https://github.com/ghostty-org/ghostty/issues/12644#issuecomment-4415471290)
from @jcollie.

Denounce: @f1813483-netizen

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-10 14:02:12 +00:00
Jon Parise
e3e9b51b79 macos: simplify workingDirectory setter (#12639)
This is a minor improvement to the computed property's `set` logic: we
can just use `.map {}` to unify the two optional paths.
2026-05-09 15:01:45 -04:00
Jon Parise
2b48045731 macos: simplify workingDirectory setter
This is a minor improvement to the computed property's `set` logic: we
can just use `.map {}` to unify the two optional paths.
2026-05-09 14:37:43 -04:00
kat
a330ee93e8 i18n: add Basque (eu) translation (#12544)
Same as with icelandic (#12301) we may be even fewer than them but let's
have this translated into Basque.

I also volunteer for the basque translation team.
2026-05-09 16:12:57 +00:00
Mitchell Hashimoto
4bd8fa1e3e macOS: normalize working directory paths with FilePath (#12614)
This fixes for
[Nushell](f342d8acfa/crates/nu-protocol/src/engine/engine_state.rs (L1012))
when opening Ghostty via Finder service and Shortcuts, also makes path
parsing more robust in AppleScript.

<img width="976" height="690" alt="image"
src="https://github.com/user-attachments/assets/d3c19481-39ce-4797-ba31-d431af16651d"
/>
2026-05-09 08:17:29 -07:00
Lukas
607152ec6d macOS: normalize working directory paths with FilePath
This fixes for nuShell when opening Ghostty via Finder service and Shortcuts, also makes path parsing more robust in AppleScript.
2026-05-09 12:47:46 +02:00
Mikel Larreategi
ec145bca9f Fix translation errors in eu 2026-05-08 19:18:09 +02:00
ghostty-vouch[bot]
063ac3ecc5 Update VOUCHED list (#12613)
Triggered by
[comment](https://github.com/ghostty-org/ghostty/issues/12612#issuecomment-4395645191)
from @trag1c.

Vouch: @raphamorim

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-07 08:56:04 +00:00
ghostty-vouch[bot]
0deaac08ed Update VOUCHED list (#12606)
Triggered by
[comment](https://github.com/ghostty-org/ghostty/issues/12604#issuecomment-4392933026)
from @jcollie.

Vouch: @mohshami

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-06 23:25:11 +00:00
kat
f9a9d33b3a docs(input): add documentation for missing action parameters (#12579)
### AI Disclosure

Claude generated all the commits, I reviewed it and created this PR
2026-05-05 08:59:39 +00:00
Lukas
5874ce633c Apply suggestions from code review
Co-authored-by: kat <65649991+00-kat@users.noreply.github.com>
Co-authored-by: Lukas <134181853+bo2themax@users.noreply.github.com>
2026-05-05 09:47:06 +02:00
Jeffrey C. Ollie
ac48a9b15b build(deps): bump cachix/install-nix-action from 31.10.5 to 31.10.6 (#12584)
Bumps
[cachix/install-nix-action](https://github.com/cachix/install-nix-action)
from 31.10.5 to 31.10.6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/cachix/install-nix-action/releases">cachix/install-nix-action's
releases</a>.</em></p>
<blockquote>
<h2>v31.10.6</h2>
<h2>What's Changed</h2>
<ul>
<li>nix: 2.34.6 -&gt; 2.34.7 by <a
href="https://github.com/github-actions"><code>@​github-actions</code></a>[bot]
in <a
href="https://redirect.github.com/cachix/install-nix-action/pull/275">cachix/install-nix-action#275</a>
<strong><a
href="https://github.com/NixOS/nix/security/advisories/GHSA-vh5x-56v6-4368">GHSA-vh5x-56v6-4368</a></strong>:
Fixes a coroutine stack-to-heap overflow via unbounded recursion in the
NAR directory parser. <strong>Severity: High.</strong>
<strong><a
href="https://github.com/NixOS/nix/security/advisories/GHSA-gr92-w2r5-qw5p">GHSA-gr92-w2r5-qw5p</a></strong>:
Fixes an absolute path traversal vulnerability when unpacking archives
to disk. Severity: Moderate.</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/cachix/install-nix-action/compare/v31...v31.10.6">https://github.com/cachix/install-nix-action/compare/v31...v31.10.6</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8aa03977d8"><code>8aa0397</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/install-nix-action/issues/275">#275</a>
from cachix/create-pull-request/patch</li>
<li><a
href="21d0b780f0"><code>21d0b78</code></a>
nix: 2.34.6 -&gt; 2.34.7</li>
<li>See full diff in <a
href="ab739621df...8aa03977d8">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cachix/install-nix-action&package-manager=github_actions&previous-version=31.10.5&new-version=31.10.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
2026-05-04 23:10:07 -05:00
dependabot[bot]
81e399c412 build(deps): bump cachix/install-nix-action from 31.10.5 to 31.10.6
Bumps [cachix/install-nix-action](https://github.com/cachix/install-nix-action) from 31.10.5 to 31.10.6.
- [Release notes](https://github.com/cachix/install-nix-action/releases)
- [Changelog](https://github.com/cachix/install-nix-action/blob/master/RELEASE.md)
- [Commits](ab739621df...8aa03977d8)

---
updated-dependencies:
- dependency-name: cachix/install-nix-action
  dependency-version: 31.10.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-05 03:08:21 +00:00
Mitchell Hashimoto
563b085a4d Fix zero-width grapheme attachment during pending wrap (#12581)
This PR fixes an issue where a zero-width combining mark could attach to
the wrong cell when the preceding character was written in the final
column and the cursor had a pending wrap.

The test I added used to fail before the fix, but it passes now.
2026-05-04 14:37:31 -07:00
Mitchell Hashimoto
c2c0901ed0 Update iTerm2 colorschemes (#12562)
Upstream release:
https://github.com/mbadolato/iTerm2-Color-Schemes/releases/tag/release-20260427-153600-5e4d1de
2026-05-04 14:17:29 -07:00
Riccardo Mazzarini
c20fcfa1b4 Fix zero-width grapheme attachment during pending wrap
This PR fixes an issue where a zero-width combining mark could attach to
the wrong cell when the preceding character was written in the final
column and the cursor had a pending wrap.
2026-05-04 23:16:41 +02:00
Claude Opus 4.7
df44c6dd83 docs(input): document close_tab arguments 2026-05-04 18:39:02 +02:00
Claude Opus 4.7
b1b01741f6 docs(input): document navigate_search arguments 2026-05-04 16:57:56 +02:00
Claude Opus 4.7
248df8e7aa docs(input): document copy_to_clipboard arguments 2026-05-04 16:57:37 +02:00
ghostty-vouch[bot]
1547dd667a Update VOUCHED list (#12564)
Triggered by [discussion
comment](https://github.com/ghostty-org/ghostty/discussions/12563#discussioncomment-16793038)
from @jcollie.

Vouch: @agoodkind

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-03 02:02:22 +00:00
mitchellh
28767f62b1 deps: Update iTerm2 color schemes 2026-05-03 00:30:37 +00:00
Mitchell Hashimoto
f0bb6ed9ee macos: avoid replaying keys that commit preedit (#12547)
Refs #10460
Related: #12518

When an input method commits all or part of marked text during keyDown,
AppKit returns the committed text through insertText. Treat that as text
committed by the input method instead of replaying the original key
event to the terminal.

Previously this path only handled arrow-key commits specially. A
control-key shortcut that commits preedit text could still be encoded as
the original control input after composition, such as ctrl+j becoming
LF.

Send committed preedit text as a text-only event for any key that causes
the commit. Only replay arrow navigation keys that the existing Korean
IME handling expects, and keep plain left-arrow suppressed because
AppKit already leaves the caret in place.

Before:
<img width="375" height="375" alt="before"
src="https://github.com/user-attachments/assets/1073b93f-625a-4881-8f95-67adefe9d3da"
/>

After:
<img width="375" height="375" alt="after"
src="https://github.com/user-attachments/assets/3e4be2a5-4df9-4cdd-bc95-e178ca44c7e7"
/>

AI usage: OpenAI Codex helped investigate, implement, test, and refine
this change. I reviewed and tested the resulting code.
2026-05-02 08:24:42 -07:00
Mitchell Hashimoto
058d054fa2 libghostty-vt: support building on macOS with Nix (#12548)
Adds support for building libghostty-vt on macOS with Nix.

Tested on aarch64-darwin. Tests pass as well.

_Claude used to speed up debugging process. All comments, commit
messages, and final code authored by me._
2026-05-02 08:14:33 -07:00
ghostty-vouch[bot]
f27aa865af Update VOUCHED list (#12552)
Triggered by [discussion
comment](https://github.com/ghostty-org/ghostty/discussions/12542#discussioncomment-16785276)
from @00-kat.

Denounce: @MorgenGeluk

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-02 01:55:53 +00:00
Sander
7123bddc18 libghostty-vt: fix linker tests for darwin 2026-05-01 16:44:52 +02:00
Sander
d17e5517c7 libghostty-vt: fix dependency path resolution errors
Zigs build infra computes relatives paths to build-time executables that use `setCwd.`
The logic is purely lexical and doesn't take into account symlinks, unlike `chdir` that follows symlinks.

If the `cwd` resolves to a different depth, then the relative path becomes incorrect.
2026-05-01 16:44:52 +02:00
Sander
9df670cb55 build: skip unnecessary steps for libghostty-vt 2026-05-01 16:22:23 +02:00
Sander
a971bf16a0 libghostty-vt: support building nix derivation on darwin 2026-05-01 16:22:00 +02:00
Akinori Musha
d60a16c146 macos: avoid replaying keys that commit preedit
Refs #10460
Related: #12518

When an input method commits all or part of marked text during keyDown,
AppKit returns the committed text through insertText. Treat that as
text committed by the input method instead of replaying the original key
event to the terminal.

Previously this path only handled arrow-key commits specially. A
control-key shortcut that commits preedit text could still be encoded as
the original control input after composition, such as ctrl+j becoming LF.

Send committed preedit text as a text-only event for any key that causes
the commit. Only replay arrow navigation keys that the existing Korean
IME handling expects, and keep plain left-arrow suppressed because AppKit
already leaves the caret in place.

AI usage: OpenAI Codex helped investigate, implement, test, and refine
this change. I reviewed and tested the resulting code.
2026-05-01 23:18:42 +09:00
Mikel Larreategi
afb8fc7eb3 Update po/eu.po
Co-authored-by: kat <65649991+00-kat@users.noreply.github.com>
2026-05-01 13:51:01 +02:00
ghostty-vouch[bot]
35c0e2572f Update VOUCHED list (#12545)
Triggered by
[comment](https://github.com/ghostty-org/ghostty/issues/12544#issuecomment-4359105411)
from @trag1c.

Vouch: @erral

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-01 11:38:57 +00:00
Mikel Larreategi
cbd43fd483 feature: add basque translation 2026-05-01 13:34:23 +02:00
Mitchell Hashimoto
4dcb09ada0 macos: suppress control-char input while composing (#12518)
macos: suppress control-char input while composing

When AppKit delivers a single C0 control character during marked-text
composition, Ghostty should treat it as input consumed by the composing
state instead of forwarding it to the terminal.

This prevents control-key IME actions, such as Japanese input shortcuts
like ctrl+h/j/m/n, from leaking into the terminal while composition is
still active. Printable text and non-composing control input continue
through the normal key path.

Refs #10460
Related: #2628, #4539
Vouched in #12169

Testing:
- xcodebuild test -scheme Ghostty -destination platform=macOS
-only-testing:GhosttyTests/SurfaceViewAppKitTests
- Manually tested Japanese IME control-key shortcuts on macOS

AI usage:
- OpenAI Codex helped investigate, implement, test, and refine this
change. I reviewed and tested the resulting code.
2026-04-30 06:48:58 -07:00
Mitchell Hashimoto
95b56eb525 macOS: fix focus state when toggling command palette from inline title editor (#12524)
A bug found while recording that menu fix.
> ~~Will link to an open issue if there is one.~~

When toggling the command palette from the inline title editor, the
first responder state of the surface is changed quickly from true to
false.

`makeFirstResponder:` is called by the title editor when finishing, but
it happens **after** the command palette is shown, so the `focused` is
set to `true` while the command palette is shown. (Could be an AppKit
issue as well, since the resign is not called after but the command
palette is receiving `keyDown`.)

Since `performKeyEquivalent(with:)` is called on all of the subviews
until one of the return `true` so the paste action is consumed by the
surface instead of the first responder (command palette).
2026-04-30 06:42:12 -07:00
Mitchell Hashimoto
1623daf21c macOS: enable copy only when there’s actual selected text (#12521)
This matches the `peformable` definition and the default behaviors of
text editing on macOS.
2026-04-30 06:41:04 -07:00
Mitchell Hashimoto
25cd206e25 chore(macOS): remove Ghostty.xctestplan in project tree. (#12520)
`lastKnownFileType = file` will change to `text` if you checking out
branches with Xcode opened. But this was generated by Xcode in the first
place.

Anyway we don't need it to be in the project tree to run the tests, and
you can still open the test plan in scheme editor.
2026-04-30 06:39:09 -07:00
Mitchell Hashimoto
83ae47191a Fall back to Zig-bundled Darwin headers when an SDK can't be found (#12534)
Currently, cross to Darwin uses the Darwin headers bundled with Zig.
However, if you're running a build _on_ Darwin, an error is thrown if
the SDK can't be found, even though the bundled headers are still
available.

Now, we continue to search for and prefer the installed SDK, but if it
can't be found, we fall back to the bundled headers rather than failing
the build.
2026-04-30 06:38:41 -07:00
ghostty-vouch[bot]
f5664cd7b0 Update VOUCHED list (#12533)
Triggered by [discussion
comment](https://github.com/ghostty-org/ghostty/discussions/12530#discussioncomment-16765566)
from @jcollie.

Vouch: @Samasaur1

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-04-30 06:29:58 +00:00
Sam
f8f3b6f694 Fall back to Zig-bundled Darwin headers when an SDK can't be found
Currently, cross to Darwin uses the Darwin headers bundled with Zig.
However, if you're running a build _on_ Darwin, an error is thrown if
the SDK can't be found, even though the bundled headers are still
available.

Now, we continue to search for and prefer the installed SDK, but if it
can't be found, we fall back to the bundled headers rather than failing
the build.
2026-04-29 22:15:20 -07:00
Lukas
61595b5ec9 macOS: fix focus state when toggling command palette from inline title editor 2026-04-29 22:41:18 +02:00
Lukas
6fdca6bb53 macOS: enable copy only when there’s actual selected text 2026-04-29 19:33:09 +02:00