i18n: update pt_BR translations#10635
Merged
00-kat merged 6 commits intoghostty-org:mainfrom Mar 2, 2026
Merged
Conversation
25 tasks
Contributor
|
Three new strings have been merged since you opened this PR:
Please merge/rebase this PR and also translate them, thank you! I've written up more information at #10632 (comment). |
cc472ed to
589817a
Compare
Contributor
|
cc @silveirapf: not sure if you missed it, but this PR is currently awaiting a review from you. |
Contributor
MicaelJarniac
approved these changes
Mar 1, 2026
00-kat
approved these changes
Mar 2, 2026
lawrencecchen
added a commit
to manaflow-ai/ghostty
that referenced
this pull request
Mar 4, 2026
* macOS: remove dead tab title edit helper * macos: extract inline title editing to standalone file * macos: rename to TabTitleEditor * Update VOUCHED list (ghostty-org#10968) Triggered by [comment](ghostty-org#9932 (comment)) from @mitchellh. Vouch: @MrMage Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * macos: add AGENTS.md * ci: enable macOS caching (Zig, Xcode) Namespace now supports cache volumes on macOS. This enables caching for Zig and Xcode artifacts. We can't do Nix yet because we can't create `/nix` and there's a chicken/egg with how Nix installation works on macOS. I'm emailing Namespace support about it... But still, a big win for Zig and Xcode! * Update VOUCHED list (ghostty-org#10970) Triggered by [comment](ghostty-org#10767 (comment)) from @mitchellh. Unvouch: @prsweet Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Make top visual space for surface drag handles * Only show drag handle on hovered surface * Refine spacing and header usage This is 4pt header space, 12pt clickable frame height * Remove the top padding for macOS grab bar * renderer: added cursor style and visibility uniforms Specifically: iCurrentCursorStyle iPreviousCursorStyle iCurrentCursorVisible iPreviousCursorVisible Visibility calculated and updated independently from the typical cursor unifrom updates to preserve cursor style even when not in the viewport or set to be hidden * Update VOUCHED list (ghostty-org#10971) Triggered by [discussion comment](ghostty-org#10942) from @mitchellh. Vouch: @aalhendi Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update VOUCHED list (ghostty-org#10972) Triggered by [discussion comment](ghostty-org#10801) from @mitchellh. Vouch: @curtismoncoq Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * build(deps): bump namespacelabs/nscloud-setup from 0.0.10 to 0.0.11 Bumps [namespacelabs/nscloud-setup](https://github.com/namespacelabs/nscloud-setup) from 0.0.10 to 0.0.11. - [Release notes](https://github.com/namespacelabs/nscloud-setup/releases) - [Commits](namespacelabs/nscloud-setup@d1c6257...f378676) --- updated-dependencies: - dependency-name: namespacelabs/nscloud-setup dependency-version: 0.0.11 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * ci: update vouch to 1.4.1 * ci: point xcode to the mounted cache path by Namespace * macOS: use `NSDockTilePlugIn` to update app icons * macOS: stop cycling icons when AboutWindow is closed and start cycling with current icon * moving lots of files, removing unused stuff * macos: rename a bunch of files * i18n: Updated mk translations with new strings * macOS: update AppIcon encoding - make `ColorizedGhosttyIcon` codable - remove deprecated string encoding introduced in tip * ci: fix linting and delete non-useful tests * gtk: clean up title renaming and fix a small leak * update vouch to 1.4.2 * Update VOUCHED list (ghostty-org#10996) Triggered by [discussion comment](ghostty-org#10981 (comment)) from @mitchellh. Vouch: @Koranir Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * macos: move icon codable/equatable to extension * macos: icon tests * macos: various dock tile cleanups * ci: codesign DockTilePlugin * macOS: fix crash when adding tab from tab overview * Update VOUCHED list (ghostty-org#11007) Triggered by [discussion comment](ghostty-org#11006 (comment)) from @jcollie. Vouch: @nmggithub Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update VOUCHED list (ghostty-org#11012) Triggered by [comment](ghostty-org#11010 (comment)) from @jcollie. Vouch: @douglance Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * macos: just some textual cleanup * Remove ObjCExceptionCatcher from iOS target * update comments * Update VOUCHED list (ghostty-org#11021) Triggered by [discussion comment](ghostty-org#11014 (comment)) from @mitchellh. Vouch: @amadeus Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * macos: pass last focused surface as env, use for focus detection Fixes ghostty-org#10935 This is a more robust way to detect "is my surface focused" because that question usually means "is my surface the last focused surface" if a _different_ surface is not focused. We already have used this pattern all over but we should extend it to SwiftUI too. * apprt/gtk: fix SIGSEGV on ImGui GLArea re-realize Fixes ghostty-org#10406 ImGui_ImplOpenGL3_Shutdown() calls imgl3wShutdown() which dlcloses the GL library handles but does not zero out the imgl3w function pointer table (imgl3wProcs). When a GLArea is re-realized (e.g. during reparenting), ImGui_ImplOpenGL3_Init() calls ImGui_ImplOpenGL3_InitLoader() which checks "if (glGetIntegerv == nullptr)". Since the stale pointers are non-null, it skips re-initialization. The next GL call through a dangling function pointer causes a SIGSEGV. Fix this by introducing ImGui_ImplOpenGL3_ShutdownWithLoaderCleanup() which calls the normal shutdown and then zeroes the imgl3wProcs table, forcing the next Init to reload GL function pointers via imgl3wInit(). Also properly destroy the ImGui context and reset widget state in glAreaUnrealize so re-realize starts clean. This was extra but was probably leaking memory. * macos: add Weak to iOS build * Fix Palette.C array size typo: [265] → [256] The C struct Palette.C declared colors as [265]Color.C, but the terminal palette is 256 colors (terminal.color.Palette = [256]RGB) and the C header ghostty_config_palette_s correctly uses colors[256]. The mismatch causes ghostty_config_get to write 265×3 = 795 bytes through a pointer sized for 256×3 = 768 bytes, producing a 27-byte buffer overflow. On macOS Release builds with stack protector enabled, this triggers __stack_chk_fail → SIGABRT on launch. * Update VOUCHED list (ghostty-org#11028) Triggered by [comment](ghostty-org#11027 (comment)) from @jcollie. Vouch: @markhuot Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * macos: fix glass tinting when theme changes * zsh: fix ssh-terminfo shell integration to not interpret escape characters * pkg/dcimgui: only add the OpenGL3 shutdown helper if backend enabled * Update VOUCHED list (ghostty-org#11032) Triggered by [discussion comment](ghostty-org#11031 (comment)) from @mitchellh. Vouch: @mihi314 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * macos: style changes * apprt: show title override in command palette jump commands * Update macos/Sources/Features/Command Palette/TerminalCommandPalette.swift Co-authored-by: Lukas <134181853+bo2themax@users.noreply.github.com> * fix: restore terminalTitle variable removed in previous edit * apprt/gtk: use new get effective title * macos: update to Sparkle 2.9 * macos: update AGENTS.md * macos: use combine to coalesce bell values * macos: try to clean up Appdelegate combine mess * macos: further simplication of AppDelegate bell state * macos: clean up badge request state * macos: lint * macos: show the notification count number in the badge * build: don't build OpenGL support into imgui on iOS * i18n: add missing nb_NO strings * i18n: rename `.po` files This seems to be the defacto standard for naming `.po` files. See the GTK source code [1] as an example. I was unable to find any definitive documentation on the naming. Replaces: ghostty-org#10905 [1] https://gitlab.gnome.org/GNOME/gtk/-/tree/main/po?ref_type=heads * macos: implement notify on command finish * macos: refactor command finish notification duration handling * macos: command finished notifications always show up * core: parse cmdline and cmdline_url semantic prompt options * Update `language` config option's documentation. Follow-up to ghostty-org#10976. * build(deps): bump actions/upload-artifact from 6.0.0 to 7.0.0 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6.0.0 to 7.0.0. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](actions/upload-artifact@v6...bbbca2d) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: 7.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> * build(deps): bump actions/download-artifact from 7.0.0 to 8.0.0 Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 7.0.0 to 8.0.0. - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](actions/download-artifact@37930b1...70fc10c) --- updated-dependencies: - dependency-name: actions/download-artifact dependency-version: 8.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> * Correct “i.e. de, es, and fr” to use “e.g”. That isn't a rephrasing of “language codes”, but rather lists examples. * Document common mistakes in translations. trag1c or I point these out manually whenever we see them, but they're extremely common and probably deserve being explicitly documented. “Style Guide” was made sentence case because no other title is in title case. Before anyone comments: I use “full stop” instead of “period” because the Unicode Character Database uses “full stop” instead of “period”, and I avoid “dot” because Unicode has a plethora of dots. * Elaborate on viewing translations. Documenting `--language` was suggested by @Filip7 in ghostty-org#10976 (comment) * Prefer present over future tense in translators' guide. * Document localization teams. * macos: DockTilePlugin finds app bundle via `.app` suffix Fixes ghostty-org#11029 (probably) If you renamed the app bundle, the prior check would infinite loop due to the combination of two bugs: invalid termination checks and hardcoding "Ghostty.app" * macos: workaround for TabTitleEditor alignment issue * Update VOUCHED list (ghostty-org#11055) Triggered by [discussion comment](ghostty-org#11053 (comment)) from @jcollie. Vouch: @icodesign Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * build: test that `ghostty.h` compiles during a normal `zig build test` * core: add tests for `ghostty.h` * ensure that `ghostty.h` compiles during basic Zig tests * ensure that non-exhaustive enums are kept synchronized between `ghostty.h` and their respective Zig counterpart. * adjust some enums that varied from established conventions * feat(vt): Parse UAPI OSC 3008 hierarchical context signalling Implements parsing for OSC 3008, which allows terminal emulators to keep track of the stack of processes that have current control over the tty. The implementation mirrors existing `semantic_prompt.zig` architecture and natively maps UAPI definitions to Zig structures with lazy evaluation for optional metadata. Fixes ghostty-org#10900 * Update VOUCHED list (ghostty-org#11058) Triggered by [comment](ghostty-org#11057 (comment)) from @mitchellh. Vouch: @Prakhar54-byte Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * testing: use std.Build.TranslateC instead of @cImport * minor moving stuff * refactor: apply PR feedback - Use `std.meta.stringToEnum` in ContextType and ExitStatus - Ensure `parseInt` only accepts digits for pids - Use `@tagName` for string representation in Field - Rename `fields_raw` to `metadata` - Rename `readField` to `readOption` * Update VOUCHED list (ghostty-org#11062) Triggered by [discussion comment](ghostty-org#11061 (comment)) from @mitchellh. Vouch: @adrum Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * fix(macOS): filter phantom mouse events that defeat mouse-hide-while-typing On macOS, TUI apps like Zellij that frequently update the window title cause phantom mouse-move events to be generated at the same coordinates. These phantom events reach cursorPosCallback in the core, which calls showMouse() and explicitly unhides the cursor via NSCursor.setHiddenUntilMouseMoves(false), defeating the mouse-hide-while-typing feature. This ports the same position-equality check already present in the GTK runtime (added in PR ghostty-org#4973 for issue ghostty-org#3345) to the embedded runtime used by macOS. If the cursor position hasn't changed by more than 1px, the event is discarded. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor: simplify Enum parse call and loop parsing logic * Update VOUCHED list (ghostty-org#11065) Triggered by [comment](ghostty-org#11064 (comment)) from @mitchellh. Vouch: @linustalacko Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * macOS: refine window tint for liquid glass (ghostty-org#11018) Depends on ghostty-org#11030 - Update constraints of `TerminalGlassView` - Use `TerminalViewContainer.DerivedConfig` to map styling properties - Add TerminalViewContainerTests - Instead of using delay, now the view updates are explicitly called by window controllers * config: disable palette-generate by default Following the discussion at ghostty-org#10852, I believe this is the right default. I'm willing to continue to revisit this decisions, but Ghostty 1.3 is around the corner and I don't think such a change like this should be pushed into it. I think palette generation is best left as a _theme author_ tool. A Ghostty color theme could include `palette-generate=true` if it wants to customize the 256-color palette more easily. Of course, end users can as well anytime. Another part of my reasoning is that TUI programs who want this behavior can already achieve it themselves by mixing dark/light theme detection via CSI 996 (https://contour-terminal.org/vt-extensions/color-palette-update-notifications/) with OSC 4/10/11 color query and change sequences, both of which are decently supported in the terminal ecosystem and fully supported in Ghostty. I'm also open to considering some kind of new sequence to make this easier for TUIs (probably a mode) where they can opt-in to palette generation plus "harmonius" palettes (see `palette-harmonius`) and Ghostty does it on demand then. I think that'd solve the legacy vs new TUI argument where legacy programs can continue to make assumptions about the palette and new programs can opt-in to a more dynamic palette without having to do a lot of work themselves. * Remove duplicate word in README_TRANSLATORS § CODEOWNERS. * Improve word grouping w.r.t. localization team names. “always include a language and a country code” reads as “always include a language, and also always include a country code”, while the intended meaning was that it includes both a language *code* and a country code. * Elaborate on X-Generator removal. That line was intended to guide those who do not normally edit po files with a plain text editor, but ended up sounding like it states the obvious (“to do X, do X”) before this change. * macos: fix window size/position restoration on Cmd+W close This fixes two overlapping issues regarding window positioning and Cmd+W window closures on macOS: 1. `window-position-x` and `window-position-y` coordinates were being ignored on initial launch because `TerminalWindow.setInitialWindowPosition` depended on the `TerminalController`, which isn't fully attached during `awakeFromNib`. This logic was moved so explicit coordinates are correctly enforced. 2. When closing a window via Cmd+W (leaving the app active), reopening the window would continuously cascade down and to the right rather than restoring to the previous position. It now checks if there are other windows open before cascading. 3. `LastWindowPosition` was updated to save both the frame origin and size (width/height), ensuring that restoring a closed window correctly mimics native AppKit State Restoration size behaviors while honoring explicit configurations. * fix(macos): extract window cascade logic into helper function * Update VOUCHED list (ghostty-org#11071) Triggered by [comment](ghostty-org#11070 (comment)) from @mitchellh. Vouch: @abdurrahmanski Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Rename pt.po back to pt_BR.po. Portugal exists! Wikipedia notes [1] it to be the main other dialect. There's already a PR for pt_PT support too: ghostty-org#9078. It was renamed from pt_BR.UTF-8.po to pt.po in ghostty-org#10976. [1]: https://en.wikipedia.org/wiki/Portuguese_dialects * Rename ko.po back to ko_KR.po. While it was renamed from ko_KR.UTF-8.po to ko.po in ghostty-org#10976, @uhojin, a Korean locale maintainer, notes [1] that “ko_KR [*South* Korean] makes more sense in locale context just to avoid any potential confusion between 한국어 vs 조선어”. Despite ko_KP (North Korean) not being present in glibc (as of version 2.43), and the ISO639 maintainers expressing disapproval of ko_KP [2], it is possible opinions may change in the future, and individual opinions may be contested—disambiguating doesn't hurt. [1]: ghostty-org#10976 (comment) [2]: ghostty-org#10976 (comment) * Update VOUCHED list (ghostty-org#11078) Triggered by [discussion comment](ghostty-org#11076 (comment)) from @jcollie. Vouch: @DiaaEddin Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update macos/Sources/Features/Terminal/TerminalController.swift apply reviewer suggestion for cascading Co-authored-by: Lukas <134181853+bo2themax@users.noreply.github.com> * Remove old "acceptance tests" We haven't used or run these in forever (literally like 3+ years). They're just wasting cognitive space and confuse some users as to what they're for. Remove them. * fix(terminal): bounds check params in DCS passthrough entry When a DCS sequence has more than MAX_PARAMS parameters, entering dcs_passthrough would write to params[params_idx] without a bounds check, causing an out-of-bounds access. Drop the entire DCS hook when params overflow, consistent with how csi_dispatch handles it. Found by AFL fuzzing. * test/fuzz-libghostty: basic afl++-based fuzzer for libghostty * pkg/afl++ * switch to pkg/afl++ for fuzz * test/fuzz-libghostty: gitignore and initial corpus * test/fuzz-libghostty: add zig build run * pkg/afl++: clean up, comments * pkg/afl++: extract runner * test/fuzz-libghostty: add README * Corpus management update * pkg/afl++: use usize for len * pkg/afl++: fuzzer takes a file argument * typos * pkg/afl++: remove file arg * Clear key state overlay on "ignore" action * Update VOUCHED list (ghostty-org#11093) Triggered by [comment](ghostty-org#5036 (comment)) from @jcollie. Vouch: @AlexJuca Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * 🐛 Prevent git log output with signature information When users have something like [log] showSignature = true in their .gitconfig files, invocations of the log or show git sub-command emit additional information about signatures. This additional output disturbs the generation of short_hash in GitVersion.zig, the additional text is copied verbatim into the string and then shown in the CSI >q output. To fix it always suppress the output of the signature information. This has no effects when the setting is disabled anyway. * docs: clarify if pre-vouching contributors are also required to apply to get vouched before contributing to Ghostty * chore: add improvements * fix: format with prettier * Update VOUCHED list (ghostty-org#11098) Triggered by [comment](ghostty-org#11094 (comment)) from @jcollie. Vouch: @drepper Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update VOUCHED list (ghostty-org#11099) Triggered by [discussion comment](ghostty-org#11090 (comment)) from @jcollie. Vouch: @cespare Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * ci: fix windows CI checkouts with afl-min filenames * fuzz: replace : with _ for Windows * ci: test libghostty fuzzer build * shellcheck * fuzz: update corpus * typos: ignore fuzz corpus * Update CONTRIBUTING.md Co-authored-by: Jeffrey C. Ollie <jeff@ocjtech.us> * Update CONTRIBUTING.md Co-authored-by: Jeffrey C. Ollie <jeff@ocjtech.us> * Update CONTRIBUTING.md Co-authored-by: Jeffrey C. Ollie <jeff@ocjtech.us> * Update CONTRIBUTING.md Co-authored-by: Jeffrey C. Ollie <jeff@ocjtech.us> * chore: improve grammer * Update CONTRIBUTING.md Co-authored-by: Jeffrey C. Ollie <jeff@ocjtech.us> * Update VOUCHED list (ghostty-org#11107) Triggered by [discussion comment](ghostty-org#11102 (comment)) from @mitchellh. Vouch: @mischief Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * terminal: fix out-of-bounds access in CSI W handler with no params CSI ? W (cursor tabulation control) accessed input.params[0] without first checking that params.len > 0, causing an index out-of-bounds panic when the sequence had an intermediate but no parameters. Add a params.len == 1 guard before accessing params[0]. Found by AFL++ fuzzing. * terminal: insertBlanks should not crash with count 0 and CSI @ clamps [1,) CSI @ (ICH) with an explicit parameter of 0 should be clamped to 1, matching xterm behavior. Previously, a zero count reached Terminal.insertBlanks which called clearCells with an empty slice, triggering an out-of-bounds panic. Fix the stream dispatch to clamp 0 to 1 via @max, and add a defensive guard in insertBlanks for count == 0. Found by AFL++ stream fuzzer. * fuzz/vt-stream * Clean up how fuzzers are laid out * fuzz/stream: clean up * prettier should ignore various fuzz files * fix up gitattributes * fuzz: stream cmin * terminal: fix panic on CSI g (TBC) with overflowing param A fuzz crash found that CSI g with a parameter that saturates to u16 max (65535) causes @enumFromInt to panic when narrowing to TabClear (enum(u8)). Use std.meta.intToEnum instead, which safely returns an error for out-of-range values. * terminal: handle trailing colon in SGR underline parsing A trailing colon with no following sub-parameter (e.g. "ESC[58:4:m") leaves the colon separator bit set on the last param without adding another entry to the params array. When the SGR parser later iterates to that param (4 = underline) and sees the colon bit, it entered the colon path which asserted slice.len >= 2, but the slice only had one element. Replace the assert with a bounds check that treats the malformed sequence as a default single underline. Add a regression test reproducing the crash from AFL++ fuzzing (afl-out/stream/default/crashes/id:000021). * Sync CODEOWNERS vouch list (ghostty-org#11114) Sync CODEOWNERS owners with vouch list. ## Added Users - @derVedro Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * i18n: update pt_BR translations (ghostty-org#10635) Add missing pt_BR translations reported in ghostty-org#10632 for version 1.3 * Update VOUCHED list (ghostty-org#11116) Triggered by [comment](ghostty-org#11115 (comment)) from @mitchellh. Vouch: @markdorison Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * terminal: fix integrity violation printing wide char with hyperlink at right edge Printing a wide character at the right edge of the screen with an active hyperlink triggered a page integrity violation (UnwrappedSpacerHead). printCell wrote the spacer_head to the cell and then called cursorSetHyperlink, whose internal integrity check observed the spacer_head before printWrap had a chance to set the row wrap flag. Fix by setting row.wrap = true before calling printCell for the spacer_head case, so all integrity checks see a consistent state. printWrap sets wrap again afterward, which is harmless. Found by AFL++ stream fuzzer. * fuzz: add replay-crashes.nu to help find crash repros * fuzz: new stream corpus from 2 hour run * pin python depds to latest tag * Update VOUCHED list (ghostty-org#11122) Triggered by [comment](ghostty-org#11121 (comment)) from @jcollie. Vouch: @rhodes-b Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update VOUCHED list (ghostty-org#11123) Triggered by [discussion comment](ghostty-org#11118 (comment)) from @pluiedev. Vouch: @jguthmiller Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * terminal: fix insertBlanks integrity violation with wide char at right margin insertBlanks checks whether the last source cell being shifted is wide and clears it to avoid splitting, but it did not check the destination cells at the right edge of the scroll region. When a wide character straddles the right scroll margin (head at the margin, spacer_tail just beyond it), the swap loop displaced the wide head without clearing the orphaned spacer_tail, causing a page integrity violation (InvalidSpacerTailLocation). Fix by checking the cell at the right margin (last destination cell) before the swap loop and clearing it along with its spacer_tail when it is wide. Found by AFL++ stream fuzzer. ghostty-org#11109 * terminal: fix printCell corrupting previous row when overwriting wide char printCell, when overwriting a wide cell with a narrow cell at x<=1 and y>0, unconditionally sets the last cell of the previous row to .narrow. This is intended to clear a spacer_head left by a wrapped wide char, but the cell could be a spacer_tail if a wide char fit entirely on the previous row. Setting a spacer_tail to .narrow orphans the preceding .wide cell, which later causes an integrity violation in insertBlanks (assert that the cell after a .wide is .spacer_tail). Fix by guarding the assignment so it only fires when the previous row's last cell is actually a .spacer_head. The same fix is applied in both the .wide and .spacer_tail branches of printCell. Found by AFL++ stream fuzzer. * terminal: fix no-reflow resize leaving stale spacer heads resizeWithoutReflowGrowCols has a fast path that reuses existing page capacity when growing columns: it simply bumps page.size.cols without touching cell data. If any row has a spacer_head at the old last column (from a wide char that did not fit), that cell is no longer at the end of the now-wider row, causing a page integrity violation. Fix by checking for spacer_head cells at the old last column before taking the fast path. If any are found, fall through to the slow path which handles spacer heads correctly via cloneRowFrom. Found by AFL++ stream fuzzer. ghostty-org#11109 * terminal: fix insertLines/deleteLines orphaned cells on full clear When deleteLines or insertLines count >= scroll region height, all rows go through the clear-only path (no shifting). This path did not call rowWillBeShifted, leaving orphaned spacer_tail cells when wide characters straddled the right margin boundary, causing a "spacer tail not following wide" page integrity violation. Add rowWillBeShifted before clearCells in the else branch of both functions. Found via AFL++ fuzzing. ghostty-org#11109 * terminal: fix insertBlanks orphaned spacer_tail beyond right margin When insertBlanks clears the entire region from cursor to the right margin (scroll_amount == 0), a wide character whose head is at the right margin gets cleared but its spacer_tail just beyond the margin is left behind, causing a "spacer tail not following wide" page integrity violation. Move the right-margin wide-char cleanup from inside the scroll_amount > 0 block to before it, so it runs unconditionally — matching the rowWillBeShifted pattern of cleaning up boundary-straddling wide chars up front. Found via AFL++ fuzzing. ghostty-org#11109 * Update VOUCHED list (ghostty-org#11139) Triggered by [discussion comment](ghostty-org#11128 (comment)) from @mitchellh. Vouch: @noib3 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * address comments * pkg/afl++: remove @@ from run target since we use in-memory targets * config: respect cursor-click-to-move for OSC133 click to move When cursor-click-to-move is set to false, disable all prompt click-to-move mechanisms including shell-native methods such as OSC 133 cl= (arrow key synthesis) and click_events. I forgot to port this config over when we did the OSC133 stuff. Also update the config documentation to accurately describe the current behavior. Fixes ghostty-org#11138 * terminfo: add support for SGR dim This PR implements the fix discussed in ghostty-org#11128 * macos: finish editing tab title when the window resigns as key window * macos: passthrough mouse down event to TabTitleEditor if needed * macos: passthrough right mouse down event to TabTitleEditor if needed * macos: hide close button when editing tab title * fuzz: add OSC parser fuzzer * macos: use a separated struct to hide and restore tab states * input: send composed text in kitty keyboard protocol When the kitty keyboard protocol "report all keys as escape codes" mode was active, composed/IME text (e.g. from dead keys or compose sequences) was silently dropped. This happened because the composed text is sent within our GTK apprt with key=unidentified and no unshifted_codepoint, so no kitty entry was found and the encoder returned without producing any output. The plain-text fallback was also skipped because report_all bypasses it. Send composed text as raw UTF-8 when no kitty entry is found, matching the behavior of Kitty on Linux for me. Fixes ghostty-org#10049 * build: link to the system FontConfig by default on non-macOS systems Because of the global shared state that FontConfig maintains, FontConfig must be linked dynamically to the same system FontConfig shared library that GTK uses. Ghostty's default has been changed to always link to the system FontConfig library on non-macOS systems. If that is overridden (by specifying `-fno-sys=fontconfig` during the build) Ghostty may crash when trying to locate glyphs that are not available in the default font. Fixes ghostty-org#10432 * Update VOUCHED list (ghostty-org#11155) Triggered by [comment](ghostty-org#11154 (comment)) from @mitchellh. Vouch: @alaasdk Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Update VOUCHED list (ghostty-org#11156) Triggered by [discussion comment](ghostty-org#10982 (reply in thread)) from @jcollie. Vouch: @cmwetherell Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Add OSC 99 notification parser * macos: reduce transient blank/scaled frames during resize * macos: keep top-left gravity for stale-frame replay * macos: restart display link after display ID change * Add manual termio backend and surface IO API * Disable terminal reflow on resize for cmux stability * Add C API for keyboard copy mode selection --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: MiUPa <66132846+MiUPa@users.noreply.github.com> Co-authored-by: Mitchell Hashimoto <m@mitchellh.com> Co-authored-by: ghostty-vouch[bot] <262049992+ghostty-vouch[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Martin Emde <me@martinemde.com> Co-authored-by: ClearAspect <roanmason@live.ca> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jeffrey C. Ollie <jeff@ocjtech.us> Co-authored-by: Lukas <134181853+bo2themax@users.noreply.github.com> Co-authored-by: Kat <65649991+00-kat@users.noreply.github.com> Co-authored-by: Andrej Daskalov <andrej.daskalov@magix.ai> Co-authored-by: Noah Gregory <noah@wts.dev> Co-authored-by: Noah Gregory <noahmgregory@gmail.com> Co-authored-by: markhuot <mark@markhuot.com> Co-authored-by: Michael Engelhard <engelhard.michael+git@gmail.com> Co-authored-by: Noah Bernsohn <bernsno@gmail.com> Co-authored-by: Uzair Aftab <git@uzaaft.me> Co-authored-by: trag1c <dev@jakubr.me> Co-authored-by: Joseph Martinsen <joseph@martinsen.com> Co-authored-by: Prakhar54-byte <162185166+Prakhar54-byte@users.noreply.github.com> Co-authored-by: linustalacko <83816641+linustalacko@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: A-AKB <abdurrahmanakb@icloud.com> Co-authored-by: Abdurrahman <96236378+abdurrahmanski@users.noreply.github.com> Co-authored-by: Caleb Spare <cespare@gmail.com> Co-authored-by: Ulrich Drepper <github@akkadia.org> Co-authored-by: Alexandre Antonio Juca <corextechnologies@gmail.com> Co-authored-by: Guilherme Nandi Tiscoski <github@guilhermetiscoski.com> Co-authored-by: rhodes-b <59537185+rhodes-b@users.noreply.github.com> Co-authored-by: Leah Amelia Chen <hi@pluie.me> Co-authored-by: Riccardo Mazzarini <me@noib3.dev>
kirtangajjar
pushed a commit
to kirtangajjar/ghostty
that referenced
this pull request
Mar 5, 2026
Add missing pt_BR translations reported in ghostty-org#10632 for version 1.3 Executed-By: ghostty/polecats/fury Rig: ghostty Role: polecats
kirtangajjar
pushed a commit
to kirtangajjar/ghostty
that referenced
this pull request
Mar 5, 2026
Add missing pt_BR translations reported in ghostty-org#10632 for version 1.3 Executed-By: ghostty/polecats/radrat Rig: ghostty Role: polecats
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add missing pt_BR translations reported in #10632 for version 1.3