mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-25 13:16:11 +03:00

Related to #1768 but doesn't fix it properly. This is a temporary hack to avoid some issues with fonts that have mixed color/non-color glyphs. If there are mixed presentations and the font does not have emoji codepoints, then we assume it is text. This fixes the typical scenarios. This is not a long term solution. A proper long term solution is to detect this scenario and on a per-glyph basis handle colorization (or the lack thereof) correctly. It looks like to do this we'll have to parse some font tables which is considerably more work so I wanted to do this first.
30 lines
1.4 KiB
Zig
30 lines
1.4 KiB
Zig
//! Fonts that can be embedded with Ghostty. Note they are only actually
|
|
//! embedded in the binary if they are referenced by the code, so fonts
|
|
//! used for tests will not result in the final binary being larger.
|
|
//!
|
|
//! Be careful to ensure that any fonts you embed are licensed for
|
|
//! redistribution and include their license as necessary.
|
|
|
|
/// Fonts with general properties
|
|
pub const fontRegular = @embedFile("res/Inconsolata-Regular.ttf");
|
|
pub const fontBold = @embedFile("res/Inconsolata-Bold.ttf");
|
|
pub const fontEmoji = @embedFile("res/NotoColorEmoji.ttf");
|
|
pub const fontEmojiText = @embedFile("res/NotoEmoji-Regular.ttf");
|
|
pub const fontVariable = @embedFile("res/Lilex-VF.ttf");
|
|
|
|
/// Font with nerd fonts embedded.
|
|
pub const fontNerdFont = @embedFile("res/JetBrainsMonoNerdFont-Regular.ttf");
|
|
|
|
/// Specific font families below:
|
|
pub const fontGeistMono = @embedFile("res/GeistMono-Regular.ttf");
|
|
pub const fontJetBrainsMono = @embedFile("res/JetBrainsMonoNoNF-Regular.ttf");
|
|
pub const fontJuliaMono = @embedFile("res/JuliaMono-Regular.ttf");
|
|
|
|
/// Cozette is a unique font because it embeds some emoji characters
|
|
/// but has a text presentation.
|
|
pub const fontCozette = @embedFile("res/CozetteVector.ttf");
|
|
|
|
/// Monaspace has weird ligature behaviors we want to test in our shapers
|
|
/// so we embed it here.
|
|
pub const fontMonaspaceNeon = @embedFile("res/MonaspaceNeon-Regular.otf");
|