<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ghostty.git/src/font, 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>fix(font): Additional scale group tweaks (#9152)</title>
<updated>2025-10-12T02:48:08+00:00</updated>
<author>
<name>Daniel Wennberg</name>
<email>daniel.wennberg@gmail.com</email>
</author>
<published>2025-10-12T02:48:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=2e34f4e0e574612c7bae4730325e57a4154236b9'/>
<id>2e34f4e0e574612c7bae4730325e57a4154236b9</id>
<content type='text'>
Of course #9142 would require a minor follow-up!

* Scale groups can cut across patch sets, but not across fonts. We had
some scale group mixing between Font Awesome and the weather symbols,
which is removed by this PR.[^cp_table_full]
* There's one case where a scale group includes a glyph that's not part
of any patch sets, just for padding out the group bounding box.
Previously, an unrelated glyph from a different font would be pulled in.
Now we use an appropriate stand-in. (See code comment for details.)
* I noticed overlaps weren't being split between each side of the
bounding box, they were added to both sides, resulting in twice as much
padding as specified.

Screenshots showing the extra vertical padding for progress bar elements
due to the second bullet point:

**Before**
&lt;img width="191" height="42" alt="Screenshot 2025-10-11 at 15 33 54"
src="https://github.com/user-attachments/assets/cf288cce-86d3-46fd-ae86-18e5c274b0e4"
/&gt;

**After**
&lt;img width="191" height="42" alt="Screenshot 2025-10-11 at 15 33 20"
src="https://github.com/user-attachments/assets/7ac799c7-bf50-4e65-a74a-f8a2c42d2441"
/&gt;

[^cp_table_full]: Forming and using the merged `cp_table_full` table
should have been a red flag. Such a table doesn't make sense, it would
be a one-to-many map. You need the names of the original fonts to
disambiguate.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Of course #9142 would require a minor follow-up!

* Scale groups can cut across patch sets, but not across fonts. We had
some scale group mixing between Font Awesome and the weather symbols,
which is removed by this PR.[^cp_table_full]
* There's one case where a scale group includes a glyph that's not part
of any patch sets, just for padding out the group bounding box.
Previously, an unrelated glyph from a different font would be pulled in.
Now we use an appropriate stand-in. (See code comment for details.)
* I noticed overlaps weren't being split between each side of the
bounding box, they were added to both sides, resulting in twice as much
padding as specified.

Screenshots showing the extra vertical padding for progress bar elements
due to the second bullet point:

**Before**
&lt;img width="191" height="42" alt="Screenshot 2025-10-11 at 15 33 54"
src="https://github.com/user-attachments/assets/cf288cce-86d3-46fd-ae86-18e5c274b0e4"
/&gt;

**After**
&lt;img width="191" height="42" alt="Screenshot 2025-10-11 at 15 33 20"
src="https://github.com/user-attachments/assets/7ac799c7-bf50-4e65-a74a-f8a2c42d2441"
/&gt;

[^cp_table_full]: Forming and using the merged `cp_table_full` table
should have been a red flag. Such a table doesn't make sense, it would
be a one-to-many map. You need the names of the original fonts to
disambiguate.</pre>
</div>
</content>
</entry>
<entry>
<title>font(fix): Extract and apply Nerd Font codepoint mapping table (#9142)</title>
<updated>2025-10-11T20:12:13+00:00</updated>
<author>
<name>Daniel Wennberg</name>
<email>daniel.wennberg@gmail.com</email>
</author>
<published>2025-10-11T20:12:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=4af93975ed69ade2fcb4a915bab7d81dcbd5ebb8'/>
<id>4af93975ed69ade2fcb4a915bab7d81dcbd5ebb8</id>
<content type='text'>
Fixes #9076

**Before** 
&lt;img width="128" height="57" alt="Screenshot 2025-10-11 at 00 07 09"
src="https://github.com/user-attachments/assets/a6b416d5-dae1-4cea-a836-00640ceaf39b"
/&gt;

**After**
&lt;img width="128" height="57" alt="Screenshot 2025-10-11 at 00 07 31"
src="https://github.com/user-attachments/assets/7d2df7b1-4767-4e2d-84d2-8301da5c6602"
/&gt;

These screenshots show the chevrons mentioned in
https://github.com/ghostty-org/ghostty/discussions/7820#discussioncomment-14617170,
which should be scaled as a group but were not until this PR.

The added code downloads each individual symbol font file from the Nerd
Fonts github repo (making sure to get the version corresponding to the
vendored `font-patcher.py`) and iterates over all of them to build the
correct and complete codepoint mapping table. The table is saved to
`nerd_font_codepoint_tables.py`, which `nerd_font_codegen.py` will reuse
if possible instead of downloading the font files again.

I'm not going to utter any famous last words or anything, but... after
this, I don't think the number of remaining issues with icon
scaling/alignment is _large._</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #9076

**Before** 
&lt;img width="128" height="57" alt="Screenshot 2025-10-11 at 00 07 09"
src="https://github.com/user-attachments/assets/a6b416d5-dae1-4cea-a836-00640ceaf39b"
/&gt;

**After**
&lt;img width="128" height="57" alt="Screenshot 2025-10-11 at 00 07 31"
src="https://github.com/user-attachments/assets/7d2df7b1-4767-4e2d-84d2-8301da5c6602"
/&gt;

These screenshots show the chevrons mentioned in
https://github.com/ghostty-org/ghostty/discussions/7820#discussioncomment-14617170,
which should be scaled as a group but were not until this PR.

The added code downloads each individual symbol font file from the Nerd
Fonts github repo (making sure to get the version corresponding to the
vendored `font-patcher.py`) and iterates over all of them to build the
correct and complete codepoint mapping table. The table is saved to
`nerd_font_codepoint_tables.py`, which `nerd_font_codegen.py` will reuse
if possible instead of downloading the font files again.

I'm not going to utter any famous last words or anything, but... after
this, I don't think the number of remaining issues with icon
scaling/alignment is _large._</pre>
</div>
</content>
</entry>
<entry>
<title>Add comprehensive constraint tests</title>
<updated>2025-10-04T05:30:52+00:00</updated>
<author>
<name>Daniel Wennberg</name>
<email>daniel.wennberg@gmail.com</email>
</author>
<published>2025-10-04T04:51:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=6bc60b6c643cf3036b553ce15b202d895d4b9308'/>
<id>6bc60b6c643cf3036b553ce15b202d895d4b9308</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix botched cherry-pick from #8990</title>
<updated>2025-10-04T05:20:45+00:00</updated>
<author>
<name>Daniel Wennberg</name>
<email>daniel.wennberg@gmail.com</email>
</author>
<published>2025-10-04T05:20:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=5360aeb8aab98cbf921107432e90ed8d4817be17'/>
<id>5360aeb8aab98cbf921107432e90ed8d4817be17</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Handle font_patcher codepoint range overlaps</title>
<updated>2025-10-03T20:50:11+00:00</updated>
<author>
<name>Daniel Wennberg</name>
<email>daniel.wennberg@gmail.com</email>
</author>
<published>2025-09-22T07:59:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=78f1bf18071db54f16651aec0295387028658959'/>
<id>78f1bf18071db54f16651aec0295387028658959</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Handle font_patcher codepoint offsets</title>
<updated>2025-10-03T20:50:11+00:00</updated>
<author>
<name>Daniel Wennberg</name>
<email>daniel.wennberg@gmail.com</email>
</author>
<published>2025-09-22T07:55:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=44951d9b1c8b1dddba5abd5e146dbcd15cc8c69b'/>
<id>44951d9b1c8b1dddba5abd5e146dbcd15cc8c69b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Skip patchsets and codepoints not in SymbolsNF</title>
<updated>2025-10-03T20:50:11+00:00</updated>
<author>
<name>Daniel Wennberg</name>
<email>daniel.wennberg@gmail.com</email>
</author>
<published>2025-09-22T07:16:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=d07237fff5f2ad7e5526f7b6c91a299ef83554ab'/>
<id>d07237fff5f2ad7e5526f7b6c91a299ef83554ab</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add font_patcher's grouped vs individual alignment</title>
<updated>2025-10-03T20:50:11+00:00</updated>
<author>
<name>Daniel Wennberg</name>
<email>daniel.wennberg@gmail.com</email>
</author>
<published>2025-09-06T23:57:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=a1b7ea2e712b225f74afdb889baf15f50805c5b2'/>
<id>a1b7ea2e712b225f74afdb889baf15f50805c5b2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Align stretched glyphs to cell, not face</title>
<updated>2025-10-03T20:46:36+00:00</updated>
<author>
<name>Daniel Wennberg</name>
<email>daniel.wennberg@gmail.com</email>
</author>
<published>2025-10-01T04:15:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=50bdd3bac65f937e002d4e281f1406747073abf7'/>
<id>50bdd3bac65f937e002d4e281f1406747073abf7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Always clamp scaled glyph to cell</title>
<updated>2025-10-03T20:44:22+00:00</updated>
<author>
<name>Daniel Wennberg</name>
<email>daniel.wennberg@gmail.com</email>
</author>
<published>2025-10-01T22:21:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/ghostty.git/commit/?id=32f8c71be3f827cc091671a5a97eb81a61b51de8'/>
<id>32f8c71be3f827cc091671a5a97eb81a61b51de8</id>
<content type='text'>
Also take padding into account for centered alignment, necessary since
our constraint type allows asymmetric padding.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also take padding into account for centered alignment, necessary since
our constraint type allows asymmetric padding.
</pre>
</div>
</content>
</entry>
</feed>
