1.4.0 – Launch Notes

Ghostty 1.4.0 is a significant launch that features massive efficiency and
reminiscence enhancements, a 100% full Kitty graphics implementation together with
animation and relative placements (the primary non-Kitty terminal to take action),
SSH integration enhancements, and lots of extra enhancements and fixes
throughout all platforms.
This launch options 7 months of labor with adjustments from
172 contributors over 2,889 commits. Thank you to all of the contributors,
maintainers, group moderators, translators, packagers, and customers
who every helped make this launch doable.
These launch notes are painstakingly and lovingly hand-crafted
by human Ghostty maintainers, together with the total changelog. They take
a mixed 16+ hours to put in writing, so please take pleasure in. 🥰
- GHSA-4hwh-wx3w-3fqg.
Paste safety did not deal with carriage returns as line endings, so a
paste may run a command with out affirmation in applications that do not
use bracketed paste. This requires consumer interplay (copy-paste) to
set off. - GHSA-mhff-mv4q-fp63.
Malicious Kitty graphics instructions may crash or cling Ghostty, power
big allocations, or in restricted circumstances learn or delete information outdoors the
allowed momentary directories. This solely requires displaying malicious
output. - GHSA-hcr9-7hcr-mjm8.
Malicious terminal output may crash Ghostty, closing each window,
by way of tmux management mode. tmux would not must be put in. This impacts
Ghostty 1.3.0 and 1.3.1. - GHSA-hp9c-qp4q-cpw3.
The similar affect as above, by way of a tmux management mode structure with a
zero-sized or outsized pane. This impacts Ghostty 1.3.0 and 1.3.1. - GHSA-w9q4-5jvv-mcv4.
Clearing the display into scrollback may corrupt reminiscence if it deleted
the scrollback web page holding a styled or hyperlinked cursor. This solely
requires displaying malicious output, however solely with a small
scrollback-limitcomparable to0. The default is not recognized to be affected. - GHSA-2r63-vmw6-3m3c.
A crafted listing title may make the zsh shell integration ship
arbitrary escape sequences, comparable to silently changing the clipboard by way of
OSC 52. bash was affected in a extra restricted method. This solely requires
cd-ing right into a listing from untrusted content material, comparable to a cloned
repository. - macOS: GHSA-cw69-wm67-5pv8.
Cmd-clicking a crafted OSC 8 hyperlink may open unsafe native information or
customized URL schemes, resulting in arbitrary command execution. Ghostty now
blocks unsafe targets and confirms customized URL schemes. This requires
consumer interplay (cmd-click) to set off. - macOS: GHSA-mfw9-xcr3-7gfp.
The similar difficulty as above for hyperlinks detected by thehyperlinkconfiguration,
together with the default URL matcher. This requires consumer interplay
(cmd-click) to set off. - macOS: GHSA-v8cw-fg4j-jcc4.
Drag-and-drop textual content skipped paste safety, with the identical affect as
above. This requires consumer interplay (drag-and-drop) to set off. - macOS: GHSA-mxqx-236q-wrv7.
Opening a file whose title accommodates management characters may run a
completely different command than the one proven within the affirmation dialog. This
requires a crafted file in your system and confirming the dialog.
Note: I requested CVEs for the above advisories weeks in the past, however GitHub
hasn’t assigned them but. If/once they’re assigned, I’ll replace the
above with correct CVE numbers.
PRs: #12999 #13069 #13393 #14413 #14414
Ghostty 1.4 helps macOS 27 (Golden Gate). Most of the work was
compatibility fixes:
- Tabs within the titlebar (
macos-titlebar-style = tabs) lay out appropriately
once more. - The native tab bar now not attracts as a stable grey bar on high of your
theme. It now lets the brand new glass model mix along with your terminal
background. macos-titlebar-style = hiddennow not covers the highest traces of the
terminal when Reduce Transparency is on.- The app icon now not has a skinny border.
- The Shortcuts “New Window” motion now not opens two home windows when
Ghostty is working with none home windows.
Ghostty 1.4 stays absolutely suitable with prior macOS variations again to
and together with macOS 13 (Ventura). See the
system requirements for extra particulars.
Ghostty 1.3.1 works on macOS 27, nevertheless it has among the visible points
listed above, comparable to the grey tab bar.
PRs: #13943 #13939 #13935 #13934 #13893 #13933 #13389
#13270 #13281
Ghostty now helps Kitty graphics
animation
and relative placements.
These have been the final main options of the Kitty graphics protocol that
Ghostty did not help.
Programs that show animated photos with the Kitty protocol, comparable to an
animated GIF proven with kitten icat, now animate in Ghostty as a substitute of
displaying a single nonetheless body. Frame transmission, composition, and playback
management are all supported, and animations pause whereas the terminal is not
seen. Relative placements let a program place one picture relative to
one other picture’s placement, so the kid picture strikes together with its dad or mum.
We additionally did a full conformance move in opposition to the specification and Kitty
itself, fixing dozens of behavioral variations. For instance, photos now
scroll with textual content inside scroll areas (#4323 ), retransmitting a picture
ID replaces the previous picture (#6711 ), and invalid picture information now will get an
error response as a substitute of silence, which may go away shoppers hanging. The
full checklist is within the terminal capabilities part.
Kitty graphics are sooner, too. Image payloads are actually parsed in bulk
with SIMD as a substitute of 1 byte at a time, making massive picture transfers
about 16x sooner to parse in our benchmarks (64 MiB of picture information,
x86_64 Linux), and drawing photos prices a lot much less per body.
Our Kitty graphics implementation now covers 100% of the revealed
specification, making Ghostty (and libghostty) the primary terminal
to do that outdoors of Kitty itself.
PRs: #13264 #13473 #13240 #13245 #14130 #14137 #14138
#14017
Ghostty now transparently compresses scrollback that is not seen,
decreasing the bodily reminiscence these pages use by 70% to 90% for typical
text-heavy historical past. Compression solely runs whereas the terminal is idle and
pages are decompressed on demand whenever you scroll again or search, so it
has no measurable affect on I/O throughput.
Thanks to compression, the default scrollback restrict has been raised from
10 MB to 50 MB per terminal. On platforms that help compression, a
full scrollback nonetheless usually makes use of much less bodily reminiscence than the previous
10 MB restrict did.
Compression lowers resident (bodily) reminiscence, not digital reminiscence, so
take a look at resident reminiscence when measuring it. It is presently out there on
macOS and 64-bit Linux.
Beyond scrollback, reminiscence utilization is decrease in lots of locations:
- A brand new, empty terminal now makes use of about 16 KiB of terminal web page reminiscence
on macOS, down from 128 KiB in Ghostty 1.3.1. - On macOS and Linux, reminiscence freed by clearing or trimming scrollback is
now returned to the OS as a substitute of being held till the terminal closes. - Hidden tabs launch their GPU sources. On macOS, with one seen tab
and 20 hidden tabs, GPU reminiscence dropped from about 385 MiB to 18 MiB.
Rebuilding them when a tab turns into seen once more takes below a
millisecond.
PRs: #13209 #13220 #13226 #13227 #13537 #13827 #13587
#14011 #13722 #14035 #12760
There are efficiency enhancements throughout the board in Ghostty 1.4
that yield important features in comparison with prior Ghostty variations.
The largest win got here from a shocking discovery: on macOS, the kernel
caps each learn from a pty at about 1 KiB irrespective of how massive the learn
buffer is. Previously, Ghostty processed every learn because it arrived, so per-read
overhead was paid each kilobyte, and this system writing output sat
blocked whereas we parsed. Ghostty now drains the pty on one thread whereas
parsing on one other, elevating end-to-end I/O throughput by 25% to 55%
on macOS (M4 Max, plain and Unicode textual content) over Ghostty 1.3.x.
VT processing itself can be a lot sooner. In parser benchmarks, plain
ASCII textual content went from 128 MB/s to 725 MB/s (5.7x), CJK textual content bought 3.4x
sooner, and a 2.6 GB dataset of real-world terminal recordings
from asciinema is processed about 25% sooner.
Together, these adjustments took cat-ing a 150 MB textual content file on macOS from
1.5 seconds to 566 milliseconds.
Other notable enhancements:
- Resize: resizing a terminal with a big scrollback is about 6x
sooner (120×80 with 10,000 traces of scrollback), and 3x to 5x sooner
with historical past stuffed with CJK textual content or emoji. - Rendering: the renderer holds the terminal lock 2.7x to 11x
much less per body, leaving extra time for the I/O thread throughout heavy
output. - Copy and search: formatting terminal contents as plain textual content, HTML,
or VT, which backs clipboard copy,write_screen_file, and scrollback
search, is 1.5x to 8x sooner. - Launch (macOS): about 15% sooner from launch to seen window, and
27% sooner to the primary rendered body. - Idle power: on macOS, the renderer’s show hyperlink now sleeps when
there’s nothing to attract. On GTK, hidden tabs cease rendering, matching
macOS. - Large OSC sequences: OSC 52 clipboard payloads parse about 30x
sooner, and even quick sequences like title adjustments are about 6x
sooner.
The GTK app has a brand new rendering pipeline. It now not makes use of GtkGLArea.
Instead, the renderer attracts with EGL by itself thread, exports every body
as a DMABUF, and fingers it to GTK to show. Rendering is now
triple-buffered, which ought to enormously scale back tearing, and no OpenGL calls
run on the principle thread anymore, which allow us to take away numerous
workarounds.
The most seen result’s crisp textual content below fractional scaling. Text and
box-drawing characters are now not blurry with fractional show
scaling comparable to 125% or 150% (#1938 ). We fastened this as soon as earlier than, nevertheless it
got here again after upstream GTK adjustments. Ghostty now renders on the window’s
true fractional scale, so each rendered pixel maps to precisely one pixel
on display.
The new render floor wants a system EGL library (see
Changes for Package Maintainers).
On GPU drivers that may’t export DMABUFs, Ghostty falls again to copying
frames by way of the CPU, which is slower however works.
PRs: #13962 #13993 #13995 #13998 #14002 #14061
Ghostty now implements the
Kitty clipboard protocol
(OSC 5522) on each macOS and GTK. Ghostty 1.3 may parse the protocol
however did not implement it.
OSC 52 can solely learn and write plain textual content. The Kitty clipboard protocol
lets applications working within the terminal learn and write any form of clipboard
information, comparable to photos or HTML, and lets them choose among the many codecs on the
clipboard. Programs also can allow paste occasions (mode 5522), which inform
this system what codecs a paste accommodates so it may learn the one it
needs. This is how a terminal program can settle for a pasted picture, for
instance.
Clipboard entry follows the prevailing clipboard-read and
clipboard-write configurations. By default, reads immediate for permission
and writes are allowed. The permission immediate exhibits a preview of the
clipboard contents, together with photos. Programs that ship a password can
have your reply remembered for the remainder of that terminal session. A brand new
clipboard-write-limit-bytes configuration limits the dimensions of a single
write (default 64 MiB). A write over the restrict fails and leaves the
clipboard untouched.
You can now rearrange splits on GTK by dragging them, matching the macOS
function launched in Ghostty 1.3. When a tab has two or extra splits, every
break up exhibits a drag deal with on the high. Grab the deal with and drop the break up
onto every other break up, together with splits in different tabs and home windows. An
overlay exhibits which aspect of the goal break up it’s going to land on. The terminal
contents, working listing, and working processes all transfer with it.
A brand new drag-handle configuration controls when drag handles are proven on
each macOS and GTK: auto (default), at all times, or by no means. With by no means,
splits cannot be rearranged with the mouse. Hiding the handles was a
frequent request from customers who discovered them in the way in which.
On GTK, splits can solely be dropped onto different splits. Dragging a break up out
to create a brand new tab or window is macOS-only.
PRs: #14454 #13494 #14483 #14538 #14673 #14375 #14144
Ghostty 1.4 contains dozens of enhancements to core terminal emulation. We
now run esctest, Thomas Dickey’s
terminal conformance suite, in opposition to Ghostty’s terminal core in CI.
Alongside that, we fastened many variations from xterm in cursor motion
inside margins, tab stops, character units, mode reviews, and extra. You
can discover the total checklist of associated adjustments within the
terminal capabilities part.
Ghostty additionally helps a number of new sequences, together with delicate terminal reset
(DECSTR), prolonged cursor place reviews (DECXCPR), backarrow key mode
(DECBKM), and display dimension reviews in characters (CSI 19 t). Programs can
additionally now ask whether or not the terminal is seen utilizing
visibility reports
(mode 2033), to allow them to cease rendering whereas hidden.
Keyboard encoding additionally matches xterm extra intently, with fixes for
modifyOtherKeys mode 2 and legacy Alt-as-Escape encoding of non-ASCII
keys.
Two new sequences are disabled by default as a result of they are often abused by
untrusted applications, together with ones working on a distant machine:
# Allow applications to resize the window (CSI 8 t)
vt-window-resize-allowed = true
# Allow applications to request display checksums (DECRQCRA)
vt-xt-checksum-report = true
PRs: #12582 #12814 #13533 #13844 #14472 #14854
Ghostty 1.2 launched SSH shell integration features
as a piece in progress. In Ghostty 1.4, they’re backed by a brand new
ghostty +ssh CLI motion: a drop-in ssh wrapper that prepares the
distant session for Ghostty after which runs the actual ssh along with your
arguments forwarded unchanged.
ghostty +ssh [email protected]
alias ssh='ghostty +ssh --'
Before connecting, +ssh installs Ghostty’s terminfo on the distant host
so the correct xterm-ghostty TERM worth can be utilized, and forwards
COLORTERM, TERM_PROGRAM, and TERM_PROGRAM_VERSION. If the terminfo
set up fails (for instance, tic is not out there on the distant), it falls
again to TERM=xterm-256color. Flags comparable to --terminfo=false,
--forward-env=false, and --verbose management every step.
The ssh-env and ssh-terminfo shell integration options (nonetheless opt-in)
now name +ssh too. Previously, every shell integration carried its personal copy
of this logic, which made up roughly a 3rd of our shell integration
scripts. Now bash, zsh, fish, elvish, and Nushell all behave identically,
and you will get the identical habits from scripts or anyplace else by calling
ghostty +ssh instantly.
The terminfo set up itself can be extra dependable. Ghostty now at all times
installs its personal bundled terminfo moderately than accepting no matter
xterm-ghostty entry the distant already has, and it reinstalls
mechanically when a Ghostty replace adjustments the terminfo. It additionally now not
wants infocmp or Ghostty’s terminfo on the native machine. Installs are
cached per host and port, so two machines behind one handle now not
share a cache entry. And ssh-env now not silently overrides SetEnv
entries in your ~/.ssh/config (#11518 ).
The +ssh-cache command that manages this cache now takes positional
locations (ghostty +ssh-cache [email protected]) and has a brand new
--prune=30d flag. See the breaking changes if you happen to
script in opposition to +ssh-cache.
macOS: The minimal required macOS model for Ghostty 1.4 stays
unchanged (macOS 13 Ventura). Ghostty is now suitable with macOS 27.
GTK: Ghostty 1.4 requires GTK 4.18 and libadwaita 1.7, up from
GTK 4.14 and libadwaita 1.5 in Ghostty 1.3. This aligns with our
GTK/Adwaita version policy.
Notably, Ubuntu 24.04 LTS would not meet this requirement. Systems with
older GTK or Adwaita variations can work round this requirement by utilizing an
older model of Ghostty or the Flatpak bundle. #14330
OpenGL (GTK): The minimal required OpenGL model stays 4.3, however
Ghostty now renders by way of EGL as a substitute of GTK’s OpenGL widget. This
ought to be invisible for almost everybody, but when Ghostty fails to begin
with an EGL error, please be certain your GPU driver gives a working
EGL implementation.
We beforehand introduced that Ghostty 1.4 would require macOS 14.
Nothing pressured our hand to do that on this launch, so we stored macOS
13 help. We nonetheless plan to drop macOS 13 in a future launch. Apple
dropped safety help for macOS 13 within the fall of 2025, so we
suggest upgrading regardless.
The following behaviors have modified in 1.4.0:
copy-on-selecthas been reworked and now acceptsnone,major,
clipboard, oreach. The which means ofclipboardhas modified: it
beforehand copied to each the choice clipboard and the system
clipboard, and now copies solely to the system clipboard. If you set
copy-on-select = clipboardand need the previous habits, change it to
each. #12600 #12604- macOS:
copy-on-selectnow defaults tonone(beforehandtrue), so
deciding on textual content now not copies it anyplace and middle-click paste of the
choice now not works by default. To restore the 1.3 habits, set
copy-on-select = major. Note that an expresscopy-on-select = true
on macOS now copies picks to the system clipboard, which is
completely different from 1.3. #12600 #12604 - macOS:
cmd+arrow_upandcmd+arrow_downnow runjump_to_promptonce more,
matching Terminal.app and Ghostty 1.2. In 1.3, these keys have been hardcoded
to scroll to the highest and backside and could not be rebound. To maintain the 1.3
habits, setkeybind = cmd+arrow_up=scroll_to_topand
keybind = cmd+arrow_down=scroll_to_bottom. #12245 - GTK: The default
ctrl+shift+page_upandctrl+shift+page_downkeybinds
now transfer the present tab left and proper (move_tab), matching Firefox,
GNOME Terminal, and VS Code.jump_to_promptmoved to
ctrl+shift+arrow_upandctrl+shift+arrow_down, so applications working in
the terminal now not obtain these keys. If a program you utilize wants
them, unbind them withkeybind = ctrl+shift+arrow_up=unbindand
keybind = ctrl+shift+arrow_down=unbind. #4998 #12458
The checklist beneath accommodates deprecations that stay suitable at present by way of
a compatibility layer, however could break in a future launch if they’re
ignored:
scrollback-limithas been renamed toscrollback-limit-bytes, to make
room for the brand newscrollback-limit-lines. #13473copy-on-select = trueis changed withcopy-on-select = majoron
Linux and FreeBSD, orcopy-on-select = clipboardon macOS.
copy-on-select = falseis changed withcopy-on-select = none.
#12600 #12604
There isn’t any set timeline to take away these deprecations, however we suggest
adapting to the brand new configurations sooner moderately than later to keep away from
any doable disruptions sooner or later.
- Scrollback historical past is now transparently compressed whereas the terminal
is idle, decreasing the bodily reminiscence utilized by compressed scrollback by
70% to 90% for typical textual content. Compression is out there on macOS and 64-bit
Linux and may be disabled with the brand newscrollback-compression
configuration. Because of this, the default scrollback restrict has been
raised from 10 MB to 50 MB, which on common nonetheless makes use of much less reminiscence than
a full scrollback did beforehand. #13264 - A brand new configuration
scrollback-limit-lineslimits scrollback by quantity
of traces as a substitute of bytes. The currentscrollback-limitconfiguration
has been renamed toscrollback-limit-bytes(the previous title continues to
work). If each are set, the primary restrict reached applies, and each settle for
limitless. #13473 copy-on-selectnow acceptsnone,major,clipboard, andeach
and now not impacts middle-click paste (seemiddle-click-action).
clipboardnow copies solely to the system clipboard, so useeachfor the
earlier habits. The default on macOS is nownone. See the
breaking changes for migration particulars. #12600- A brand new configuration
middle-click-actionconfigures the habits of
middle-clicking:primary-paste(default) pastes from the choice
clipboard,clipboard-pastepastes from the system clipboard, and
ignoredoes nothing. #12478 - A brand new binding motion
move_tab_to_new_windowstrikes the present tab into
a brand new window of its personal. It can be out there within the command palette.
#2630 - A brand new CLI command
+explain-configprints the documentation for a
configuration possibility or binding motion, e.g.
ghostty +explain-config font-size. #11546 - The
+explain-configand+show-configCLI instructions now web page their
output by way of$GHOSTTY_PAGERor$PAGER(falling again tomuch less) when
run interactively. Paging may be disabled with--no-pageror by setting
the pager to an empty worth. #11940 - A brand new configuration
drag-handlecontrols when the break up drag handles
are proven:auto(default),at all times, orby no means. #13706 #13709 - Scrollback search now wraps round when navigating previous the primary or
final match. #11449 - A brand new configuration
link-osc8(defaulttrue) may be set tofalseto
disable OSC 8 hyperlinks solely. Disabled OSC 8 hyperlinks will not be
highlighted, previewed, copied, or opened. #13634 - Processes working in Ghostty now obtain a
GHOSTTY_SURFACE_ID
surroundings variable that uniquely identifies the terminal they’re
working in. #12027 - The right-click context menu now has a “Close Split” merchandise. #11173
#11174 - Upgrade to Unicode 18. #14293
- I/O throughput is 25% to 55% greater on macOS by studying from the pty
concurrently with parsing beforehand learn output. #13209 - VT processing is considerably sooner throughout the board. Plain textual content is up
to ~6x sooner, real-world output (measured in opposition to a big asciinema
dataset) is ~24% sooner, grapheme-heavy output is ~3x sooner, and DEC
particular graphics (line drawing), repeated characters (REP),
hyperlink-heavy output, and scroll areas are all sooner. #13220
#13226 #13231 #13294 #13625 #13826 #14356 - Large OSC sequences, comparable to OSC 52 clipboard writes, are parsed ~30x
sooner and small OSC sequences, comparable to title adjustments, ~6x sooner.
#14011 #13565 - Resizing with reflow is ~6x sooner with massive scrollback and 3x to 5x
sooner with scrollback heavy in vast characters comparable to CJK or emoji.
#13537 #13827 - Terminals use considerably much less reminiscence. A brand new terminal now makes use of ~16 KiB
of bodily reminiscence for its display as a substitute of 128 KiB on macOS, each
terminal web page makes use of 30% much less reminiscence, and reminiscence free of scrollback
(comparable to by clearing it) is now returned to the working system.
#13240 #13245 #14130 #14137 #14138 - Kitty graphics are sooner. Large picture transfers are parsed in bulk utilizing
SIMD, zlib-compressed photos decompress ~17% sooner, pixel format
conversion avoids an additional copy, and the per-frame value of drawing photos
is way decrease, particularly with Unicode placeholder photos on display or
lengthy scrollback. #13270 #13281 #13987 #14422 #14780 #14789 - Formatting terminal contents is 1.5x to 8x sooner, which accelerates
clipboard copy (plain, HTML, and VT),write_screen_fileand associated
actions, and scrollback search. #13587 - The renderer holds the terminal lock 2.7x to 11x much less time per body,
and glyph and font lookups are sooner. #13227 #14300 #14301 #14420
#14406 #13258 command-palette-entry = clearremoves all command palette entries,
together with the default entries. #12682window-padding-balancehas a brand new worthequalthat balances padding
equally on all 4 sides with out capping the highest padding. #11491themenow expands~to the house listing in theme file paths,
together with in separate mild and darkish themes. #13840+list-themesnow helpsgandGto leap to the primary and
final theme, andctrl+dandctrl+uto web page down and up. #13681
#14607- The terminal inspector can now copy terminal I/O occasions or export them
to a file. #13519 - Bundled themes up to date to release-20261019-151001-86a776d.
This provides 356 new themes and renames or removes none. The colours of 10
current themes modified upstream: Adwaita, Adwaita Dark, Atom One Light,
Catppuccin Frappe, Catppuccin Latte, Catppuccin Macchiato, Catppuccin
Mocha, Cursor Dark, Dark Modern, and Electron Highlighter. - Fix configuration parsing silently ignoring all settings after a remark
or clean line that occurred to finish at an inner buffer boundary. This
sometimes solely affected lengthy configuration information. #13638 - Fix a efficiency degradation the place, after a protracted uptime, the renderer
rebuilt its full terminal state on each body. #13585 - Fix the mechanically created configuration file being empty as a substitute of
containing the configuration template. #13774 +edit-configworks when$EDITORor$VISUALaccommodates arguments,
comparable tozed --new. #11897adjust-cursor-heightworks once more. #13225- Mouse choice enhancements: dragging after a
ctrl/cmdtriple-click
output choice now extends the choice by command output, autoscroll
stops when the display switches (e.g. to the alternate display), a power
contact on macOS selects the phrase on the press location with out beginning a
drag, and releasing a drag now not prompts a hyperlink or immediate click on.
#12830 - Double-click phrase choice now not continues throughout exhausting line breaks,
and double-clicking both half of a large character (comparable to CJK) selects
the entire phrase. #14354 #14391 - Wide characters on the edges of a range are actually constantly rendered
as chosen and included when copying, together with when the vast character
wraps onto a brand new inner web page. #14632 #14651 - Triple-click line choice now not pulls in neighboring immediate textual content
when clicking clean cells between OSC 133 immediate boundaries. #14553 - Link detection and double-click choice now not merge immediate textual content
with the command textual content subsequent to it when shell integration is lively.
#12435 - File paths opened with
cmd/ctrl-click now not embrace trailing
areas, which broke opening paths printed by some TUIs. #13505 - Mouse releases are actually reported to this system that obtained the mouse
press when clicking at a shell immediate with click-to-move enabled. This
fixes double-click choice in applications like fzf’sctrl+rhistorical past
search. #14710 - Shell redraws after a resize are now not processed on the previous terminal
dimension. This fixes one reason behind duplicated or misplaced prompts after
resizing. #14706 - Scrolling, comparable to clicking within the scrollbar, now works with very massive
scrollback (thousands and thousands of traces). #13048 - Custom
command-palette-entryactions with string parameters, comparable to
set_tab_title, now not have their parameters escaped when run from
the command palette. #13609 - HTML clipboard copies now not embrace a superfluous trailing newline.
#13543 - Copying as VT (
copy_to_clipboard:vt) and VT display information now protect
OSC 8 hyperlinks, empty gaps between textual content, and cells that solely have
a background colour, comparable to coloured standing bars. VT display information additionally
maintain trailing clean rows. #14711 #14725 #14766 - The mouse pointer now restores the form set by the working program
(OSC 22) after releasing modifier keys as a substitute of resetting to the
default. #14128 - Custom shaders now not obtain swapped choice foreground and
background colour uniforms. #14460 - Ghostty now not floods the logs with “adjusting web page capability”
messages throughout output with many kinds, graphemes, or hyperlinks.
#14631 - Fix stale wrap and immediate state on rows reused after scrolling or
erasing, which may trigger incorrect copy, search, choice, and reflow
outcomes. #14010 - Fix stale rendering of the earlier row after erasing or deleting a
wrapped vast character. #14054 - Fix a freeze when reloading the configuration whereas a program is flooding
the terminal with queries, comparable to colour queries. #14833 +list-themesnow not crashes on some keys when the search
matches no themes, and the keypad down key now strikes one row as a substitute of
21. #14612 #14605- Fix crashes in scrollback search after clearing the scrollback, resizing,
or erasing historical past. #11957 #13274 #13282 - Fix crashes and viewport corruption when resizing with scrolled-back
historical past or with the cursor close to the underside of the display. #12300
#12907 #12935 - Fix a use-after-free crash when clicking or deciding on textual content throughout heavy
output. #12463 - Fix a doable crash when reflowing hyperlinks throughout a resize. #13524
- Fix doable crashes or reminiscence corruption when scrolling or erasing rows
throughout a web page boundary that wanted extra capability. #13394 #13397 - Fix doable crashes and reminiscence corruption discovered by way of fuzzing when
printing causes a web page to develop, or after clearing the display into
scrollback. #11261 #13997 - Fix many latent crashes and undefined habits in choice, pins,
search, title and dealing listing updates, and resize error dealing with.
#12894 #13275 #13278 #13367 - Fix a doable crash or corrupted enter when many pty writes are queued,
comparable to throughout massive pastes. #13659 - Fix an out-of-bounds entry when IME preedit textual content with vast characters
consists between current vast characters, comparable to with Korean enter.
#12479 - Fix a crash when urgent or releasing mouse button 11. #14759
- Fix the
write_screen_file,write_scrollback_file, and
write_selection_fileactions leaking two file descriptors on every use,
which may finally forestall opening new terminals. #13644 - Fix reminiscence and file descriptor leaks in terminal I/O, together with for writes
in read-only mode and information learn by way of theenterconfiguration.
#13574 #13579 #13931
- vt: Kitty graphics animation is now absolutely supported: body transmission,
composition, animation management, and rendering. #5255 #13943 - vt: Kitty graphics relative placements (
P=,Q=,H=,V=) are actually
supported, permitting photos to be positioned relative to different photos.
#13939 - vt: Support the Kitty graphics transient picture utilization trace. Transient
photos are evicted first when picture storage is full. #13389 - vt: The Kitty clipboard protocol (OSC 5522) is now carried out on macOS
and GTK, together with paste occasions (mode 5522). Reads and writes observe
clipboard-readandclipboard-write, and a brand new
clipboard-write-limit-bytesconfiguration limits the dimensions of a single
write. #10549 #13962 #13993 #13995 #13998 #14002 #14061 - vt: Support visibility reviews (mode 2033 and
CSI ? 998 n), which inform
applications when the terminal isn’t seen, comparable to in a background tab
or on one other workspace, to allow them to cease rendering. #13494 - vt: Programs can resize the window with the xterm
CSI 8 ; rows ; cols t
sequence if the brand newvt-window-resize-allowedconfiguration is enabled
(default off). The request is ignored in splits, home windows with a number of
tabs, the short terminal, and fullscreen, maximized, or tiled home windows.
#1115 #14375 - vt: Support OSC 133
click_events=2, which reviews immediate clicks with
row coordinates relative to the immediate. #10865 #12953 - vt: Support delicate terminal reset (DECSTR,
CSI ! p), which resets
modes, margins, and textual content attributes with out clearing the display.
#14538 - vt: Support backarrow key mode (DECBKM, mode 67), which lets applications
select whether or not backspace sendsDEL(0x7f, the default) orBS
(0x08). #12226 - vt: Support the DECRQCRA and XTCHECKSUM display checksum reviews, which
are largely utilized by terminal check suites. Because a program can use these
to learn the display contents, they’re disabled until the brand new
vt-xt-checksum-reportconfiguration is enabled. The new
vt-xt-checksum-extensionconfiguration controls how the checksum is
calculated. #14483 - vt: Respond to
CSI 19 t(report display dimension in characters) and to
DECXCPR (CSI ? 6 n) prolonged cursor place requests. #14633
#14673 - vt: DECRQM now solutions ANSI mode queries (
CSI Ps $ p), reviews DECECM
and different unimplemented ANSI modes as completely reset like xterm, and
now not truncates mode numbers above 32767 in its reply. #12505
#14236 #14237 #14672 - vt: Ghostty terminfo now advertises overline help (
Smol/Rmol),
which lets tmux move overlines by way of. DECRQSS SGR replies now embrace
overline and curly, double, dotted, and dashed underline kinds.
#13649 #13653 #13470 - vt: The terminfo
Sefunctionality now resets the cursor to the configured
cursor-styleas a substitute of a gradual block. This fixes applications like Neovim
leaving a block cursor behind on exit. #12482 - vt: OSC payloads are actually restricted to eight MiB, Kitty graphics payloads to
65 MiB, and every cell to 64 combining codepoints, so terminal output
cannot simply exhaust reminiscence. This additionally fixes a reminiscence leak on invalid
Kitty graphics information. #12349 #13633 - vt: Experimental help for the
Glyph Protocol
(APC25a1), which lets applications register customized glyphs. Ghostty parses
and solutions requests however would not render registered glyphs but.
#12352 #12930 #12937 - vt: Parse the brand new program standing protocol (OSC 7501), which lets applications
report whether or not they’re idle, working, finished, blocked, or failed. This is
the primary terminal specification pioneered by the Ghostty undertaking.
libghostty can parse all of it, however the Ghostty GUI ignores it for now.
#14560 - vt: Parse (however don’t implement) the Kitty desktop notification protocol
(OSC 99). #10467 - vt: Parse (however don’t implement) the Kitty drag and drop protocol
(OSC 72). #13029 - vt: More tmux management mode fixes, together with crashes that working
tmux -CCmay set off. tmux management mode continues to be not hooked as much as
the GUI. #11395 #11935 #14262 #14680 - vt: Clearing the display at a immediate (e.g.
ctrl+lin bash or zsh) now
strikes prior output into scrollback even when the immediate isn’t on the
final row. Previously, the output was erased. #14660 #14668 - vt: Kitty graphics: transmitting a picture with an current ID now
replaces the picture and removes its previous placements, because the spec requires.
Interrupted or failed retransmissions now not go away stale photos on
display. #6711 #13723 #13893 - vt: Kitty graphics: photos now transfer with the textual content when a program scrolls
withCSI S,CSI T, or scroll margins, and are clipped to the scroll
area. #4323 #13935 - vt: Kitty graphics: mechanically assigned picture IDs now not collide
with IDs chosen by this system. #2197 #13934 - vt: Kitty graphics: delete instructions now match the spec and Kitty. Point
deletes (d=p,d=c) solely take away placements at that cell,d=asolely
removes placements on the seen display, vary deletes settle for empty
ranges, and deleting a lacking placement now not frees the picture.
#13652 #13895 #13898 #13932 - vt: Kitty graphics: command validation and responses now match Kitty.
This fixes lacking responses for invalid picture information that would cling
shoppers, false constructive question replies, misplaced IDs in chunked switch
replies, file transfers with an actualSdimension, and masses interrupted by
a non-chunk transmission. #13889 #13892 #13896 #13897 #13933
#14811 - vt: Kitty graphics: cropped supply rectangles are now not stretched,
andX/Yoffsets are stored inside the first cell. #13890 #13891 - vt: Kitty graphics: the cursor strikes after tall photos like Kitty does,
so consecutive photos now not overlap. #13887 - vt: Full reset (RIS) now not resets
image-storage-limitto the
default. #13951 - vt: OSC and APC sequences (comparable to Kitty graphics instructions) canceled by
CAN or SUB, or aborted by one other management character, are actually discarded
as a substitute of executed, matching xterm. #14453 #14812 - vt: With modifyOtherKeys degree 2, management keys, keypad keys, and
alt+escapenow encode like xterm. F13 to F25, Help, and Menu now ship
xterm’s perform key sequences in all legacy encoding modes. #14144
#14145 - vt: Legacy alt-as-escape encoding now sends the total UTF-8 sequence for
non-ASCII keys. #14146 - vt: Kitty keyboard protocol launch occasions now not repeat the typed
textual content for useless keys or degree 5 keys on GTK, which precipitated duplicated
characters in applications like Neovim. #13861 - vt:
ctrl+alt+shift+backspacenow sendsESC BSin legacy key encoding,
matching xterm. #14508 - vt: UTF-8 mouse mode (1005) now encodes the button appropriately, fixing
invalid reviews for the again and ahead mouse buttons. #14532 - vt: Foreground, background, and cursor colours reset with OSC 110, 111,
or 112 now observe later configuration adjustments, comparable to a light-weight/darkish
theme swap. #13650 - vt: Full reset (RIS) now restores palette colours modified with OSC 4.
#14480 - vt: An empty OSC 22 now resets the mouse pointer form to the default.
#14495 - vt: Long desktop notifications (OSC 9 and OSC 777) with multibyte UTF-8
textual content are now not dropped or proven as invalid UTF-8 when truncated.
#13795 #13811 - vt: DCS strings now carry UTF-8 information. Previously, some UTF-8 bytes have been
dropped, ended the string early, or began a brand new management sequence.
#14016 - vt: C0 controls
0x10to0x1Fare actually executed as a substitute of printed
as textual content, and UTF-8 encoded C1 controls are ignored, matching xterm.
#14022 #14023 - vt: Erasing a full line (
CSI 2 Ok) now clears its soft-wrap state, so
erased rows now not be part of collectively when the window is resized. #13637 - vt: The cursor and saved cursor maintain the proper place when a resize
reflows textual content, fixing an additional line wrap or overwritten textual content after
resizing. #12598 #14458 #14478 - vt: Variation selectors (VS15/VS16) now apply to the previous codepoint,
fixing the rendering of some ZWJ emoji such because the pirate flag. #12596 - vt: Combining marks printed after a personality within the final column now
connect to that character. #12581 - vt: Characters above U+00FF, comparable to emoji, now print as-is as a substitute of as
a clean whereas a non-UTF-8 character set comparable to DEC line drawing is
lively. #14554 - vt: Single shifts (SS2/SS3) now apply solely to the subsequent printed character.
#14576 - vt: Tab clear (TBC) fixes:
CSI 0 gnow not units a tab cease the place
there wasn’t one, andCSI gwith no parameter clears the tab cease at
the cursor. #13900 #14644 - vt: Printing with autowrap (DECAWM) disabled clears the pending wrap, so
re-enabling autowrap would not trigger a spurious line wrap. #14652 - vt: With reverse wrap enabled, shifting left after restoring a cursor with
a pending wrap now not jumps the cursor. #14390 - vt: Cursor motion respects margins and origin mode: CUB and backspace
cease on the left margin, and CHA, HPA, VPA, HPR, and VPR now not apply
the margin offset twice in origin mode. #14761 #14762 - vt: Fix a crash when VS15 narrows a large character below the cursor.
#13631 - vt: Fix a crash or reminiscence corruption after narrowing the terminal cuts a
vast character in half on the alternate display or with wraparound
disabled. #14509 - vt: Fix a crash when a grapheme cluster widens within the final column and
wraps inside or beneath a scroll area with grapheme clustering (mode
2027) enabled. #14552 - vt: Fix a gradual reminiscence and efficiency leak in graphics-heavy classes
the place evicted Kitty photos left their placements’ tracked positions
behind. #13656 - vt: Fix a reminiscence leak when an OSC colour sequence accommodates greater than two
requests. #13239
- A brand new
ghostty +sshCLI motion wrapssshand units up Ghostty on distant
hosts: it forwards Ghostty’s surroundings and installs Ghostty’s terminfo
on the primary connection to every host, caching profitable installs. It can
be used instantly (ghostty +ssh [email protected]) or as an alias
(alias ssh='ghostty +ssh --') with out shell integration. Thessh-env
andssh-terminfoshell integration options now use it for each
shell. #12582 ssh-terminfonow at all times installs Ghostty’s bundled terminfo on distant
hosts as a substitute of maintaining an current, probably outdated,xterm-ghostty
entry, and reinstalls it when a more moderen Ghostty adjustments its terminfo.
#13844ghostty +ssh-cachehas been reworked with positional locations, a
new--prunepossibility, constant output and exit codes, and error
messages that title the cache file. See the
breaking changes above. #12814 #13533ssh-terminfonow tells aside the identical host on completely different ports, so
terminfo is put in on every of them.ghostty +ssh-cacheaccepts
host:portlocations. #14472ssh-envnow not overridesSetEnventries in your~/.ssh/config.
#11518 #14854- bash: Failed instructions now report their actual exit standing on Bash 4.4+,
so command completed notifications now not report each command as
profitable. #14247 #14250 - nu: Tab completion for
sshandsudonow works with exterior
completers comparable to carapace. #13310 - bash: The bundled bash-preexec, used just for Bash variations older than
4.4 comparable to macOS’s/bin/bash, has been up to date to 0.7.0. #14120 - zsh: Fix a stray
{within the immediate and damaged immediate marking whenPS1
orPS2ends with a naked%. #11832 - bash: Fix “command not discovered” errors in subshells that inherit
PROMPT_COMMAND. #11690 - bash: Fix a syntax error when an current
PROMPT_COMMANDends with a
newline. #11621 - bash: Fix additional clean traces on the immediate when utilizing ble.sh. #11644
- bash: Fix the shell integration hook being added twice when it’s
sourced once more with an arrayPROMPT_COMMAND. #14266
- macOS: Support macOS 27. This fixes the structure and background colour of
titlebar tabs, a skinny border across the app icon, hidden titlebars
masking the highest traces of the terminal with Reduce Transparency enabled,
and the Shortcuts “New Window” motion opening two home windows. #13001
#13390 #14107 #14411 #12999 #13069 - macOS: When a terminal’s course of exits, a local bar now seems on the
backside of the terminal as a substitute of textual content being written into the terminal.
Commands that fail or exit sooner thanabnormal-command-exit-runtime
are highlighted in pink. #7649 #12251 - macOS: Quitting, or closing a window, when a number of home windows or tabs have
working processes now provides “Review Windows…”, which steps by way of
each so you possibly can resolve what to shut. #12742 #14062 - macOS: The command palette now highlights matching textual content, matches
initials, searches motion descriptions, and ranks outcomes by the place they
matched. #12264 #13610 #13624 - macOS: The search bar now remembers the final search and shares it with
different apps by way of the system discover pasteboard, like Safari and
Terminal.app. #12516 #12712 - macOS: Screen readers comparable to VoiceOver are actually notified when the
choice adjustments as a substitute of studying a stale choice. #12902 - macOS: The AppleScript
terminalclass and the Shortcuts terminal entity
now exposepid(of the foreground course of) andtty. #11592
#10756 #11922 - macOS: AppleScript tabs and terminals have a brand new read-write
title overrideproperty to set or clear a customized title. #12048
#14733 - macOS: Middle-clicking a tab closes it with
macos-titlebar-style = tabs. #11962 #11963 - macOS: The model within the About window now hyperlinks to the discharge notes
for that model. #11964 - macOS: Updates which can be downloaded and put in mechanically now not
immediate you to restart. Checking for updates manually nonetheless provides to
restart. #13623 - macOS:
toggle_background_opacitynow applies to each tab within the
window, and new home windows inherit the present state. #11583 - macOS:
cmd+arrow_upandcmd+arrow_downnow run their configured
keybinds, which default tojump_to_prompt. Ghostty 1.3 at all times scrolled
to the highest or backside of the scrollback as a substitute, ignoring the
configuration. To scroll to the highest or backside, usecmd+residenceand
cmd+finish. #12245 - macOS: In the configuration errors window, Return reloads the
configuration and Escape ignores the errors. #12601 - macOS: Ghostty launches about 15% sooner to a visual window and attracts
its first body about 27% sooner. #13722 - macOS: Terminals that are not seen, comparable to background tabs, now
launch their GPU sources and rebuild them when proven once more. With 20
background tabs, GPU reminiscence drops from about 385 MiB to 18 MiB. Metal
buffers additionally now not over-allocate once they develop. #14017 #13490 - macOS: Lower idle CPU and power use. The show hyperlink now pauses when
there may be nothing to attract, and unfocused terminals which can be animating
draw at most as soon as per show refresh as a substitute of as soon as per write.
#14035 #14068 - macOS: Update Sparkle to 2.9.6, which fixes a number of safety advisories
in Sparkle, together with CVE-2026-47121 and CVE-2026-47122. #14072 #14082 - macOS: Global keybinds now not cease working after macOS disables
Ghostty’s occasion faucet. #12294 #12714 - macOS: Fix IME composition points. Korean textual content being composed is now
dedicated as a substitute of misplaced when urgent an arrow key, and control-key
IME shortcuts comparable to Japanese enter’sctrl+jnow not ship management
characters to the terminal. #11461 #12447 #12518 #12547 - macOS: Text from enter strategies, dictation, and the emoji picker is now
despatched as typed enter as a substitute of pasted textual content. Programs now not deal with
dictation as a paste, and switching enter sources mid-composition sends
the pending textual content as keys, matching Terminal.app. #13195 #13222
#13817 - macOS: Unicode Hex Input can now enter characters outdoors the Basic
Multilingual Plane, comparable to emoji, typed as surrogate pairs. #13733
#13737 - macOS:
font-thickennow additionally applies to IME preedit textual content. #14230 - macOS:
possibility+backspaceand different modified Backspace keys now report
their modifiers with the Kitty keyboard protocol as a substitute of sending a
naked DEL. #13871 - macOS: Pasting and dropping textual content now want plain textual content over URLs, so a
path copied from apps like Transmit pastes as a path as a substitute of an
sftp://URL. #13152 #13170 #13212 - macOS: The search bar retains focus whenever you click on in it or on the
subsequent/earlier buttons, and the terminal’s focus state is now right
whereas search is open. #11872 #11978 - macOS: The Find Next and Find Previous menu gadgets and the
navigate_searchandend_searchkeybinds now work appropriately,
together with whereas the search area is concentrated. #12070 #12492 - macOS: Pressing Enter within the search bar now not blocks confirming an
IME candidate. #12781 - macOS: Clicking a command palette entry with the mouse now runs it
as a substitute of closing the palette. #11665 - macOS: The command palette now will get focus and paste when opened from the
inline tab title editor. #12524 - macOS: Holding
cmd+tto create many tabs now leaves the latest tab
centered. #13725 #13985 - macOS: Fix an empty “ghost” tab or window that would seem when a tab
was closed proper after it was opened. #12119 - macOS: Titlebar tabs now not disappear after making a tab from
“Show All Tabs”. #12949 #13017 - macOS: Double-clicking the window title now zooms the window with
macos-titlebar-style = tabs. #12219 - macOS: Moving a tab with
macos-titlebar-style = tabson macOS 26 no
longer briefly exhibits the neighboring tab. #14847 - macOS: The inline tab title editor stays in place whereas the window is
resized. #12220 - macOS: Fix tabs flashing when switching tabs after a program modified the
background colour with OSC 11, and the window chrome maintaining the previous
colour after a light-weight/darkish theme swap. #12825 #12828 #12822 - macOS: The
macos-glass-regularandmacos-glass-clearchoices for
background-blurnow layer the glass over the background colour, and
centered home windows are now not much less clear than unfocused ones.
#13914 #13928 - macOS: The native titlebar now not cuts off the tip of the title when
utilizing a customizedwindow-title-font-family. #14135 #14217 - macOS: Fix terminals rendering at a stale dimension below heavy system load or
throughout speedy resizes from window managers. #12143 - macOS: Splits dragged into one other tab or window now render instantly,
and the supply window retains keyboard focus. #12343 #12338 - macOS: The break up zoom indicator now not stays seen after the opposite
splits of a zoomed break up are closed, comparable to with AppleScript. #14703 - macOS: The break up divider now makes use of the usual row and column resize
pointers. #13433 - macOS:
window-save-state = by no meansnow additionally stops macOS from taking
window restoration snapshots, which may stall focus adjustments between
home windows. #14506 - macOS: Window state saved by Ghostty 1.2 or later is now migrated, so
home windows and tabs are restored after updating Ghostty. #12461 - macOS: Tabs created whereas the display is locked now initialize appropriately.
#13639 - macOS: Quitting now asks for affirmation when home windows with working
processes are minimized or the short terminal is hidden. #13686 - macOS: OSC 52 clipboard learn confirmations now not steal focus. If the
terminal is unfocused, Ghostty rings the bell and exhibits the immediate when
you come to it. #13744 - macOS: Splits within the fast terminal now additionally set
GHOSTTY_QUICK_TERMINAL=1. #12895 #12896 - macOS: The fast terminal now not reopens at a stale dimension after a
show is reconnected at a distinct decision. #13250 - macOS: The “New Ghostty Tab Here” and “New Ghostty Window Here” companies
now open the proper listing when given a plain-text path. #12727
#12731 - macOS: Working directories handed from Services, Shortcuts, and
AppleScript are actually normalized, fixing Nushell and zsh%1~prompts.
#12614 #14051 - macOS:
ghostty -enow not opens the command’s file arguments as
additional terminals, e.g.ghostty -e vim file.txt. #13748 - macOS: Opening a
.commandfile from Finder now not corrupts
non-ASCII characters in its path. #13862 - macOS: The Shortcuts terminal entity now reviews the proper variety,
title, working listing, and screenshot for brand spanking new terminals. #13007 - macOS: The Shortcuts “New Terminal” motion now works with instructions that
have arguments and with a command area that was cleared. #12391
#12392 - macOS: AppleScript
ship keynow works for character keys, not solely
particular keys likeenter, and respectsmacos-option-as-alt. #13205 - macOS: Update tablet fixes: replace errors are actually proven, “Install and
Relaunch” now not asks for affirmation, and the cancel possibility is
hidden as soon as an replace can now not be canceled. #13540 #13562
#13612 - macOS: The default app icon follows the system icon model once more after
altering it in System Settings, and customized icons now apply to the app in
Finder. #12180 #12344 - macOS: The dock icon bell badge now seems when notification permission
was granted earlier with out badge permission. #12133 - macOS: The Copy menu merchandise is disabled when nothing is chosen. #12521
- macOS: Menu gadgets now present the proper shortcut for keybinds on bodily
keys (e.g.tremendous+backquote), uppercase letters, ahead delete, and
thescroll_to_selectionandsearch_selectionactions. #13888
#12039 #12011 #12281 - macOS: The safe enter indicator’s popover arrow now factors on the
icon. #12249 - macOS: Fix a uncommon everlasting freeze after waking from sleep or altering
shows. macOS didn’t mark the app as “Not Responding”, so it may
solely be killed. #14691 - macOS: Fix a crash when closing a tab, most simply triggered with
undo-timeout = 0. #13359 #13364 - macOS: Fix a crash when opening a brand new tab from a local fullscreen
window. #13636 - macOS: Fix a crash brought on by a knowledge race when studying cached terminal
contents. #13646 - macOS: Fix a crash when OSC 52 clipboard affirmation prompts overlap.
#13648 - macOS: Fix crashes when CoreText returns null, comparable to for fonts with out
a show title or below extreme reminiscence stress. #13642 #13679 - macOS: Fix closed home windows leaking with clear titlebars (the
default), which made Ghostty and WindowServer use extra CPU and reminiscence
over time. #13601 - macOS: Fix a reminiscence leak every time Ghostty reads terminal textual content, comparable to
for copy, Quick Look, or accessibility. #12020 #12025 - macOS: Fix an IOSurface reminiscence leak when scripts quickly create and shut
terminals. #13640 - macOS: Fix a Mach port leak, and a gradual slowdown, whereas international
keybinds await Accessibility permission. #13590
- GTK: Splits can now be rearranged with drag and drop, matching macOS.
Drag a break up by its deal with and drop it onto one other break up, together with
splits in different tabs and home windows. #10224 #10423 - GTK: Ghostty now renders on the true fractional scale (e.g. 125% or
150%), so textual content and box-drawing characters are sharp as a substitute of blurry
below fractional scaling. #1938 #14269 - GTK: The renderer now not makes use of
GtkGLArea. Ghostty now renders with
EGL solely on the render thread and fingers completed frames to GTK as
DMABUFs, so the principle thread now not does any OpenGL work. #14052
#14636 - GTK: Windows can now be renamed utilizing the menu, command palette, or the
newprompt_window_titleandset_window_titlebinding actions.
#10469 #10999 - GTK: A brand new
+new-tabCLI command opens a brand new tab in a working Ghostty
occasion. When run from inside Ghostty, the tab opens in the identical
window. It accepts the identical-e,--working-directory, and--title
flags as+new-window. #11762 - GTK: A brand new
+toggle-quick-terminalCLI command toggles the short
terminal of a working Ghostty occasion, helpful for binding in window
managers with out international shortcut help. #12661 - GTK: Global keybinds now use the
vicinae-hotkey-v1Wayland protocol
when the compositor helps it (e.g. Hyprland 0.56+), falling again to
the XDG desktop portal in any other case. Ghostty exhibits a desktop notification if
a world keybind cannot be registered. #13464 - GTK:
quick-terminal-screenis now supported on Wayland. The default,
fundamental, locations the short terminal on the compositor’s major output
(or the primary monitor if the compositor would not report one). Set it to
mouseto let the compositor select, which was the earlier habits.
#11117 - GTK: On Wayland,
background-blurnow makes use of the compositor-agnostic
ext-background-effect-v1protocol as a substitute of KDE’s blur protocol,
enabling blur on compositors comparable to Niri. The blur area additionally now not
covers the window’s client-side shadows. #10721 #10720 #10727 - GTK: On GTK 4.23.3 and newer,
background-blurmakes use of GTK’s built-in
background blur, which covers the window extra precisely. #13581
#13586 - GTK: The
open_configbinding motion now acceptsnew_windowto
edit the configuration in$VISUALor$EDITORin a brand new Ghostty
window. The default,os_open, retains the earlier habits. #11905 - GTK: A brand new configuration
gtk-horizontal-tab-scroll(defaulttrue)
may be set tofalseto cease two-finger horizontal scrolling from
switching tabs, passing the scroll to the terminal utility as a substitute.
#12659 - GTK: A brand new configuration
gtk-tabs-invertedstrikes the shut button to
the beginning of every tab, in each the tab bar and the tab overview.
#14657 - GTK: The default command palette entries are actually translatable. #11641
- GTK: The embedded Noto emoji fonts have been up to date, so newer emoji and ZWJ
sequences such because the head-shaking faces render as one glyph as a substitute of
overlapping neighboring cells. #14047 - GTK:
ctrl+shift+page_upandctrl+shift+page_downnow transfer the present
tab left and proper (move_tab), matching Firefox, GNOME Terminal, and
VS Code.jump_to_promptmoved toctrl+shift+arrow_upand
ctrl+shift+arrow_down. #4998 #12458 - GTK: URLs now open by way of the XDG desktop portal, falling again to
xdg-openif the portal is unavailable. Ghostty passes an activation
token so the opened utility, comparable to your browser, can come to the
entrance on compositors that require one. #5991 #11754 #14785
#14787 - GTK: Desktop notifications are actually withdrawn when their terminal is
centered or closed, and repeated notifications with the identical textual content
change one another, matching macOS. #14108 - GTK: Tabs that are not seen now not render, saving CPU and GPU.
This matches macOS. #12760 - GTK: The Dolphin “Open Ghostty Here” motion now opens a brand new window in
the working Ghostty occasion as a substitute of launching a separate one.
#11614 - GTK: Fix Ghostty generally failing to launch with systemd 262, which
refused to begin the service as a result of Ghostty reported readiness earlier than
it may deal with reload indicators. #14398 #14399 - GTK: Fix deeply nested splits generally turning into invisible or shedding
focus. #11193 #12698 - GTK: Resizing splits, particularly with
resize_splitkeybinds, no
longer glints. #13414 - GTK:
resize_spliton nested splits now not causes massive jumps in
dimension. #12699 - GTK: Splits can now not be resized smaller than one cell, by dragging
the divider or withresize_split. #14476 - GTK: High-resolution scroll wheels now not scroll a lot sooner than
normal scroll wheels. #12483 - GTK: Disable undesirable kinetic scrolling on trackpads with GTK variations
older than 4.20.1. #11793 - GTK: Middle clicks are as soon as once more despatched to terminal purposes utilizing
mouse reporting whengtk-enable-primary-pasteis disabled in
GSettings. #12940 #13108 - GTK: The fast terminal now not breaks when toggled off manually
whereasquick-terminal-autohideis enabled. #11679 #12471 - GTK: Opening the right-click context menu now not hides the short
terminal whenquick-terminal-autohideis enabled. #12843 - GTK: The resize overlay now not retains reappearing when the scrollbar
is seen and now not blocks mouse enter whereas proven. #11970
#11972 - GTK: The most window dimension is now primarily based on the monitor the window is
presently on, not the monitor it was opened on. #13171 - GTK:
+new-window -enow works whenshell-integrationis about to a
particular shell.+new-windowand+new-tabadditionally settle for a brand new
--shell-integrationflag. #12378 #13741 - GTK: Keys remapped to modifiers with XKB (e.g. Delete remapped to
ISO_Level3_Shift) now not additionally ship the unique key. #13967 - GTK: On Wayland, the IME candidate window now follows the cursor whereas
composing and now not covers the road being edited. #14729 - GTK: Splits in a tab that was moved to a different window now act on the
new window (e.g.toggle_fullscreen). #14474 - GTK: The mouse cursor retains its textual content form whereas deciding on textual content.
#14558 - GTK: The command palette now makes use of the terminal colours when
window-theme = ghostty. #14662 - GTK: Opening URLs now not fails when the fallback opener (
xdg-open)
produces massive output. #12797 - GTK: Clicking a desktop notification now not focuses the fallacious
terminal when the one which despatched it has since been closed. #12028 - GTK: A bell within the centered terminal now not leaves the bell
indicator set. #13597 - GTK: Fix the window repeatedly redrawing within the background after an
indeterminate progress bar (OSC 9;4) was eliminated. #14704 #14738 - GTK: Log lacking or invalid
gtk-xft-dpivalues as soon as as a substitute of
repeatedly. #14410 #14085 #14434 - GTK: Fix a crash when closing tabs or splits on GTK 4.20 (GNOME 49).
#12426 - GTK: Fix a crash with international keybinds or on configuration reload when
no D-Bus connection is out there. #13101 - GTK: Fix a doable crash when Fontconfig reviews a font’s language as a
plain string as a substitute of a language set. #14853 - GTK: Fix a leak the place each audio bell began a brand new GStreamer pipeline
and threads that have been by no means cleaned up, slowly elevating CPU utilization.
#13647 #12815 #13657 - Snap: Link the system FreeType, Fontconfig, HarfBuzz, libpng, and zlib
as a substitute of bundled copies, fixing frequent crashes brought on by two copies
of the identical library in a single course of. #14392 #14682 - Snap: The snap’s personal GIO modules and XDG information directories now take
precedence over the host’s. #12045 - Snap: Programs working inside Ghostty, comparable to
clear, now discover the
xterm-ghosttyterminfo entry. #12662 - Flatpak: Commands began by Ghostty on the host are actually terminated if
Ghostty crashes. #12427
Ghostty 1.4 introduces full localization for the command palette and provides
help for 4 new languages:
- Basque
- Belarusian
- Danish
- Serbian (Cyrillic and Latin scripts)
Localization is maintained by volunteer contributors. If you wish to
assist localize Ghostty in your language, please open a dialogue on the
GitHub repo. Thank you to all of the volunteers who contributed to Ghostty’s
localization!
- Ghostty now requires Zig 0.17 to construct. #14518 #14519
- GTK builds now require GTK 4.18 and libadwaita 1.7, up from
GTK 4.14 and libadwaita 1.5. Builds in opposition to older headers fail at
compile time, and Ghostty exits at startup if older libraries are
loaded at runtime. #14330 - GTK builds now hyperlink the system EGL library (pkg-config
egl, normally
supplied by libglvnd or Mesa) for the brand new renderer. At runtime, Ghostty
makes use of GTK’s EGL show when it may, and in any other case wants an EGL driver
that helps the surfaceless platform. #14052 #14636 - A brand new
-Dinstalled-exe-pathconstruct possibility units absolutely the executable
path written into the desktop file, D-Bus companies, and systemd consumer
service. Previously this path got here from the set up prefix. Without the
possibility, these information now titleghosttyalone, which systemd solely finds in
/usr/binor/usr/native/bin, so set it for every other prefix.
#14805 #14806 - When linking the system gtk4-layer-shell (
-fsys=gtk4-layer-shell),
model 1.0.4 or newer is now required. Ghostty now not disables the
fast terminal on older variations, which might crash on some compositors.
#11559
As with 1.3, libghostty is not instantly a part of the Ghostty 1.4 launch.
But a big a part of the 1.4 growth cycle went into libghostty, so
here is an replace.
Over the previous 6 months, the C API for libghostty-vt has grown from a
parser and some encoders into a whole terminal emulator API, adopted
by dozens of free and industrial terminal emulators utilized by thousands and thousands of
folks. It’s exhausting to quantify precisely, however the variety of folks utilizing a
libghostty-based terminal is confidently a number of occasions the variety of
folks utilizing the Ghostty GUI.
libghostty-vt now builds for macOS, Linux, Windows (MSVC and GNU), FreeBSD,
Android, iOS, and WebAssembly, and CI repeatedly verifies each one among
these targets. The objective is for libghostty-vt to be usually usable in every single place,
inside cause, so if you’d like extra goal help, tell us!
It’s additionally simpler to combine libghostty-vt into current construct techniques.
There’s CMake help, Nix packaging, an xcframework, and a supply
tarball, along with the prevailing pkg-config file. libghostty-vt no
longer wants libc++, and it may construct freestanding.
The API continues to be marked as a piece in progress and broke compatibility
a number of occasions throughout this cycle, so anticipate extra breaking adjustments earlier than
a tagged launch. The API documentation
and the Zig, C, C++, Swift, and WebAssembly examples
(now over 30) are stored updated with fundamental.
We’re going to do a closing move over the C API, break ABI another time,
after which probably tag a libghostty 1.0 launch very quickly.
Ghostty is a non-profit project, fiscally sponsored
by Hack Club.
All of our funds are public on HCB,
so you possibly can see precisely the place each greenback goes.
During the 1.4 cycle, we paid $41,820 to contributors below contract and
spent about $1,260 on roads comparable to web site internet hosting.
I’m blissful to share that we have now signed our first two 12-month contracts,
which give contributors secure, long-term paid work on Ghostty and assist
guarantee the continued stability and sustainability of the undertaking:
- @trag1c is Ghostty’s head of operations.
He manages the group on GitHub and Discord, coordinates our
volunteer translators, and maintains numerous different vital undertaking
techniques. - @vancluever works on numerous Ghostty
subsystems. In this cycle, he led the improve to Zig 0.16, moved the
construct off Zig’s deprecated@cImport, up to date the bundled Fontconfig,
and extra. He’s additionally the writer of
z2d, the 2D graphics library Ghostty
makes use of to attract box-drawing characters and different sprite glyphs.
If you’d prefer to help Ghostty, please go to our sponsorship page.
The major focus of the roadmap continues to be libghostty performance,
stability, and portability. During the final launch cycle, I stated I aimed to
tag a libghostty launch. We have not finished that but, however I’m assured we are going to
accomplish that earlier than Ghostty 1.5.
libghostty is a undertaking that continues to be the tide that lifts all boats.
libghostty enhancements tie on to Ghostty GUI enhancements in addition to
dozens of different massive initiatives within the ecosystem. As extra massive initiatives undertake
libghostty, libghostty tends to get extra testing and a spotlight, and this
creates a cycle that yields essentially the most acquire for terminal emulators in every single place.
macOS and GTK builds of Ghostty have proficient, succesful maintainer groups that
are persevering with to enhance them, so they are not uncared for by any means!
As a undertaking, we have determined to drop any roadmap for Windows help within the
Ghostty GUI. libghostty absolutely helps Windows (and we check it in CI), and the
official stance now could be that downstream initiatives ought to use that.
Our launch cycle stays 6 months. This launch was delayed by one month,
however Ghostty 1.5 is deliberate for March 2027. libghostty could have a separate
launch cycle.
