<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ghostty.git/src/config/CAPI.zig, branch main</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>libghostty: export benchmark CLI API</title>
<updated>2025-07-09T22:06:24+00:00</updated>
<author>
<name>Mitchell Hashimoto</name>
<email>m@mitchellh.com</email>
</author>
<published>2025-07-09T18:33:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=20bb71c627f2e0e5cb3b8b318f877cbb33d088f1'/>
<id>20bb71c627f2e0e5cb3b8b318f877cbb33d088f1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>macos: open URLs with NSWorkspace APIs instead of `open`</title>
<updated>2025-07-07T04:01:01+00:00</updated>
<author>
<name>Mitchell Hashimoto</name>
<email>m@mitchellh.com</email>
</author>
<published>2025-07-07T03:23:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=b7ffbf933f1b2274a14f6471eb932fee0987096a'/>
<id>b7ffbf933f1b2274a14f6471eb932fee0987096a</id>
<content type='text'>
Fixes #5256

This updates the macOS apprt to implement the `OPEN_URL` apprt action to
use the NSWorkspace APIs instead of the `open` command line utility.

As part of this, we removed the `ghostty_config_open` libghostty API and
instead introduced a new `ghostty_config_open_path` API that returns the
path to open, and then we use the `NSWorkspace` APIs to open it (same
function as the `OPEN_URL` action).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #5256

This updates the macOS apprt to implement the `OPEN_URL` apprt action to
use the NSWorkspace APIs instead of the `open` command line utility.

As part of this, we removed the `ghostty_config_open` libghostty API and
instead introduced a new `ghostty_config_open_path` API that returns the
path to open, and then we use the `NSWorkspace` APIs to open it (same
function as the `OPEN_URL` action).
</pre>
</div>
</content>
</entry>
<entry>
<title>config: C API ghostty_config_clone</title>
<updated>2024-11-21T18:41:48+00:00</updated>
<author>
<name>Mitchell Hashimoto</name>
<email>m@mitchellh.com</email>
</author>
<published>2024-11-20T23:28:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=037d4364e596cc42aa487d88d08364b5d78a4456'/>
<id>037d4364e596cc42aa487d88d08364b5d78a4456</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>c: remove the config load string API</title>
<updated>2024-10-18T15:11:11+00:00</updated>
<author>
<name>Mitchell Hashimoto</name>
<email>m@mitchellh.com</email>
</author>
<published>2024-10-17T15:02:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=70c175e2a6fc47b612f764199920b9a0daf99d3a'/>
<id>70c175e2a6fc47b612f764199920b9a0daf99d3a</id>
<content type='text'>
It was unused and doesn't match our diagnostic API.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It was unused and doesn't match our diagnostic API.
</pre>
</div>
</content>
</entry>
<entry>
<title>config: richer diagnostics for errors</title>
<updated>2024-10-18T15:11:11+00:00</updated>
<author>
<name>Mitchell Hashimoto</name>
<email>m@mitchellh.com</email>
</author>
<published>2024-10-16T23:45:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=a4e14631ef6eb57382ff3c15134d90617c8fd264'/>
<id>a4e14631ef6eb57382ff3c15134d90617c8fd264</id>
<content type='text'>
Rather than storing a list of errors we now store a list of
"diagnostics." Each diagnostic has a richer set of structured
information, including a message, a key, the location where it occurred.

This lets us show more detailed messages, more human friendly messages, and
also let's us filter by key or location. We don't take advantage of
all of this capability in this initial commit, but we do use every field
for something.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Rather than storing a list of errors we now store a list of
"diagnostics." Each diagnostic has a richer set of structured
information, including a message, a key, the location where it occurred.

