<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ghostty.git/src, branch 1.1.x</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/'/>
<entry>
<title>backport(1.1.x) gtk: ensure that the content scale is always positive (#6890)</title>
<updated>2025-03-23T21:38:59+00:00</updated>
<author>
<name>Mitchell Hashimoto</name>
<email>m@mitchellh.com</email>
</author>
<published>2025-03-23T21:38:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=80030f20f076c4d1b953fc409a57d4a06d542c2f'/>
<id>80030f20f076c4d1b953fc409a57d4a06d542c2f</id>
<content type='text'>
If GTK reports a negative or zero scale, we ignore that and use 1.0 for
the scale.

Backport of #5954</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If GTK reports a negative or zero scale, we ignore that and use 1.0 for
the scale.

Backport of #5954</pre>
</div>
</content>
</entry>
<entry>
<title>Fix elvish sudo integration and update documentation</title>
<updated>2025-03-23T21:31:55+00:00</updated>
<author>
<name>Yappaholic</name>
<email>sav.boyar@gmail.com</email>
</author>
<published>2025-02-25T20:17:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=3423cfdc7156939321f6ab5ddc3cb3874a94d787'/>
<id>3423cfdc7156939321f6ab5ddc3cb3874a94d787</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>gtk: ensure that the content scale is always positive</title>
<updated>2025-03-23T21:30:49+00:00</updated>
<author>
<name>Jeffrey C. Ollie</name>
<email>jeff@ocjtech.us</email>
</author>
<published>2025-03-23T21:30:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=8fdb3e6e99dedf0067ea68c954409332162e1a67'/>
<id>8fdb3e6e99dedf0067ea68c954409332162e1a67</id>
<content type='text'>
If GTK reports a negative or zero scale, we ignore that and use 1.0 for
the scale.

Backport of #5954
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If GTK reports a negative or zero scale, we ignore that and use 1.0 for
the scale.

Backport of #5954
</pre>
</div>
</content>
</entry>
<entry>
<title>apprt/embedded: utf8 encoding buffer lifetime must extend beyond call</title>
<updated>2025-03-23T21:28:37+00:00</updated>
<author>
<name>Mitchell Hashimoto</name>
<email>m@mitchellh.com</email>
</author>
<published>2025-03-20T03:55:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=3264051f8d0a2f3451183d019cbd4286903376c1'/>
<id>3264051f8d0a2f3451183d019cbd4286903376c1</id>
<content type='text'>
Fixes #6821

UTF8 translation using KeymapDarwin requires a buffer and the buffer was
stack allocated in the coreKeyEvent call and returned from the function.
We need the buffer to live longer than this.

Long term, we're removing KeymapDarwin (there is a whole TODO comment in
there about how to do it), but this fixes a real problem today.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #6821

UTF8 translation using KeymapDarwin requires a buffer and the buffer was
stack allocated in the coreKeyEvent call and returned from the function.
We need the buffer to live longer than this.

Long term, we're removing KeymapDarwin (there is a whole TODO comment in
there about how to do it), but this fixes a real problem today.
</pre>
</div>
</content>
</entry>
<entry>
<title>apprt/gtk: any preedit change should note a composing state</title>
<updated>2025-03-23T21:26:10+00:00</updated>
<author>
<name>Mitchell Hashimoto</name>
<email>m@mitchellh.com</email>
</author>
<published>2025-03-17T18:41:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=b2ad90fe18061f68a2bc5b608ec10d672747195f'/>
<id>b2ad90fe18061f68a2bc5b608ec10d672747195f</id>
<content type='text'>
Fixes #6772

When typing Korean with the fcitx5-hangful input method, moving between
graphemes does not trigger a preedit end/start cycle and instead just
clears the preexisting preedit and reuses the started state.

Every other input method we've tested up until now doesn't do this. We
need to mark composing set to "false" in "commit" because some input
methods on the contrary fail to ever call END.

What is the point of start/end events if they are just ignored depending
on the whim of the input method? Nothing. That's what. Its all a mess
that GTK should be protecting us from but it doesn't and now its the app
developer's problem. I'm frustrated because I feel like the point of an
app framework is to mask this kind of complexity from the app developer
and I'm playing whack-a-mole with input methods.

Well, here's another whack. Let's see if it works.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #6772

When typing Korean with the fcitx5-hangful input method, moving between
graphemes does not trigger a preedit end/start cycle and instead just
clears the preexisting preedit and reuses the started state.

Every other input method we've tested up until now doesn't do this. We
need to mark composing set to "false" in "commit" because some input
methods on the contrary fail to ever call END.

What is the point of start/end events if they are just ignored depending
on the whim of the input method? Nothing. That's what. Its all a mess
that GTK should be protecting us from but it doesn't and now its the app
developer's problem. I'm frustrated because I feel like the point of an
app framework is to mask this kind of complexity from the app developer
and I'm playing whack-a-mole with input methods.

