Commit Graph

17163 Commits

Author SHA1 Message Date
reo101
bfc200c854 i18n: update bg_BG translations 2026-08-14 02:06:43 +03:00
kat
0ee8a72970 i18n: add missing Polish translations + minor fixes (#13798) 2026-08-13 22:50:02 +00:00
kat
226a91658d Update Turkish translations (#13770) 2026-08-13 21:23:49 +00:00
Mitchell Hashimoto
119f4fd606 libghostty: minor C/C++ compatibility fixes (#13801)
Minor things as I was just auditing the state of our headers:

* Make sure all subheaders like `point.h` can be included standalone
* Support Clang/GCC extensions for typed enums if we can detect it
* Add missing structs to the `ghostty_type_json` function
* Fix `GHOSTTY_INIT_SIZED` for C++ mode
2026-08-13 12:56:32 -07:00
Mitchell Hashimoto
d930c74c4d libghostty: make sized initialization valid C++
Use an immediately invoked lambda for GHOSTTY_INIT_SIZED in C++ so the 
macro value-initializes every field before setting the ABI size. The 
previous C compound literal and designated initializer required compiler 
extensions in C++17 and C++20.

Keep the existing standard compound literal for C callers.
2026-08-13 12:39:25 -07:00
Mitchell Hashimoto
309440e07f libghostty: include all public structs in type JSON 2026-08-13 12:39:25 -07:00
Mitchell Hashimoto
e4ec4f0f95 libghostty: fix enum underlying type detection
Use fixed int enum types for C++11, C23, Clang's fixed-enum extension, 
and GCC 13 or newer. Previously only finalized C23 mode selected an explicit 
underlying type, leaving C++ and common older C modes with 
implementation-defined enum types.
2026-08-13 12:39:25 -07:00
Mitchell Hashimoto
51992ab01a libghostty: make device and point headers self-contained 2026-08-13 12:39:25 -07:00
trag1c
bedb6f2ff9 i18n: update es_BO translations for 1.4 (#13782)
issue #13766
2026-08-13 21:36:32 +02:00
trag1c
8fd2013a09 i18n: add missing Polish translations + minor fixes 2026-08-13 21:09:31 +02:00
ghostty-vouch[bot]
43fe699071 Update VOUCHED list (#13797)
Triggered by [discussion
comment](https://github.com/ghostty-org/ghostty/discussions/13796#discussioncomment-18006390)
from @jcollie.

Vouch: @sghng

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-13 18:55:20 +00:00
Mitchell Hashimoto
908961f8a9 terminal: size dynamic tabstops by bits (#13600)
Dynamic tabstop storage treated the number of columns above the inline
capacity as a byte count even though each byte stores eight stops. This
was wasteful, although in practice this is in the order of just bytes.

Round the extra column count up to whole storage units and grow the
existing slice with realloc, preserve existing stops.
2026-08-13 11:43:18 -07:00
Emir SARI
27d1642879 Update Turkish translations 2026-08-13 21:08:28 +03:00
ghostty-vouch[bot]
bb019cac27 Update VOUCHED list (#13794)
Triggered by [discussion
comment](https://github.com/ghostty-org/ghostty/discussions/13792#discussioncomment-18005749)
from @jcollie.

Vouch: @dmunozv04

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-13 18:03:40 +00:00
ghostty-vouch[bot]
47703753ad Update VOUCHED list (#13793)
Triggered by [discussion
comment](https://github.com/ghostty-org/ghostty/discussions/13791#discussioncomment-18005730)
from @jcollie.

Vouch: @dolzenko

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-13 18:03:00 +00:00
kat
9f8550b7f4 Add danish translations (#13538) 2026-08-13 17:33:38 +00:00
Miguel P Z
dd22396bd7 i18n: update es_BO translations for 1.4 2026-08-13 17:44:20 +03:00
kat
613050ddff i18n - Latvian translation of command palette, typo fixes and more natural translations (#11663) 2026-08-13 13:48:19 +00:00
Jeffrey C. Ollie
dab1b105b9 config: flush autogenerated config template (#13780)
Fixes #13774

Simple one-line fix: added the missing flush to the function.

- `zig build` passed
- `zig build test` passed
- Confirmed template appears after fix in `~/Library/Application
Support/com.mitchellh.ghostty/config.ghostty`

---
**AI Disclosure**

As mentioned before - I used OpenAI Codex (Sol 5.6 high):
a) to see if the template still exists & a function exists that tries to
use the template
b) find the moment in history this behavior changed.
Additionally:
c) reviewing my work and draft a commit message matching your preferred
style

I implemented the change, ran the build/test, manually verified the
behavior, and understand the fix.
2026-08-13 07:18:45 -05:00
carl villads
47136687d7 add command palette translations 2026-08-13 12:57:09 +02:00
Steven
98b828a023 config: flush autogenerated config template
#13774

Flush the buffered writer after writing the template so newly created
configuration files contain the expected guidance instead of being empty.
2026-08-13 12:50:32 +02:00
Carl Villads Priisholm
004f79e273 Merge branch 'ghostty-org:main' into localization-da 2026-08-13 08:47:16 +02:00
ghostty-vouch[bot]
d2c70a8c7b Update VOUCHED list (#13775)
Triggered by [discussion
comment](https://github.com/ghostty-org/ghostty/discussions/13773#discussioncomment-17996184)
from @jcollie.

Vouch: @steven-tk

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-13 02:34:01 +00:00
Jeffrey C. Ollie
c54ec80c55 gtk: Fix +new-window -e <command> inheriting forced shell integration from the running GTK application. Fixes #12378. (#13741)
## Summary 
Fix `+new-window -e <command>` inheriting forced shell integration from
the running GTK application.

Arguments after `-e` are now marked as an explicit command that requires
shell detection. That marker is propagated with the existing command
override to the new surface for both the current `+new-window` and
`+new-tab` GTK paths. When the override is applied, forced shell
integration becomes `detect`; an explicit `none` remains disabled.

This is scoped to the GTK `-e` path. It does not change the generic
forced shell-integration behavior, so configured integration continues
to support shell executables with non-standard names.

Fixes #12378.

## Root cause

The GTK IPC path replaced `config.command` for the new surface but
retained the running application's `shell-integration` value. `termio`
therefore treated an arbitrary explicit command such as Vim as the
forced shell and appended shell-specific arguments.

## AI usage

I used Hermes Agent (with ChatGPT 5.6) to help inspect the codebase,
trace the GTK command path, and draft parts of the implementation and
test. I manually reviewed and edited the changes, validated the behavior
and test results, and understand the affected code paths.
2026-08-12 20:03:26 -05:00
PRIHLOP
3650bef4ec Fix +new-window -e <command> inheriting forced shell integration from the running GTK application.
Arguments after -e are now marked as an explicit command that requires shell detection. That marker is propagated with the existing command override to the new surface for both the current +new-window and +new-tab GTK paths. When the override is applied, forced shell integration becomes detect; an explicit none remains disabled.

This is scoped to the GTK -e path. It does not change the generic forced shell-integration behavior, so configured integration continues to support shell executables with non-standard names.

Fixes #12378.
2026-08-13 01:22:15 +02:00
Mitchell Hashimoto
b2fa2931b6 Expose semantic prompt state through libghostty-vt (#13767)
## Summary

- Add `GHOSTTY_TERMINAL_DATA_CURSOR_AT_PROMPT` to expose semantic prompt
state through `libghostty-vt`.
- Reuse `Terminal.cursorIsAtPrompt()` rather than introducing separate
prompt tracking.

## Motivation

Ghostty already tracks whether the cursor is at a semantic prompt
through `Terminal.cursorIsAtPrompt()`. Exposing this query through
`libghostty-vt` lets downstream terminal consumers use Ghostty's
existing semantic prompt state without introducing separate tracking.

The query returns false when semantic prompt information is unavailable
or the alternate screen is active.

Discussed in https://github.com/ghostty-org/ghostty/discussions/13755.

## Testing

- `zig build test-lib-vt`
- `zig build test-lib-vt -Dtest-filter="get cursor_at_prompt"`
- `zig build -Demit-lib-vt`

## AI disclosure

Codex assisted with adding the `libghostty-vt` query and test,
addressing review feedback, running validation, and drafting this
description. I reviewed and edited the final code and description,
reviewed the validation results, and understand how the change interacts
with Ghostty's semantic prompt state.
2026-08-12 14:11:26 -07:00
Vishal Kapur
c80c373627 Remove internal surface prompt query 2026-08-12 13:24:21 -07:00
Ēriks Remess
491806fbeb i18n(lv): last two missing translations 2026-08-12 22:54:20 +03:00
Ēriks Remess
b3514d5621 i18n: Latvian translation. Additional strings. 2026-08-12 22:54:20 +03:00
Ēriks Remess
b104a3f0b3 i18n - Latvian translation of command palette, typo fixes and more natural translations 2026-08-12 22:54:20 +03:00
Vishal Kapur
bdb566068e Expose semantic prompt state through C APIs 2026-08-12 12:20:04 -07:00
Mitchell Hashimoto
d2eeb734b0 github: remove the issue templates (#13765)
They're not needed anymore since the "New issue" button is now
inaccessible to non-maintainers anyway.
2026-08-12 12:08:52 -07:00
trag1c
4a516fa393 github: remove the issue templates 2026-08-12 20:36:26 +02:00
Mitchell Hashimoto
99b877ad22 terminal: move cursor home after formatting tabstops (#13763)
Home the cursor after serializing custom tab stops, since formatting VT
expects it to be there for new lines.
2026-08-12 10:35:07 -07:00
Mitchell Hashimoto
e523cf8104 terminal: move cursor home after formatting tabstops
Home the cursor after serializing custom tab stops, since formatting VT
expects it to be there for new lines.
2026-08-12 10:26:57 -07:00
Leah Amelia Chen
1eaf457b18 gtk: add window title renaming (#10999)
Fixes #10469 for GTK.
2026-08-13 01:11:12 +08:00
Mitchell Hashimoto
7e3ddc2c89 macOS: fix swift warnings (#13762)
Rework for #12764
2026-08-12 08:09:56 -07:00
Lukas
cb7eaa059d macOS: silent weak ownership difference warnings
UpdateViewModel doesn't own the Task, we don't actually need it here.
2026-08-12 15:34:55 +02:00
Lukas
c78226bfae macOS: fix Main actor-isolated static property 'find' warnings 2026-08-12 15:34:54 +02:00
Mitchell Hashimoto
51ed437cd1 libghostty: functions to detect and write until stream ground state (#13761)
This adds new functions to both C and Zig to write VT data until the VT
parser reaches a "ground" state. The ground state is when the
parser/stream is stateless: between all partial UTF-8, OSC, CSI, etc.

This lets embedders safely interleave custom VT sequences from multiple
sources. A practical example is a standard terminal reading from a pty
that is then doing custom APC or something mid-stream for their emulator
client.

The new function is anywhere from 1% to 5% slower than normal VT write,
but that should be acceptable due to its special case. Normal VT writes
are unchanged.
2026-08-12 06:34:09 -07:00
Lukas
97ae257497 macOS: fix warnings in showUserNotification 2026-08-12 15:26:31 +02:00
Lukas
da8b171265 macOS: fix Sendable warning for UnsafeMutablePointer
Swift explicitly [marked UnsafeMutablePointer as non sendable](0568dbf903). Moving from `@unchecked @retroactive` to `nonisolated(unsafe)` is safe for us as per the previous comments
2026-08-12 15:26:30 +02:00
Mitchell Hashimoto
a69a591af1 libghostty: functions to detect and write until stream ground state
This adds new functions to both C and Zig to write VT data until the
VT parser reaches a "ground" state. The ground state is when the
parser/stream is stateless: between all partial UTF-8, OSC, CSI, etc.

This lets embedders safely interleave custom VT sequences from multiple
sources. A practical example is a standard terminal reading from a pty
that is then doing custom APC or something mid-stream for their emulator
client.
2026-08-12 06:26:29 -07:00
Mitchell Hashimoto
396166ecbe build: stop building Ghostty.xcframework for iOS (#13760)
Depends on https://github.com/ghostty-org/ghostty/pull/13759.

**Removing iOS for `Ghostty.xcframework` will affect other
[awesome-libghostty](https://github.com/Uzaaft/awesome-libghostty)
projects**, so I separated it.


### AI Disclosure

Claude ran the check and did the changes, I reviewed it.
2026-08-12 06:21:44 -07:00
Lukas
7a171895dd build: stop building Ghostty.xcframework for iOS
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-12 15:11:33 +02:00
Mitchell Hashimoto
4f39c506ef macOS: remove iOS target and clean up cross platform checks (#13759)
As discussed in Discord: Ghostty internal support for iOS is not
important and we verify iOS compatibility for `libghostty-vt` through
compilation.

Diff is **BIG**, but it contains mostly cleanup and didn't touch macOS's
implementation (except for some renaming).

### AI Disclosure

Claude did batch removal for me, I manually reviewed them and ran
locally for macOS.
2026-08-12 06:10:11 -07:00
Lukas
b112f3954c build: stop building Ghostty for iOS
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-12 14:00:03 +02:00
Lukas
daab08ec01 macOS: drop the cross-platform check and abstraction
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-12 14:00:03 +02:00
Lukas
400be4cc1d macOS: adjust file tree 2026-08-12 14:00:02 +02:00
Lukas
3901168b16 macOS: remove iOS target 2026-08-12 14:00:02 +02:00