This lets us show more detailed messages, more human friendly messages, and
also let's us filter by key or location. We don't take advantage of
all of this capability in this initial commit, but we do use every field
for something.
</pre>
</div>
</content>
</entry>
<entry>
<title>almost yeeted it all!</title>
<updated>2024-08-16T21:42:32+00:00</updated>
<author>
<name>Mitchell Hashimoto</name>
<email>mitchell.hashimoto@gmail.com</email>
</author>
<published>2024-08-16T21:42:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=b65a804bb28c899cca0173a07a9b9e7fb7d5f9d4'/>
<id>b65a804bb28c899cca0173a07a9b9e7fb7d5f9d4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Allow keybinding arbitrary unicode codepoints (#1814)</title>
<updated>2024-06-02T17:53:36+00:00</updated>
<author>
<name>Mitchell Hashimoto</name>
<email>mitchell.hashimoto@gmail.com</email>
</author>
<published>2024-06-02T17:53:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=14417d2592377f39a96df48197382a2e03d026a3'/>
<id>14417d2592377f39a96df48197382a2e03d026a3</id>
<content type='text'>
Fixes #1802 

This allows `keybind` configurations to map to any Unicode codepoint. This enables keybindings for which we don't have a registered keycode or for custom keyboard firmwares that may produce arbitrary text (but the Ghostty support is limited to a single codepoint).

The `keybind` syntax is unchanged. If a bound character doesn't map to a known logical key that Ghostty knows about, we map it to a Unicode codepoint. The unicode codepoint is compared against the _unshifted codepoint_ from the apprt key event. 

Note that this binding is to a single _codepoint_. We don't support arbitrary sequences of characters or multi-code point graphemes for keybindings due to the complexity in memory management that would introduce.

This also provides a good fallback for scenarios where it might make sense to educate Ghostty about a key code or fix a bug in our keyboard input system, but the unicode data is correct. In that scenario, unicode key binds should allow key binds to still work while we investigate the input issues.

Example:

```
shift+ö=text:hello
```

This now works as expected on a US hardware keyboard with the Hungarian keyboard layout.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #1802 

This allows `keybind` configurations to map to any Unicode codepoint. This enables keybindings for which we don't have a registered keycode or for custom keyboard firmwares that may produce arbitrary text (but the Ghostty support is limited to a single codepoint).

The `keybind` syntax is unchanged. If a bound character doesn't map to a known logical key that Ghostty knows about, we map it to a Unicode codepoint. The unicode codepoint is compared against the _unshifted codepoint_ from the apprt key event. 

Note that this binding is to a single _codepoint_. We don't support arbitrary sequences of characters or multi-code point graphemes for keybindings due to the complexity in memory management that would introduce.

This also provides a good fallback for scenarios where it might make sense to educate Ghostty about a key code or fix a bug in our keyboard input system, but the unicode data is correct. In that scenario, unicode key binds should allow key binds to still work while we investigate the input issues.

Example:

```
shift+ö=text:hello
```

This now works as expected on a US hardware keyboard with the Hungarian keyboard layout.</pre>
</div>
</content>
</entry>
<entry>
<title>fix callback struct ordering, use internal_os.open</title>
<updated>2023-12-18T16:00:40+00:00</updated>
<author>
<name>Mitchell Hashimoto</name>
<email>mitchell.hashimoto@gmail.com</email>
</author>
<published>2023-12-18T16:00:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=7600c761ef5f8415f0c8097eda3abde678c65368'/>
<id>7600c761ef5f8415f0c8097eda3abde678c65368</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add settings shortcut on MacOS</title>
<updated>2023-12-17T15:19:22+00:00</updated>
<author>
<name>Borja Clemente</name>
<email>borja.clemente@gmail.com</email>
</author>
<published>2023-12-17T13:22:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=646e3c365c8e481b9c003fa5e5dab71a3ec8eb0f'/>
<id>646e3c365c8e481b9c003fa5e5dab71a3ec8eb0f</id>
<content type='text'>
- Settings shortcut opens the config file in the default editor.

Signed-off-by: Borja Clemente &lt;borja.clemente@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Settings shortcut opens the config file in the default editor.

Signed-off-by: Borja Clemente &lt;borja.clemente@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>config: increase eval branches for new configs</title>
<updated>2023-10-01T03:15:07+00:00</updated>
<author>
<name>Mitchell Hashimoto</name>
<email>mitchell.hashimoto@gmail.com</email>
</author>
<published>2023-10-01T03:15:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=8cb96a28c1a78e00f9546eb805529f6cd2e4f9a0'/>
<id>8cb96a28c1a78e00f9546eb805529f6cd2e4f9a0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
