Commit Graph

17670 Commits

Author SHA1 Message Date
Mitchell Hashimoto
b0481f5aa7 terminal/search: resume a complete search when history is prepended (#14123)
A search that had already exhausted a screen's PageList never picked up
history pages prepended afterwards by incremental snapshot restore.

The lower level PageListSearch and so on could already handle this, we
just needed to let it know that more history existed to search. This
fixes that.
2026-09-02 08:22:53 -07:00
Mitchell Hashimoto
06178eeaad terminal/search: resume a complete search when history is prepended
A search that had already exhausted a screen's PageList never picked up
history pages prepended afterwards by incremental snapshot restore.

The lower level PageListSearch and so on could already handle this, we
just needed to let it know that more history existed to search. This
fixes that.
2026-09-02 08:11:48 -07:00
Mitchell Hashimoto
dd167cc464 build(deps): bump flatpak/flatpak-github-actions/flatpak-builder from 6.7 to 6.8 (#14115)
Bumps
[flatpak/flatpak-github-actions/flatpak-builder](https://github.com/flatpak/flatpak-github-actions)
from 6.7 to 6.8.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/flatpak/flatpak-github-actions/releases">flatpak/flatpak-github-actions/flatpak-builder's
releases</a>.</em></p>
<blockquote>
<h2>v6.8</h2>
<ul>
<li>Add saveCache flag</li>
<li>Add ability to override artifact name</li>
<li>Add buildDebugBundle flag</li>
<li>Update tests, documentation and dependencies</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="7932741660"><code>7932741</code></a>
Update all dependencies and regenerate dist</li>
<li><a
href="09e3d61868"><code>09e3d61</code></a>
readme: Don't specify setting cache key to github.sha (<a
href="https://redirect.github.com/flatpak/flatpak-github-actions/issues/261">#261</a>)</li>
<li><a
href="23e622281a"><code>23e6222</code></a>
Update runtime versions and docker images to latest</li>
<li><a
href="a3ab43f581"><code>a3ab43f</code></a>
flatpak-builder: Add saveCache flag</li>
<li><a
href="8e357b1556"><code>8e357b1</code></a>
ci: Remove unnecessary 'needs' from debug bundle job</li>
<li><a
href="26e19caa3a"><code>26e19ca</code></a>
ci: Add test for artifact-name</li>
<li><a
href="06d246b4d5"><code>06d246b</code></a>
flatpak-builder: Add ability to override artifact name</li>
<li><a
href="a262264771"><code>a262264</code></a>
ci: Add job that uses build-debug-bundle</li>
<li><a
href="f7362292df"><code>f736229</code></a>
flatpak-builder: Add buildDebugBundle flag</li>
<li><a
href="3b10954431"><code>3b10954</code></a>
ci: Update actions to versions using Node 24</li>
<li>See full diff in <a
href="401fe28a83...7932741660">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=flatpak/flatpak-github-actions/flatpak-builder&package-manager=github_actions&previous-version=6.7&new-version=6.8)](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-09-02 08:10:25 -07:00
Mitchell Hashimoto
41004c6e22 build(deps): bump cachix/cachix-action from 5f2d7c5294214f71b873db4b969586b980625e71 to 38b082610b782e7e93e209c35fd730d399dee866 (#14116)
Bumps [cachix/cachix-action](https://github.com/cachix/cachix-action)
from 5f2d7c5294214f71b873db4b969586b980625e71 to
38b082610b782e7e93e209c35fd730d399dee866.
<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="38b082610b"><code>38b0826</code></a>
dev: cleanup tests and dev files</li>
<li><a
href="0fe030c286"><code>0fe030c</code></a>
dist</li>
<li><a
href="792dafcfd0"><code>792dafc</code></a>
deps: bump dependencies</li>
<li><a
href="b690244fb5"><code>b690244</code></a>
ci: improve Nix compatibility test coverage</li>
<li><a
href="f495f3ffa2"><code>f495f3f</code></a>
Merge pull request <a
href="https://redirect.github.com/cachix/cachix-action/issues/217">#217</a>
from cachix/dependabot/github_actions/actions/checkout-7</li>
<li><a
href="9ee3c77d45"><code>9ee3c77</code></a>
chore(deps): bump actions/checkout from 6 to 7</li>
<li>See full diff in <a
href="5f2d7c5294...38b082610b">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-09-02 08:10:17 -07:00
Mitchell Hashimoto
084316aa82 macOS: fix cascading without affecting other new-window behaviours (#14118)
Found another regression when investigating #14107 after the last fix.
This regression appears on macOS 15 and 26 as well: **New window by
Shortcuts.app or service menu while a window is visible would create a
tab**.

It appears that for `new-window` triggered by Shortcuts/Service, a small
delay is needed to avoid automatic tabbing. It's either removing
`NSWindow.userTabbingPreference == .always` completely or adding another
"delay" for cascading. The latter should be better.

Also fixes another cascading for `macos-titlebar-style = hidden`
previously missed.
2026-09-02 08:10:02 -07:00
Mitchell Hashimoto
0c1909d09a bash: upgrade to bash-preexec 0.7.0 (#14120)
https://github.com/rcaloras/bash-preexec/releases/tag/0.7.0

We only source bash-preexec for bash < 4.4, so most of this release is
inert for us: the PS0 function-substitution hook (bash >= 5.3) and the
array PROMPT_COMMAND handling (bash >= 5.1) are never reached. What we
do pick up is the simpler install string, per-prompt re-adjustment of
PROMPT_COMMAND when something else modifies it, preservation of $? and
$_ on early returns, and the first-command preexec fix.

We continue to carry one local modification: __bp_adjust_histcontrol
stays disabled in the DEBUG trap hook so the user's HISTCONTROL is
respected (#2269). The original justification was that we didn't use the
preexec command argument, which is no longer true because we use it for
the window title. The comment now explains the current reasoning: our
bash >= 4.4 integration also uses `history 1` without adjusting
HISTCONTROL and accepts the same inaccuracy for space-prefixed commands,
so the legacy path is kept consistent with it.

*AI Usage:* I asked Fable 5.1 to run a verification pass after my manual
upgrade, and it confirmed the expected behavior.
2026-09-02 08:09:51 -07:00
Mitchell Hashimoto
fec89f2541 macOS: fix flickering when creating new tab with glass style (#14121)
A regression from #13985.


https://github.com/user-attachments/assets/cc7d76d7-7d86-4566-921c-a6531ce4087d




### AI Disclosure

Used Claude to investigate, I reviewed and tested.
2026-09-02 08:09:41 -07:00
Lukas
aafacb1cb9 macOS: fix flickering when creating new tab with glass style
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-02 16:18:30 +02:00
Jon Parise
5d6615fc43 bash: upgrade to bash-preexec 0.7.0
https://github.com/rcaloras/bash-preexec/releases/tag/0.7.0

We only source bash-preexec for bash < 4.4, so most of this release is
inert for us: the PS0 function-substitution hook (bash >= 5.3) and the
array PROMPT_COMMAND handling (bash >= 5.1) are never reached. What we
do pick up is the simpler install string, per-prompt re-adjustment of
PROMPT_COMMAND when something else modifies it, preservation of $? and
$_ on early returns, and the first-command preexec fix.

We continue to carry one local modification: __bp_adjust_histcontrol
stays disabled in the DEBUG trap hook so the user's HISTCONTROL is
respected (#2269). The original justification was that we didn't use
the preexec command argument, which is no longer true because we use it
for the window title. The comment now explains the current reasoning:
our bash >= 4.4 integration also uses `history 1` without adjusting
HISTCONTROL and accepts the same inaccuracy for space-prefixed commands,
so the legacy path is kept consistent with it.
2026-09-02 08:40:38 -04:00
Lukas
a8b0855b63 macOS: fix cascading for HiddenTitlebarTerminalWindow 2026-09-02 11:16:41 +02:00
Lukas
310797df1d macOS: fix cascading without affecting other new-window behaviours 2026-09-02 11:05:48 +02:00
dependabot[bot]
7358067d1a build(deps): bump cachix/cachix-action
Bumps [cachix/cachix-action](https://github.com/cachix/cachix-action) from 5f2d7c5294214f71b873db4b969586b980625e71 to 38b082610b782e7e93e209c35fd730d399dee866.
- [Release notes](https://github.com/cachix/cachix-action/releases)
- [Changelog](https://github.com/cachix/cachix-action/blob/master/RELEASE.md)
- [Commits](5f2d7c5294...38b082610b)

---
updated-dependencies:
- dependency-name: cachix/cachix-action
  dependency-version: 38b082610b782e7e93e209c35fd730d399dee866
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-09-02 00:13:10 +00:00
dependabot[bot]
2ba75764f6 build(deps): bump flatpak/flatpak-github-actions/flatpak-builder
Bumps [flatpak/flatpak-github-actions/flatpak-builder](https://github.com/flatpak/flatpak-github-actions) from 6.7 to 6.8.
- [Release notes](https://github.com/flatpak/flatpak-github-actions/releases)
- [Commits](401fe28a83...7932741660)

---
updated-dependencies:
- dependency-name: flatpak/flatpak-github-actions/flatpak-builder
  dependency-version: '6.8'
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-09-02 00:12:59 +00:00
Mitchell Hashimoto
3c1ef5b32f macOS: clean up for #14106 (#14111)
I don't know what happened to me, but I didn't notice that I should
delete this🫪
2026-09-01 10:25:35 -07:00
Lukas
451e224c64 macOS: clean up for #14106 2026-09-01 19:18:44 +02:00
Mitchell Hashimoto
b7a680bc40 macOS: fix window cascading (#14106)
Regression from https://github.com/ghostty-org/ghostty/pull/13722
2026-09-01 10:12:07 -07:00
Mitchell Hashimoto
d2e2488ef7 build(deps): bump softprops/action-gh-release from 3.0.2 to 3.0.3 (#14098)
Bumps
[softprops/action-gh-release](https://github.com/softprops/action-gh-release)
from 3.0.2 to 3.0.3.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/softprops/action-gh-release/releases">softprops/action-gh-release's
releases</a>.</em></p>
<blockquote>
<h2>v3.0.3</h2>
<p><code>3.0.3</code> is a maintenance release with updated
dependencies. It also safely
classifies malformed GitHub API errors to avoid secondary failures (<a
href="https://redirect.github.com/softprops/action-gh-release/issues/822">#822</a>).</p>
<h2>What's Changed</h2>
<h3>Bug fixes 🐛</h3>
<ul>
<li>fix: safely classify GitHub API errors by <a
href="https://github.com/chenrui333"><code>@​chenrui333</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/822">softprops/action-gh-release#822</a></li>
</ul>
<h3>Other Changes 🔄</h3>
<ul>
<li>dependency updates</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md">softprops/action-gh-release's
changelog</a>.</em></p>
<blockquote>
<h2>3.0.3</h2>
<p><code>3.0.3</code> is a maintenance release with updated
dependencies. It also safely
classifies malformed GitHub API errors to avoid secondary failures (<a
href="https://redirect.github.com/softprops/action-gh-release/issues/822">#822</a>).</p>
<h2>What's Changed</h2>
<h3>Bug fixes 🐛</h3>
<ul>
<li>fix: safely classify GitHub API errors by <a
href="https://github.com/chenrui333"><code>@​chenrui333</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/822">softprops/action-gh-release#822</a></li>
</ul>
<h3>Other Changes 🔄</h3>
<ul>
<li>dependency updates</li>
</ul>
<h2>3.0.2</h2>
<p><code>3.0.2</code> is a patch release focused on release reliability
and compatibility. It
reuses existing draft releases when publishing prereleases, supports
replacing
release assets on Gitea, hardens streamed asset uploads, and provides
clearer
release-creation diagnostics. It also includes TypeScript, coverage, and
tooling
maintenance merged since <code>3.0.1</code>.</p>
<p>This release fixes <a
href="https://redirect.github.com/softprops/action-gh-release/issues/795">#795</a>,
<a
href="https://redirect.github.com/softprops/action-gh-release/issues/438">#438</a>,
and <a
href="https://redirect.github.com/softprops/action-gh-release/issues/803">#803</a>.
The upload transport hardening covers the
historical failure reported in <a
href="https://redirect.github.com/softprops/action-gh-release/issues/790">#790</a>,
although current hosted Node 24 runners did
not reproduce it naturally. The diagnostics work is related to <a
href="https://redirect.github.com/softprops/action-gh-release/issues/786">#786</a>
and does not
claim a reproducible release-creation fix.</p>
<h2>What's Changed</h2>
<h3>Exciting New Features 🎉</h3>
<ul>
<li>feat: improve release error reporting and test coverage by <a
href="https://github.com/chenrui333"><code>@​chenrui333</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/813">softprops/action-gh-release#813</a></li>
</ul>
<h3>Bug fixes 🐛</h3>
<ul>
<li>fix: publish existing draft releases as prereleases by <a
href="https://github.com/godfengliang"><code>@​godfengliang</code></a>
in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/801">softprops/action-gh-release#801</a></li>
<li>fix: upload small checksum assets reliably by <a
href="https://github.com/chenrui333"><code>@​chenrui333</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/815">softprops/action-gh-release#815</a></li>
<li>fix: replace existing release assets on Gitea by <a
href="https://github.com/chenrui333"><code>@​chenrui333</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/816">softprops/action-gh-release#816</a></li>
<li>fix: clarify release creation 404 errors by <a
href="https://github.com/chenrui333"><code>@​chenrui333</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/817">softprops/action-gh-release#817</a></li>
</ul>
<h3>Other Changes 🔄</h3>
<ul>
<li>chore(deps): upgrade TypeScript to 7 by <a
href="https://github.com/chenrui333"><code>@​chenrui333</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/812">softprops/action-gh-release#812</a></li>
<li>chore(deps): remove unused TypeScript tooling by <a
href="https://github.com/chenrui333"><code>@​chenrui333</code></a> in <a
href="https://redirect.github.com/softprops/action-gh-release/pull/814">softprops/action-gh-release#814</a></li>
<li>dependency, Node 24 pin, and CI maintenance merged since
<code>3.0.1</code></li>
</ul>
<h2>3.0.1</h2>
<ul>
<li>maintenance release with updated dependencies</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="efb35369e0"><code>efb3536</code></a>
release 3.0.3 (<a
href="https://redirect.github.com/softprops/action-gh-release/issues/840">#840</a>)</li>
<li><a
href="6441963a75"><code>6441963</code></a>
chore(deps): bump the npm group with 2 updates (<a
href="https://redirect.github.com/softprops/action-gh-release/issues/839">#839</a>)</li>
<li><a
href="e5ee6bc58a"><code>e5ee6bc</code></a>
chore(deps): bump esbuild from 0.28.1 to 0.28.2 in the npm group (<a
href="https://redirect.github.com/softprops/action-gh-release/issues/837">#837</a>)</li>
<li><a
href="d1e66170d3"><code>d1e6617</code></a>
chore(deps): bump undici from 6.27.0 to 6.28.0 (<a
href="https://redirect.github.com/softprops/action-gh-release/issues/831">#831</a>)</li>
<li><a
href="64037519ba"><code>6403751</code></a>
chore(deps): bump the npm group with 2 updates (<a
href="https://redirect.github.com/softprops/action-gh-release/issues/835">#835</a>)</li>
<li><a
href="7c7184b687"><code>7c7184b</code></a>
chore(deps): bump postcss from 8.5.19 to 8.5.25 (<a
href="https://redirect.github.com/softprops/action-gh-release/issues/833">#833</a>)</li>
<li><a
href="0f3f0d2943"><code>0f3f0d2</code></a>
chore(deps): bump brace-expansion from 5.0.8 to 5.0.9 (<a
href="https://redirect.github.com/softprops/action-gh-release/issues/832">#832</a>)</li>
<li><a
href="77fb938f2f"><code>77fb938</code></a>
chore(deps): bump prettier from 3.9.5 to 3.9.6 in the npm group (<a
href="https://redirect.github.com/softprops/action-gh-release/issues/830">#830</a>)</li>
<li><a
href="5a6f51711c"><code>5a6f517</code></a>
chore(deps): bump brace-expansion from 5.0.7 to 5.0.8 (<a
href="https://redirect.github.com/softprops/action-gh-release/issues/828">#828</a>)</li>
<li><a
href="a3c91c98f8"><code>a3c91c9</code></a>
chore(deps): bump the github-actions group with 2 updates (<a
href="https://redirect.github.com/softprops/action-gh-release/issues/825">#825</a>)</li>
<li>Additional commits viewable in <a
href="3d0d9888cb...efb35369e0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=softprops/action-gh-release&package-manager=github_actions&previous-version=3.0.2&new-version=3.0.3)](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-09-01 10:11:55 -07:00
Lukas
d4a5ff58b6 macOS: fix window cascading 2026-09-01 16:56:28 +02:00
ghostty-vouch[bot]
20abdb50a6 Update VOUCHED list (#14101)
Triggered by [discussion
comment](https://github.com/ghostty-org/ghostty/discussions/14100#discussioncomment-18229353)
from @jcollie.

Vouch: @jzillmann

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-09-01 06:55:46 +00:00
dependabot[bot]
38c984e676 build(deps): bump softprops/action-gh-release from 3.0.2 to 3.0.3
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 3.0.2 to 3.0.3.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](3d0d9888cb...efb35369e0)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: 3.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-09-01 00:20:45 +00:00
kat
81681158b1 Add Serbian translation (#13842)
## Summary
- Adds Serbian translations for both Cyrillic (`sr`) and Latin
(`sr@latin`) scripts, registered in `src/os/i18n_locales.zig` and
`CODEOWNERS`.
- `po/sr@latin.po` is generated from `po/sr.po` with `msgfilter
recode-sr-latin` and should not be translated by hand.
- Replaces the closed #13030; strings are rebased onto current `main`.

Cc @slowdub for a review.

EDIT: AI disclosure: I used Cursor (Grok 4.6) for mechanical repo work
only, not for writing the Serbian translations. The agent fetched
ghostty-org/ghostty, branched from current main, ran msgmerge on
po/sr.po against the template, generated po/sr@latin.po with msgfilter
recode-sr-latin, registered sr / sr@latin in src/os/i18n_locales.zig and
CODEOWNERS, rebased my three commits onto later main, pushed the branch,
and opened this PR (I had intended to open the PR myself, s***** thing
ignored my instructions). I translated and reviewed sr.po and the Latin
file is a recode of that catalog, not a separate translation since
Serbian Cyrillic can be perfectly transcoded to the Latin script via
[recode-sr-latin](https://linux.die.net/man/1/recode-sr-latin).
2026-08-31 21:23:47 +00:00
Mitchell Hashimoto
4b51f521d4 libghostty: add terminal search API (#14097)
This exposes the terminal search API through libghostty C and Zig APIs.

This was previously available through the Zig APIs but forced our
threading model. I've now extracted the full terminal search state to a
new `terminal.search.TerminalSearch` structure so threading isn't
forced. The C API is completely new.

## Example (C)

```c
GhosttySearch search;
ghostty_search_new(NULL, &search, terminal);

GhosttyString needle = { (const uint8_t *)"error", 5 };
ghostty_search_set(search, GHOSTTY_SEARCH_OPT_NEEDLE, &needle);
ghostty_search_run(search);

// Find bar chrome: "k of n"
size_t total, idx;
ghostty_search_get(search, GHOSTTY_SEARCH_DATA_TOTAL_MATCHES, &total);

// Enter: select the next match (wraps, scrolls the viewport if needed)
ghostty_search_set(search, GHOSTTY_SEARCH_OPT_SELECT_NEXT, NULL);
ghostty_search_get(search, GHOSTTY_SEARCH_DATA_SELECTED_INDEX, &idx);

ghostty_search_free(search);
```
2026-08-31 14:23:38 -07:00
Mitchell Hashimoto
76d9fcefef libghostty: set the search needle via ghostty_search_set, drop GhosttySearchOptions 2026-08-31 14:08:07 -07:00
Mitchell Hashimoto
674abd8a19 example: add c-vt-search demonstrating the terminal search C API 2026-08-31 13:49:55 -07:00
Mitchell Hashimoto
f9202919f7 libghostty: add ghostty_search_* terminal search C API 2026-08-31 13:49:25 -07:00
Mitchell Hashimoto
f0c918fc4b terminal/c: allow freeing a search and its terminal in any order 2026-08-31 13:48:56 -07:00
Марко М. Костић (Marko M. Kostić)
cdef14a1fd Remove X-Generator from the sr.po file 2026-08-31 22:48:41 +02:00
Mitchell Hashimoto
32601cd79a terminal/c: add search wrapper implementing the whole-terminal search API 2026-08-31 13:20:51 -07:00
Mitchell Hashimoto
149c9f562a terminal: extract whole-terminal search orchestration from the search thread 2026-08-31 13:19:14 -07:00
Mitchell Hashimoto
2c854a1aa4 freestanding support (#14076) 2026-08-31 13:17:43 -07:00
Марко М. Костић (Marko M. Kostić)
458f079f17 Use the informal form 2026-08-31 21:58:55 +02:00
Uzair Aftab
5e02d0014d ci: require freestanding libghostty-vt builds 2026-08-31 21:47:45 +02:00
Марко М. Костић (Marko M. Kostić)
8bf7e517f0 Regenerate sr@latin.po from sr.po 2026-08-31 20:50:03 +02:00
Марко М. Костић (Marko M. Kostić)
90f7759763 Fix HTML/URL acronyms as agreed 2026-08-31 20:48:54 +02:00
Марко М. Костић (Marko M. Kostić)
e8709b1f9e Merge remote-tracking branch 'upstream/main' into add-serbian-translation 2026-08-31 20:41:03 +02:00
Mitchell Hashimoto
c2906398be terminal: fix living item over-count in RefCountedSet.addWithId (#14081)
Reported in https://github.com/ghostty-org/ghostty/discussions/14064

I validated this myself manually. The zero-ref branch of
`addWithIdContext` incremented `living` unconditionally even if `upsert`
resolved the value to an item that was already alive under a different
ID.

This would cause `living` to be invalid for each time this happened and
the downstream effect was that `count()` drifted. I couldn't find any
crashing or invalid effect except that this caused requested style
memory to be over-provisioned.

cc @qwerasd205 since its ref counted set, but I did this work manually
❤️
2026-08-31 10:14:12 -07:00
Mitchell Hashimoto
f6113ea2f5 Implement needed modifications for issue #12600, more flexible copy-on-select and middle-click-action (#12604)
For middle-click-action
* Kept the option "primary-paste" instead of "paste-primary" to keep
backwards compatibility
* Added the option "clipboard-paste"

For copy-on-select
* Added the both, none and primary options

Updated config documentation

Note: No AI was used, Even though I don't know Zig, I looked at the code
and the modifications seemed easy enough

Closes #12600
2026-08-31 10:14:02 -07:00
Uzair Aftab
028af92ce3 terminal: clarify page allocator fallback 2026-08-31 16:27:38 +02:00
Uzair Aftab
fc7bfa60b4 ci: move freestanding build into test workflow 2026-08-31 16:26:40 +02:00
trag1c
d4d8f62262 i18n: adjust and extend Ukrainian translation (#13854) 2026-08-31 15:06:53 +02:00
Mohammad H. AlShami
e80ce2ed4c Fix build error 2026-08-31 15:07:11 +03:00
Mohammad H. AlShami
dfccdb2d4d Implement needed modifications for issue #12600
For middle-click-action
* Kept the option "primary-paste" instead of "paste-primary" to keep
backwards compatibility
* Added the option "clipboard-paste"

For copy-on-select
* Added the both, none and primary options

Updated config documentation

Run zig fmt

Move true/false options for copy-on-select to the compatibility handler

Update src/config/Config.zig

Co-authored-by: kat <65649991+00-kat@users.noreply.github.com>

Update src/config/Config.zig

Co-authored-by: kat <65649991+00-kat@users.noreply.github.com>

Update src/config/Config.zig

Co-authored-by: kat <65649991+00-kat@users.noreply.github.com>

Update src/config/Config.zig

Co-authored-by: kat <65649991+00-kat@users.noreply.github.com>

Update src/config/Config.zig

Co-authored-by: kat <65649991+00-kat@users.noreply.github.com>

Update src/config/Config.zig

Co-authored-by: kat <65649991+00-kat@users.noreply.github.com>

Update src/Surface.zig

Co-authored-by: kat <65649991+00-kat@users.noreply.github.com>

Update src/Surface.zig

Co-authored-by: kat <65649991+00-kat@users.noreply.github.com>

Update src/config/Config.zig

Co-authored-by: kat <65649991+00-kat@users.noreply.github.com>

Update src/config/Config.zig

Co-authored-by: kat <65649991+00-kat@users.noreply.github.com>

Update src/config/Config.zig

Co-authored-by: kat <65649991+00-kat@users.noreply.github.com>

Update src/config/Config.zig

Co-authored-by: kat <65649991+00-kat@users.noreply.github.com>

Update src/config/Config.zig

Co-authored-by: kat <65649991+00-kat@users.noreply.github.com>

Update src/Surface.zig

Co-authored-by: kat <65649991+00-kat@users.noreply.github.com>

Update src/Surface.zig

Co-authored-by: kat <65649991+00-kat@users.noreply.github.com>

Reorder switch items

Apply comment from kat

Remove redundent code
2026-08-31 10:28:47 +03:00
Mohammad AlShami
0254a7f06f Merge branch 'ghostty-org:main' into main 2026-08-31 10:28:47 +03:00
ghostty-vouch[bot]
e8aa098674 Update VOUCHED list (#14092)
Triggered by [discussion
comment](https://github.com/ghostty-org/ghostty/discussions/14091#discussioncomment-18212381)
from @pluiedev.

Denounce: @thomas-trijindev

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-31 03:00:47 +00:00
ghostty-vouch[bot]
ec3e384d2d Sync CODEOWNERS vouch list (#14090)
Sync CODEOWNERS owners with vouch list.

## Added Users

- @jakeriksen
- @Kleshzz

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-31 00:01:05 +00:00
Mohammad AlShami
0dc2032e6a Merge branch 'ghostty-org:main' into main 2026-08-31 01:40:26 +03:00
Mitchell Hashimoto
7fd93e09ca build: update Sparkle to 2.9.6 and pin SPM (#14082) 2026-08-30 13:55:20 -07:00
Uzair Aftab
10b7158e8c ci: cross-compile freestanding libghostty-vt 2026-08-30 17:06:39 +02:00
Mohammad AlShami
abac4c2cb8 Merge branch 'ghostty-org:main' into main 2026-08-30 17:52:18 +03:00
Jeffrey C. Ollie
8af6897c0a gtk: do not warn when gtk-xft-dpi is -1 (#14085)
Before this change, ghostty frequently logs the following warning, even
though a `gtk-xft-dpi` value of `-1` is valid and indicates default
scaling.

```
warning(gtk_ghostty_surface): gtk-xft-dpi has invalid value (-1), using default
```

From [the gtk
docs](https://docs.gtk.org/gtk4/property.Settings.gtk-xft-dpi.html):

> The font resolution, in 1024 * dots/inch.
>
> -1 to use the default value.
2026-08-30 04:11:12 -05:00