Well, here's another whack. Let's see if it works.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(Metal): force a full rebuild in `setFontGrid`</title>
<updated>2025-03-23T21:23:10+00:00</updated>
<author>
<name>Qwerasd</name>
<email>qwerasd205@users.noreply.github.com</email>
</author>
<published>2025-02-26T19:11:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=9d5e64a76ffcb300cf7565b088cb1d3adaf727c4'/>
<id>9d5e64a76ffcb300cf7565b088cb1d3adaf727c4</id>
<content type='text'>
This was causing garbled text due to a non-rebuilt rows referencing an
outdated atlas when the DPI changed but not the grid dimensions, which
could be caused by a variety of things such as the quick terminal
slide-in, dpi scaling changes on sleep/wake, moving windows between
displays because of closing/opening the laptop lid, etc.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This was causing garbled text due to a non-rebuilt rows referencing an
outdated atlas when the DPI changed but not the grid dimensions, which
could be caused by a variety of things such as the quick terminal
slide-in, dpi scaling changes on sleep/wake, moving windows between
displays because of closing/opening the laptop lid, etc.
</pre>
</div>
</content>
</entry>
<entry>
<title>terminal: increase CSI max params to 24 to accept Kakoune sequence</title>
<updated>2025-03-23T21:21:33+00:00</updated>
<author>
<name>Mitchell Hashimoto</name>
<email>m@mitchellh.com</email>
</author>
<published>2025-02-23T04:40:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=691fbccbfc111392a578696fb711ff66cad9fa4c'/>
<id>691fbccbfc111392a578696fb711ff66cad9fa4c</id>
<content type='text'>
See #5930

Kakoune sends a real SGR sequence with 17 parameters. Our previous max
was 16 so we through away the entire sequence. This commit increases the
max rather than fundamentally addressing limitations.

Practically, it took us this long to witness a real world sequence that
exceeded our previous limit. We may need to revisit this in the future,
but this is an easy fix for now.

In the future, as the comment states in this diff, we should probably
look into a rare slow path where we heap allocate to accept up to some
larger size (but still would need a cap to avoid DoS). For now,
increasing to 24 slightly increases our memory usage but shouldn't
result in any real world issues.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
See #5930

Kakoune sends a real SGR sequence with 17 parameters. Our previous max
was 16 so we through away the entire sequence. This commit increases the
max rather than fundamentally addressing limitations.

Practically, it took us this long to witness a real world sequence that
exceeded our previous limit. We may need to revisit this in the future,
but this is an easy fix for now.

In the future, as the comment states in this diff, we should probably
look into a rare slow path where we heap allocate to accept up to some
larger size (but still would need a cap to avoid DoS). For now,
increasing to 24 slightly increases our memory usage but shouldn't
result in any real world issues.
</pre>
</div>
</content>
</entry>
<entry>
<title>dont use shift+equal combo</title>
<updated>2025-03-23T21:19:38+00:00</updated>
<author>
<name>rhodes-b</name>
<email>59537185+rhodes-b@users.noreply.github.com</email>
</author>
<published>2025-02-09T02:58:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=92bd6b6244076ce5167009ad85a1e3e362d8d5a1'/>
<id>92bd6b6244076ce5167009ad85a1e3e362d8d5a1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>termio: use modified backend</title>
<updated>2025-03-23T21:18:48+00:00</updated>
<author>
<name>Tim Culverhouse</name>
<email>tim@timculverhouse.com</email>
</author>
<published>2025-02-15T04:44:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=ccf72dfbf7a0eaeef1e9b05928d071b12bb0bbe8'/>
<id>ccf72dfbf7a0eaeef1e9b05928d071b12bb0bbe8</id>
<content type='text'>
In Termio.init, we make a copy of backend and modify it by calling
initTerminal. However, we used the original in the struct definition.
This lead to the pty being opened with a size 0,0.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In Termio.init, we make a copy of backend and modify it by calling
initTerminal. However, we used the original in the struct definition.
This lead to the pty being opened with a size 0,0.
</pre>
</div>
</content>
</entry>
<entry>
<title>termio: prevent responses to non-query OSC 21 sequences</title>
<updated>2025-03-23T21:18:13+00:00</updated>
<author>
<name>Tim Culverhouse</name>
<email>tim@timculverhouse.com</email>
</author>
<published>2025-02-15T00:55:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=196bc55757f4d32dd58fb133dda2253d891511e4'/>
<id>196bc55757f4d32dd58fb133dda2253d891511e4</id>
<content type='text'>
The Ghostty implementation of OSC 21 (Kitty color protocol) currently
responds to *all* OSC 21 sequences. It should not respond to a set, nor
a reset command. Fix the implementation so that we only respond if a
query was received.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The Ghostty implementation of OSC 21 (Kitty color protocol) currently
responds to *all* OSC 21 sequences. It should not respond to a set, nor
a reset command. Fix the implementation so that we only respond if a
query was received.
</pre>
</div>
</content>
</entry>
</feed>
