# Ghostty changelog
> Terminal emulator that uses platform-native UI and GPU acceleration
- Vendor: Ghostty
- Category: Developer Tools
- Official site: https://ghostty.org/
- Tracked by: What's New (https://whatsnew.fyi/product/ghostty)
- Harvested from: Blog (https://github.com/ghostty-org/ghostty/tags.atom)
- Entries below: 9 (newest first)
What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog.
Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'.
## Releases
### v1.3.1
- Date: 2026-03-13
- Version: v1.3.1
- Original notes: https://github.com/ghostty-org/ghostty/releases/tag/v1.3.1
- Permalink: https://whatsnew.fyi/product/ghostty/releases/v1.3.1
- **added** — New configuration option progress-style controls whether OSC 9;4 progress bars are shown
- **added** — New binding actions set_surface_title:
and set_tab_title: allow direct title setting from keybinds
- **changed** — The working-directory configuration now expands ~/ paths
- **changed** — jump_to_prompt:next now handles multiline prompts correctly when moving forward through prompts
- **fixed** — zsh prompt marking compatibility improved with dynamic themes and prompt rebuild behavior
- **fixed** — bash multiline PS1 prompts with command substitutions no longer break due to mark insertion behavior
- **fixed** — bash readline vi mode indicator redraws no longer introduce extra newlines
- **fixed** — macOS paste_from_clipboard is now performable for keybind parity with GTK
- **fixed** — macOS stale mouse state leading to phantom drag and selection behavior after focus changes resolved
- **fixed** — macOS window sizing regressions where opening tabs could unexpectedly resize windows fixed
- **fixed** — macOS configuration cycle detection when loading config files from App Support paths
- **fixed** — macOS inline tab title editing now correctly restores keyboard focus after confirming or canceling edits
- **fixed** — macOS fullscreen tab title rename hit testing so double-click to rename tabs works in native fullscreen
- **fixed** — macOS split drag handles no longer appear in native fullscreen with no splits
- **fixed** — macOS split drag handles only appear when the mouse is near them
- **fixed** — macOS ghostty keybinds once again override system macOS keybinds
- **fixed** — macOS automatic one-time code inputs will no longer appear in the terminal
- **fixed** — macOS first-window positioning, window cascading, and split drag-to-new-window placement behavior improved
- **fixed** — macOS AppleScript tab selection command no longer activates the application unexpectedly
- **fixed** — GTK +new-window now correctly handles inferred --working-directory when used with -e
- **fixed** — Snap ghostty no longer leaks LD_LIBRARY_PATH from the snap launcher into child processes
Ghostty 1.3.1 includes changes from
**15 contributors** over **100 commits**. This is a patch release
focused on fixing regressions introduced in 1.3.0, especially on
macOS, along with a handful of targeted improvements.
##### Highlights
###### macOS Mouse Selection Bugs Fixed
PRs: GH-11276
Ghostty 1.3.0 had a very noticeable bug on macOS where phantom mouse
events would occur after focus changes, leading to phantom drag,
selection, and scroll events.
This issue is now resolved.
##### Full Changelog
[Full list of closed issues on GitHub](https://github.com/ghostty-org/ghostty/milestone/13?closed=1).
In each section, we try to sort improvements before bug fixes.
- New configuration: `progress-style` controls whether OSC 9;4 progress
bars are shown, allowing progress bars to be disabled entirely. GH-11289
- New binding actions `set_surface_title:` and
`set_tab_title:` allow direct title setting from keybinds and
other action entry points. GH-11373 GH-11316
- The `working-directory` configuration now expands `~/` paths. GH-11337
GH-11336
- `jump_to_prompt:next` now handles multiline prompts correctly when
moving forward through prompts. GH-11331 GH-11330
###### Shell Integration
- zsh: Improve prompt marking compatibility with dynamic themes and
prompt rebuild behavior. GH-11367
- bash: Multiline `PS1` prompts with command substitutions no longer
break due to mark insertion behavior. GH-11369
- bash: Readline vi mode indicator redraws no longer introduce extra
newlines. GH-11377 GH-10953
###### macOS
- macOS: `paste_from_clipboard` is now `performable:` for keybind parity
with GTK. GH-11328 GH-10751
- macOS: Fix stale mouse state leading to phantom drag/selection
behavior after focus changes. GH-11276 GH-11319
- macOS: Fix window sizing regressions where opening tabs could
unexpectedly resize windows under certain configurations. GH-11313
GH-11322 GH-11380
- macOS: Fix configuration cycle detection when loading config files
from App Support paths. GH-11323 GH-11326
- macOS: Inline tab title editing now correctly restores keyboard focus
after confirming or canceling edits. GH-11320
- macOS: Fix fullscreen tab title rename hit testing so you can now
double-click to rename tabs in native fullscreen. GH-11353
- macOS: Split drag handles no longer appear in native fullscreen
with no splits. GH-11376
- macOS: Split drag handles only appear when the mouse is somewhat
near them. GH-11379
- macOS: Ghostty keybinds once again override system macOS keybinds,
so keys such as `super+h` are once again bindable. GH-11396 GH-11403
- macOS: Automatic one-time code inputs will no longer appear in the terminal. GH-11351
- macOS: Improve first-window positioning, window cascading, and split
drag-to-new-window placement behavior. GH-11421 GH-11426 GH-11429
- macOS: The AppleScript tab selection command no longer activates the
application unexpectedly. GH-11459
###### GTK (Linux, FreeBSD)
- GTK: `+new-window` now correctly handles inferred
`--working-directory` when used with `-e`. GH-11357 GH-11356
- Snap: Ghostty no longer leaks `LD_LIBRARY_PATH` from the
snap launcher into child processes, avoiding runtime conflicts in
launched applications. GH-11431
###### Changes for Package Maintainers
No changes for package maintainers in this release.
##### Roadmap
We're still investigating other 1.3.x regressions and issues, and I do
expect a 1.3.2 release at some point. The plan is for that release to be
a bit further out than the 1.3.1 release, which focused on critical
release-day bugs.
### v1.3.0
- Date: 2026-03-09
- Version: v1.3.0
- Original notes: https://github.com/ghostty-org/ghostty/releases/tag/v1.3.0
- Permalink: https://whatsnew.fyi/product/ghostty/releases/v1.3.0
- **security** — Fixed an issue where control characters such as 0x03 (Ctrl+C) in pasted or drag-and-dropped text could be used to execute arbitrary commands in some shell environments
- **added** — Add scrollback search with cmd+f on macOS or ctrl+shift+f on GTK to search terminal scrollback and navigate between matches
- **added** — Add native scrollbars with configurable visibility via the scrollbar configuration option
- **added** — Add support for click-to-move-cursor in shell prompts via the click-events and cl=line extensions to the OSC 133 Semantic Prompts specification
- **added** — Add command finished notifications with notify-on-command-finish, notify-on-command-finish-action, and notify-on-command-finish-after configuration options
- **changed** — Improve OSC 133 implementation for more accurate behaviors with jump-to-prompt, copy command output, and resize behaviors while at an active prompt
Ghostty 1.3.0 is a significant release which includes many of the
most requested features such as scrollback search, native scrollbars,
click-to-move-cursor in shell prompts, and more. It also includes
hundreds of improvements, bug fixes, and performance optimizations across
all platforms.
This release features **6 months of work** with changes from
**180 contributors** over **2,858 commits**. Thank you to all the contributors,
maintainers, community moderators, translators, packagers, and users
who each helped make this release possible.
These release notes are painstakingly and lovingly hand-crafted
by human Ghostty maintainers, including the full changelog. They take
a combined 16+ hours to write, so please enjoy. 🥰
##### Security
- [CVE-2026-26982](https://github.com/ghostty-org/ghostty/security/advisories/GHSA-4jxv-xgrp-5m3r).
Fixed an issue where control characters such as `0x03` (Ctrl+C) in pasted
or drag-and-dropped text could be used to execute arbitrary commands in
some shell environments. This requires user interaction
(copy-paste or drag-and-drop) to trigger.
##### Highlights
###### Scrollback Search
PRs: GH-9585 GH-9602 GH-9687 GH-9702 GH-9709 GH-9756
You can now search your terminal scrollback with `cmd+f` on macOS or
`ctrl+shift+f` on GTK. Search highlights all matches in the viewport and allows
you to navigate between them with the arrow buttons or `cmd+g` / `shift+cmd+g`
(macOS) or `enter` / `shift+enter` (GTK). All of these keybinds are
configurable, of course.
On macOS, the search bar can be dragged to any of the four corners of
the terminal if it gets in the way. The search also integrates with
standard macOS conventions: the menu bar, `Find Next` / `Find Previous`
shortcuts, and the system find pasteboard all work as expected.
On GTK, the search bar also appears in one of the corners and can be
dragged to any corner.
Search is implemented using a dedicated search thread that operates
concurrently with terminal I/O. The thread grabs the terminal lock in
small time slices to make forward progress on searching while
minimizing impact on I/O throughput or rendering. If you do not use search, or you
close the search bar, the search thread exits and does not consume any
resources.
###### Scrollbars
PRs: GH-9225 GH-9232
Ghostty now has native scrollbars. A new `scrollbar` configuration controls
whether scrollbars are visible, defaulting to `system` which lets the
OS decide.
The scrollbar on both macOS and GTK uses native widgets and styling,
and supports all the standard interactions you would expect, such as
dragging the knob, clicking the track, using scroll gestures, etc.
On both platforms, we use a minimal overlay-style scrollbar so that
the terminal grid doesn't have to reserve space for the scrollbar with an
aesthetically unpleasant gap or gutter. The scrollbar is overlaid on top of
the terminal contents with minimal styling to prevent impacting selection.
###### Click to Move Cursor In Shell Prompts
PR: GH-10455
Ghostty now supports the [`click-events`](https://sw.kovidgoyal.net/kitty/shell-integration/#notes-for-shell-developers)
and [`cl=line`](https://gitlab.freedesktop.org/Per_Bothner/specifications/blob/master/proposals/semantic-prompts.md)
extensions to the [OSC 133 Semantic Prompts specification](https://gitlab.freedesktop.org/Per_Bothner/specifications/blob/master/proposals/semantic-prompts.md).
This lets you click your mouse within an active shell prompt to move
the cursor, like a normal text field.
This feature is supported natively by Fish (4.1+) and Nushell (0.111+).
For othe
_[Truncated at 4000 characters — full notes: https://github.com/ghostty-org/ghostty/releases/tag/v1.3.0]_
### v1.2.3
- Date: 2025-10-23
- Version: v1.2.3
- Original notes: https://github.com/ghostty-org/ghostty/releases/tag/v1.2.3
- Permalink: https://whatsnew.fyi/product/ghostty/releases/v1.2.3
- **fixed** — Fix a deadlock scenario where programs that emit many color change or query operations could cause Ghostty to hang
- **fixed** — Fix title misalignment and clipping in tab titlebar style on macOS
- **fixed** — Correct titlebar coloring in fullscreen mode when titlebar tabs are enabled on macOS
- **fixed** — Resolve issues where theme changes would cause the titlebar to lose styling on macOS
- **fixed** — Fix truncated title appearing in top-left corner when using tab titlebar style in fullscreen on macOS
- **changed** — Improve behavior with macOS 26 native fullscreen and titlebar tabs
- **changed** — Numerous tweaks to improve various edge cases in font rendering, especially around icon glyphs
- **changed** — Add semi-colon character to word boundary list for selection in terminal
- **changed** — Modify other keys 2 to use all mods and ignore consumed mods, fixing shifted modifiers with tmux
- **fixed** — Fix a resource leak by not starting the scroll timer when scrolling outside the viewport if the scroll timer is already active
- **fixed** — Fix memory corruption that could happen when starting a scroll in one screen and continuing to scroll after the terminal program switched screens
- **fixed** — Fix garbled rendering in renderer under some cases
- **fixed** — Make ssh-terminfo cache properly for IPv6 addresses in shell-integration
- **fixed** — Make cursor integration work in vi mode for fish in shell-integration
- **changed** — Stop updating universal fish_user_paths variable in shell-integration
- **fixed** — Make quick terminal size properly remembered per screen on macOS
- **fixed** — Make goto_split direction compatible with performable bindings on macOS
- **fixed** — Make window-position-x/y work properly paired with window-width/height on macOS
- **fixed** — Fix UI hang when pasting large unsafe text on macOS
- **fixed** — Make New Tab action reliably open tab instead of window when appropriate on macOS
- **fixed** — Fix crash if Cocoa APIs return a nil locale on macOS
- **fixed** — Set the correct window title immediately if title is configured on GTK
- **fixed** — Make quick terminal autohide work properly on GTK
- **added** — Add a new -Demit-themes build option to build Ghostty without any bundled themes
Ghostty 1.2.3 features **two weeks of work** with changes from
**6 contributors** over **27 commits.** This is a patch release primarily
focused on fixing issues introduced in the 1.2.x series.
This release contains a critical fix for a deadlock scenario that can happen
on all platforms. We highly recommend that all users on prior 1.2.x versions
upgrade to this version at their soonest convenience.
##### Highlights
###### macOS Titlebar Tabs Improvements
PRs: GH-9090 GH-9163 GH-9168 GH-1787 GH-1813 GH-1945 GH-8612
Ghostty 1.2.3 includes multiple fixes for `macos-titlebar-style = tabs`,
including many issues that have existed since pre-1.0! Additionally, multiple
Tahoe-specific (macOS 26) bugs related to this configuration were also fixed,
since Tahoe introduced a dramatically different tab bar.
An overview of the changes:
- Fixed title misalignment and clipping in tab titlebar style.
- Corrected titlebar coloring in fullscreen mode when titlebar tabs are enabled.
- Resolved issues where theme changes would cause the titlebar to lose styling.
- Fixed truncated title appearing in top-left corner when using tab titlebar
style in fullscreen.
- Improved behavior with macOS 26 native fullscreen and titlebar tabs.
###### Font Rendering Improvements
PRs: GH-9142 GH-9152 GH-9160
Ghostty 1.2.3 continues to include a number of refinements to the rewritten
font rendering system introduced in 1.2.0. The changes in Ghostty 1.2.3
focus primarily on icon glyphs (e.g. Nerd Fonts). Ghostty 1.2.3 users should
see better sized icons in all scenarios.
This addresses all currently known font _rendering_ issues, particularly
those stemming from the rewritten renderer in 1.2.0. Note that there are
still other known font-related issues but they either predate Ghostty 1.2
or are otherwise unrelated to font rendering (and are instead related to
font discovery, loading, shaping, etc.).
##### Full Changelog
[Full list of closed issues on GitHub](https://github.com/ghostty-org/ghostty/milestone/10?closed=1).
In each section, we try to sort improvements before bug fixes.
- font: Numerous tweaks to improve various edge cases, especially around
icon glyphs. GH-9076 GH-9142 GH-9160 GH-9152
- terminal: add semi-colon character to word boundary list for selection. GH-9069
- input: modify other keys 2 should use all mods, ignore consumed mods.
This fixes a misencoding that caused shifted modifiers to not work
with tmux (but also any other terminal program using modify other keys state 2)
GH-9289
- Fix a deadlock scenario where programs that emit many color change
or query operations could cause Ghostty to hang. GH-9224
- Fix a resource leak by not starting the scroll timer when scrolling
outside the viewport if the scroll timer is already active. GH-9195
- Fix memory corruption that could happen when starting a scroll in
one screen (primary vs alt) and continuing to scroll after the terminal
program switched screens. GH-9223
- renderer: fix garbled rendering under some cases. GH-9252
- shell-integration: `ssh-terminfo` now caches properly for IPv6 addresses. GH-9251 GH-9281
- shell-integration: cursor integration now works in vi mode for fish. GH-9157
- shell-integration: no longer updates universal `fish_user_paths` variable. GH-9273
###### macOS
- macOS: Quick terminal size is now properly remembered per screen. GH-9256
- macOS: `goto_split` direction is now compatible with `performable:` bindings.
GH-9283 GH-9284
- macOS: `window-position-x/y` works properly paired with `window-width/height`. GH-9313
- macOS: Fix UI hang when pasting large unsafe text. GH-9322 GH-9324
- macOS: Fixed multiple `macos-titlebar-style=tabs` related issues. GH-1787
GH-1813 GH-1945 GH-8612 GH-9090 GH-9163
- macOS: New Tab action now reliably opens tab instead of window when
appropriate. GH-9124
- macOS: Fix crash if Cocoa APIs return a nil locale. GH-9290
###### GTK (Linux, FreeBSD)
- GTK: If `title` is configured, set the correct wind
_[Truncated at 4000 characters — full notes: https://github.com/ghostty-org/ghostty/releases/tag/v1.2.3]_
### v1.2.2
- Date: 2025-10-08
- Version: v1.2.2
- Original notes: https://github.com/ghostty-org/ghostty/releases/tag/v1.2.2
- Permalink: https://whatsnew.fyi/product/ghostty/releases/v1.2.2
- **fixed** — Fix critical memory leak regression from 1.2.1 that could cause runaway memory growth under certain scenarios on all platforms
- **fixed** — Fix macOS font rendering that caused one pixel or half pixel offsets for some glyphs resulting in blurriness
Ghostty 1.2.2 is a hotfix to fix a critical regression from 1.2.1
where we accidentally forgot to backport a memory leak fix. As a result,
Ghostty 1.2.1 has a significant memory leak under certain scenarios that
can cause runaway memory growth. This issue affects all platforms.
We've also included a very small fix for macOS font rendering that would
cause very small (one pixel or half pixel) offsets for some glyphs that could
result in blurriness.
This was released very shortly after 1.2.1, please see the
[1.2.1 release notes](https://ghostty.org/docs/install/release-notes/1-2-1).
### v1.2.1
- Date: 2025-10-06
- Version: v1.2.1
- Original notes: https://github.com/ghostty-org/ghostty/releases/tag/v1.2.1
- Permalink: https://whatsnew.fyi/product/ghostty/releases/v1.2.1
- **changed** — Nerd Font icons are now larger and better matched in size relative to each other, making better use of available cell space
- **changed** — Icons wider than a single cell are now left-aligned rather than centered across cells
- **fixed** — CJK characters no longer appear oversized when using wide-aspect primary fonts
- **fixed** — Glyph constraints are now applied before thickening and centering operations to ensure consistent icon sizes and positions
- **fixed** — Fixed bugs in Nerd Font patch extraction where rules were applied to wrong glyphs due to codepoint offset issues
- **fixed** — Improved FreeType glyph measurements to ensure glyphs are measured with the same hinting as they are rendered
- **changed** — Shell integration now automatically adds GHOSTTY_BIN_DIR to PATH for bash, zsh, fish, and elvish
- **changed** — mouse-scroll-multiplier configuration now supports independent multipliers for precision and discrete scrolling devices
- **changed** — font-size now reloads at runtime if font wasn't manually set
- **changed** — +list-themes now includes cursor and selection colors in preview
- **fixed** — +edit-config properly handles $EDITOR values with arguments
- **changed** — command-palette-entry now supports commas in fields
- **fixed** — Binding values containing = now parse properly
- **fixed** — Scrolling no longer reverses direction when dragging mouse outside the window
- **fixed** — Config template creates properly even if config directory already exists
- **fixed** — Treat empty XDG environment variables as not existing
- **fixed** — Shell integration bash ssh wrapper is marked as a function to avoid alias conflicts
- **added** — Add Croatian (hr_HR) translation
- **added** — Add Traditional Chinese (zh_TW) translation
Ghostty 1.2.1 features **two weeks of work** with changes from
**13 contributors** over **62 commits.** This is a patch release primarily
focused on fixing issues introduced in the 1.2.0 release. It includes
a small handful of improvements, too.
##### Highlights
###### Font Rendering Improvements
PRs: GH-8563 GH-8580 GH-8738 GH-8720 GH-8847
Ghostty 1.2.0 contained a substantial overhaul of the font rendering
system. As expected with such a large change, some issues were discovered
outside of our testing. Ghostty 1.2.1 addresses many of these issues.
An overview of the changes:
- Nerd Font icons are now larger and better matched in size relative to each
other, making better use of available cell space. Icons wider than a single
cell are now left-aligned rather than centered across cells.
- CJK characters no longer appear oversized when using wide-aspect primary fonts.
The IC width (ideographic character width) is now upper-bounded by measuring
the overall bounding box of ASCII characters.
- Glyph constraints are now applied before thickening and centering operations,
ensuring that icon sizes and positions are consistent regardless of font size,
thickening strength, or display DPI.
- Fixed bugs in Nerd Font patch extraction where rules were applied to wrong
glyphs due to codepoint offset issues, and irrelevant patch sets were
incorrectly included.
- Improved FreeType glyph measurements to ensure glyphs are measured with the
same hinting as they are rendered.
###### Shell Integration Adds `ghostty` to `PATH`
PR: GH-8976
Shell integration now automatically adds `GHOSTTY_BIN_DIR` to your PATH,
making the `ghostty` binary available in many shells without additional
configuration.
Ghostty previously (and still) adds `ghostty` to your PATH prior to executing
the shell, but many shell configurations reset PATH. This change adds an
additional layer as part of the shell integration scripts to increase the
chances that `ghostty` is available in your shell.
This is supported for bash, zsh, fish, and elvish.
###### Mouse Scroll Multiplier for Precision Scrolling Devices
PR: GH-8927
The `mouse-scroll-multiplier` configuration now supports precision
scrolling devices like Apple trackpads. You can now independently control
multipliers for both discrete (mouse wheel) and precision (trackpad)
scrolling, making navigation through large scrollback buffers smoother
and more predictable across different input devices.
Examples:
```
#### Apply the same multiplier to both precision and discrete
mouse-scroll-multiplier = 3
#### Apply different multipliers (order doesn't matter)
mouse-scroll-multiplier = precision:0.1,discrete:3
#### Apply only to precision, use default for discrete
mouse-scroll-multiplier = precision:2
```
The default precision multiplier is `0.1` while the default discrete
multiplier remains `1`.
##### Full Changelog
[Full list of closed issues on GitHub](https://github.com/ghostty-org/ghostty/milestone/8?closed=1).
In each section, we try to sort improvements before bug fixes.
- config: `font-size` now reloads at runtime if font wasn't manually set. GH-8680
- cli: `+list-themes` now includes cursor and selection colors in preview. GH-8446
- cli: `+edit-config` properly handles `$EDITOR` values with arguments. GH-8898
- config: `command-palette-entry` now supports commas in fields. GH-8849
- config: binding values containing `=` now parse properly. GH-8675
- Scrolling no longer reverses direction when dragging mouse outside the window. GH-8683
- Config template creates properly even if config directory already exists. GH-8892
- config: treat empty XDG environment variables as not existing. GH-8830
- shell-integration: now adds `GHOSTTY_BIN_DIR` to PATH for all supported shells. GH-8976
- shell-integration/bash: mark ssh wrapper as a function to avoid alias conflicts. GH-8647
- i18n: add Croatian (hr_HR) translation. GH-8668
- i18n: add Traditional Chinese (zh_TW) translation. GH-6773
- i18n: Po
_[Truncated at 4000 characters — full notes: https://github.com/ghostty-org/ghostty/releases/tag/v1.2.1]_
### v1.2.0
- Date: 2025-09-15
- Version: v1.2.0
- Original notes: https://github.com/ghostty-org/ghostty/releases/tag/v1.2.0
- Permalink: https://whatsnew.fyi/product/ghostty/releases/v1.2.0
- **security** — Fixed an issue on macOS where Ghostty could be used as a vector for privilege escalation from other vulnerable or malicious sources
- **changed** — Updated application icon on macOS to be compatible with macOS Tahoe and support light, dark, translucent, and custom tinting styles
- **changed** — Updated application icon on GTK (Linux and FreeBSD) to better match desktop environments with GNOME-aligned styling
- **added** — Added command palette accessible via ctrl+shift+p on GTK and cmd+shift+p on macOS to invoke keybind actions
- **added** — Added quick-terminal-size configuration option to set the default size of the quick terminal using percentages or pixels
- **changed** — Made quick terminal resizable at runtime with size persisted for the duration that Ghostty is running
- **added** — Added opt-in SSH shell integration features to improve compatibility with remote machines that lack Ghostty terminfo support
Ghostty 1.2.0 features **6 months of work** with changes from
**149 contributors** over **2,676 commits**. Thank you to all the contributors,
maintainers, community moderators, translators, packagers, and users
who each helped make this release possible. This release contains major
improvements to every part of Ghostty, including hundreds of bug fixes.
##### Security
- macOS: [GHSA-q9fg-cpmh-c78x](https://github.com/ghostty-org/ghostty/security/advisories/GHSA-q9fg-cpmh-c78x).
Fixed an issue where Ghostty can be used as a vector for privilege
escalation from other vulnerable or malicious sources. This requires a
vulnerable application outside of Ghostty to initiate this chain of events.
As such, this is considered a low risk advisory.
##### Highlights
###### New App Icons
PRs: GH-7638 GH-8038
On macOS, Ghostty 1.2 ships with a new macOS Tahoe compatible icon shown
below. This icon is built with the new Icon Composer application and allows
the icon to work with all of the new macOS light, dark, translucent, and
custom tinting styles.
On GTK (Linux and FreeBSD), Ghostty 1.2 ships with a new icon that better
matches _many_ desktop environments. We chose to align with the GNOME styling
since that is common and doesn't generally look out of place in most
environments.
It's impossible to make a perfect, globally consistent icon for the Linux and
BSD ecosystem due to the diversity of desktop environments. We believe this
icon looks better in more environments than the prior icon, and avoids some
negative reactions that the prior icon demonstrated a macOS-centric point of
view.
###### Command Palette
PRs: GH-7153 GH-7156
Ghostty now has a command palette that can invoke most keybind actions,
such as creating new terminals, moving focus, changing text selection,
copy and paste, etc.
The command palette is bound by default to `ctrl+shift+p` on GTK and
`cmd+shift+p` on macOS. This can be rebound to any keybind using the
`toggle_command_palette` keybind action. The command palette is also available
via the menubar on both macOS and GTK.
The command palette exposes almost every available keybind. As new keybind
actions are added to Ghostty, they will be automatically available in the
command palette as well. This has some immediate benefits, namely that you can
access keybind actions even if they aren't bound to a keybind. This is useful
for infrequently used actions.
For example, I personally find myself using the `move_tab` action via the
command palette frequently, but not frequently enough to justify binding it.
In future versions of Ghostty, we'll continue to expand the features that
are available in the command palette. For example, we're working on a new
terminal sequence specification that would allow terminal programs to expose
any of their actions directly in the command palette (e.g. imagine Neovim
commands being fully available in the command palette).
###### Quick Terminal Size
PRs: GH-2384
A new configuration `quick-terminal-size` can now configure the default size
of the quick terminal. This was one of the most highly requested features.
The `quick-terminal-size` configuration supports both p
_[Truncated at 4000 characters — full notes: https://github.com/ghostty-org/ghostty/releases/tag/v1.2.0]_
### v1.1.3
- Date: 2025-03-24
- Version: v1.1.3
- Original notes: https://github.com/ghostty-org/ghostty/releases/tag/v1.1.3
- Permalink: https://whatsnew.fyi/product/ghostty/releases/v1.1.3
- **fixed** — Fix rendering issues with the ngl GSK renderer to resolve compatibility with GTK 4.18 and Gnome 48
- **deprecated** — Deprecate the gtk-gsk-renderer configuration option; it will be removed in Ghostty 1.2.0
- **fixed** — Stop sending responses for non-query OSC 21 requests
- **fixed** — Initialize pty with non-zero size instead of 0x0
- **fixed** — Increase maximum number of parameters for CSI sequences to 24 to fix SGR sequences in Kakoune
- **changed** — Change the default binding for equalize_splits to super+ctrl+shift+plus to make it usable by default on US keyboard layouts
- **fixed** — Fix elvish shell integration sudo feature
- **fixed** — Improve visibility of the new tab button on macOS with semi-transparent dark backgrounds
- **fixed** — Fix focus transfer to new windows created while the quick terminal is focused on macOS
- **fixed** — Fix garbled terminal draw area on macOS until focused when DPI changes occur
- **fixed** — Fix terminal inspector menu item becoming deactivated in the Quick Terminal on macOS
- **fixed** — Fix equalize splits keybind and menu item on macOS to only affect the focused tab
- **fixed** — Treat negative content scale values from GTK as 1.0 to fix issues on Gentoo systems
- **fixed** — Make the split drag handle area smaller on GTK to allow selecting text on the boundary
- **fixed** — Respect the title configuration when a new tab is created from the tab overview on GTK
- **fixed** — Improve reliability of Korean input methods, specifically fcitx5-hangul on GTK
- **added** — Add fetch-zig-cache.sh script back to the source tarball
- **added** — Include build.zig.zon.txt file in the source tarball with URLs of all dependencies
Ghostty 1.1.3 primarily addresses Gnome 48 and GTK 4.18 compatibility issues
but also includes bug fixes for all platforms. This release contains no
features or improvements and is only focused on stability and
compatibility. The next major release (1.2.0) will include new features
and improvements. This release includes changes from **11 contributors**
over **21 commits.**
##### Highlights
###### Gnome 48, GTK 4.18 Compatibility
PR:
[#6877](https://github.com/ghostty-org/ghostty/pull/6877)
Ghostty 1.1.3 is fully compatible with Gnome 48 and GTK 4.18.
GTK 4.18 changes the default renderer for GTK applications to the
["ngl" renderer](https://blog.gtk.org/2024/01/28/new-renderers-for-gtk/).
This change exposed some bugs in Ghostty's rendering code that caused
major visual glitches that effectively made Ghostty unusable on GTK 4.18
with prior versions (1.1.2 and earlier).
Since Ghostty now works with all current GTK GSK renderers, the
`gtk-gsk-renderer` configuration is deprecated and no longer has any effect.
If users want to force a specific GTK renderer, they can use the
standard GTK
[`GSK_RENDERER` environment variable](https://docs.gtk.org/gtk4/running.html#gsk_renderer).
The configuration option still exists but will be removed in Ghostty
1.2.0.
##### Full List
[Full list of closed issues on GitHub](https://github.com/ghostty-org/ghostty/milestone/6?closed=1).
- OSC 21 (Kitty color protocol): Ghostty no longer sends a response for
non-query requests.
[#5770](https://github.com/ghostty-org/ghostty/pull/5770)
- The pty no longer has an initialize size of `0x0`. The size is something
non-zero but may still be incorrect due to a race condition between
initializing the pty and drawing the GUI window. We do not consider
this a bug.
[#5776](https://github.com/ghostty-org/ghostty/pull/5776)
- Increase the maximum number of parameters for CSI sequences to 24.
This fixes some SGR sequences that were not working properly in
Kakoune.
[#5949](https://github.com/ghostty-org/ghostty/pull/5949)
- The default binding for `equalize_splits` is now usable by default
for US (and similar) keyboard layouts. It was previously an impossible
binding. The binding is `super+ctrl+shift+plus`.
[#5646](https://github.com/ghostty-org/ghostty/pull/5646)
- The elvish shell integration `sudo` feature now works properly.
[#5992](https://github.com/ghostty-org/ghostty/pull/5992)
###### macOS
- macOS: The new tab button is now more visible with semi-transparent
dark backgrounds.
[#5897](https://github.com/ghostty-org/ghostty/pull/5897)
- macOS: New windows created while the quick terminal is in focused
now properly transfer focus to the new window.
[#5834](https://github.com/ghostty-org/ghostty/pull/5834)
- macOS: Fix an issue where the terminal draw area would appear
garbled until focused under various conditions, most reliably when
a DPI change occurred.
[#6008](https://github.com/ghostty-org/ghostty/pull/6008)
- macOS: Fix an issue where the terminal inspector menu item would
become deactivated under certain conditions in the Quick Terminal.
[#6024](https://github.com/ghostty-org/ghostty/pull/6024)
- macOS: The equalize splits keybind and menu item now only affect
the focused tab, as expected.
[#6080](https://github.com/ghostty-org/ghostty/pull/6080)
###### Linux (GTK)
- GTK: Fix various rendering issues with the "ngl" GSK renderer.
This resolves compatibility issues with GTK 4.18 and Gnome 48.
[#6877](https://github.com/ghostty-org/ghostty/pull/6877)
- GTK: Treat negative content scale values from GTK as 1.0.
This fixes some known default setting issues on Gentoo systems.
[#5954](https://github.com/ghostty-org/ghostty/pull/5954)
- GTK: Make the split drag handle area smaller to allow selecting
text on the boundary. This fix isn't perfect but is an improvement.
A more comprehensive fix is planned for 1.2.0.
[#6000](https://github.com/ghostty-org/ghostty/pull/6000)
- GTK: The `title` c
_[Truncated at 4000 characters — full notes: https://github.com/ghostty-org/ghostty/releases/tag/v1.1.3]_
### v1.1.2
- Date: 2025-02-13
- Version: v1.1.2
- Original notes: https://github.com/ghostty-org/ghostty/releases/tag/v1.1.2
- Permalink: https://whatsnew.fyi/product/ghostty/releases/v1.1.2
- **fixed** — Fix critical regression on macOS that caused control-modified keys to not work properly in programs using Kitty Keyboard protocol
Ghostty 1.1.2 is a hotfix to fix a critical regression from 1.1.1
on macOS that caused control-modified keys to not work properly
in programs using Kitty Keyboard protocol such as Neovim and Fish 4.0.
This was released on the same day as 1.1.1, please see the
[1.1.1 release notes](https://ghostty.org/docs/install/release-notes/1-1-1).
**There are no changes in this release for Linux.** Package managers
can skip this release and stay on 1.1.1 until the next release if that
is more convenient.
### v1.1.1
- Date: 2025-02-13
- Version: v1.1.1
- Original notes: https://github.com/ghostty-org/ghostty/releases/tag/v1.1.1
- Permalink: https://whatsnew.fyi/product/ghostty/releases/v1.1.1
- **added** — Support for server-side decorations (SSD) on Linux X11 when window-decoration is set to server
- **fixed** — Input method editor (IME) support for the GTK simple input method that was broken in 1.1.0
- **fixed** — macOS renderer undefined behavior and visual artifacts when using discrete GPUs
- **changed** — goto_split and goto_tab now work properly with the performable: keybind prefix
- **changed** — The +list-actions CLI command now includes actions that have no associated documentation
- **added** — Keyboard navigation to the terminal IO window for the terminal inspector
- **fixed** — Crash that could occur when resetting the terminal with Kitty graphics on the screen
- **fixed** — Crash that could occur with very large OSC8 hyperlinks
- **fixed** — Character under the cursor is now visible when the cursor color matches the background color
- **fixed** — Crashes that could occur when loading themes that were not files
- **changed** — iTerm2 color themes updated to latest version
- **added** — New alternate artist-drawn icon choices on macOS available via macos-icon configuration
- **changed** — macOS now places the window at the location of the last focused window on startup
- **fixed** — macOS close confirmation now appears if there is an active but hidden quick terminal that requires close confirmation
- **fixed** — macOS control characters not working with certain keyboard layouts
- **fixed** — macOS graphical flickering when invoking the move_tab keybind
- **fixed** — macOS toggle_visibility now restores focus to the proper tab when called from a global keybind
- **fixed** — macOS command characters such as cmd+backtick no longer leak the unmodified character into the terminal
- **fixed** — macOS toggle_visibility no longer has any effect while the window is in native fullscreen
- **security** — Update Sparkle dependency to 2.6.4 to fix security issues
Ghostty 1.1.1 features **two weeks of work** with changes from
**13 contributors** over **125 commits.** The focus of this release
is on fixing regressions or bugs introduced as part of the 1.1.0
release. We've also snuck in some nice improvements to existing
features.
A critical regression was found in Ghostty 1.1.1 on macOS that caused
control-modified keys to not work properly in programs using the Kitty
Keyboard protocol such as Neovim and Fish 4.0. This was fixed in
[1.1.2](https://ghostty.org/docs/install/release-notes/1-1-2).
##### Highlights
###### Server Side Decorations (SSD) on Linux X11
PR:
[#5533](https://github.com/ghostty-org/ghostty/pull/5533)
Ghostty 1.1.0 introduced support for
[server-side decorations (SSD) on Linux for Wayland compositors](/docs/install/release-notes/1-1-0#server-side-decorations-(ssd)-on-linux).
This allows Ghostty to look and feel
more like a native application on a wider variety of desktop environments.
Notably, however, this did not work on X11.
With Ghostty 1.1.1, we've added support for SSD on X11 as well when
`window-decoration = server`. X11 doesn't provide a standard way to
tell us if it prefers SSD or client-side decorations (CSD), so SSD on
X11 only works with the explicit `server` configuration and does not work
with the `auto` value.
###### Continued Input Method Editor (IME) Improvements
PR:
[#5550](https://github.com/ghostty-org/ghostty/pull/5550)
[#5448](https://github.com/ghostty-org/ghostty/pull/5448)
A lot of effort went into Ghostty 1.1.0 to improve IME support, but
ironically broke the scenario where no input method was active (the
GTK "simple" input method). This has been fixed in 1.1.1.
A workaround in 1.1.0 was to install `ibus` or `fcitx`. This is no
longer necessary, and the "simple" input method should work as expected.
Additionally, on macOS, improved IME support regressed the ability for
certain keyboard layouts to input control characters (e.g. `ctrl+c`).
This has been fixed in 1.1.1.
###### macOS: Renderer Improvements for Intel GPUs
PR:
[#5625](https://github.com/ghostty-org/ghostty/pull/5625),
[#5652](https://github.com/ghostty-org/ghostty/pull/5652)
It turns out Ghostty was triggering undefined behavior on macOS
when using discrete GPUs. Practically, this only affected Intel Macs because
all Apple Silicon Macs have integrated GPUs and Ghostty will always prefer
an integrated GPU if available for power efficiency.
The undefined behavior would sometimes work but sometimes result in rendering
artifacts or other strange visual behaviors. We now properly detect
discrete GPUs and use the proper APIs and behaviors to avoid undefined
behavior.
##### Full List
[Full list of closed issues on GitHub](https://github.com/ghostty-org/ghostty/milestone/4?closed=1).
In each section, we try to sort improvements before bug fixes.
- `goto_split` and `goto_tab` now work properly with the `performable:`
keybind prefix.
[#5644](https://github.com/ghostty-org/ghostty/issues/5644)
- The `+list-actions` CLI command now includes actions that have no
associated documentation.
[#4958](https://github.com/ghostty-org/ghostty/issues/4958)
- Added keyboard navigation to the terminal IO window for the
terminal inspector.
[#3909](https://github.com/ghostty-org/ghostty/issues/3909)
- Fix a crash that could occur when resetting the terminal with
Kitty graphics on the screen.
[#5693](https://github.com/ghostty-org/ghostty/issues/5693)
- Fix a crash that could occur with very large OSC8 hyperlinks. There
are likely other scenarios where this crash could be triggered but
the entire class of crash has been resolved.
[#5666](https://github.com/ghostty-org/ghostty/issues/5666)
- Fix an issue where the character under the cursor would not be visible
when the cursor color matched the background color.
[#5570](https://github.com/ghostty-org/ghostty/issues/5570)
- Fix crashes that could occur when loading themes that were not files.
[#5632](https://github.c
_[Truncated at 4000 characters — full notes: https://github.com/ghostty-org/ghostty/releases/tag/v1.1.1]_