font: use variable JetBrains Mono for embedded font

This cuts down our file size significantly.
This commit is contained in:
Qwerasd
2025-07-03 16:27:39 -06:00
parent c2484f48ef
commit d751a93ecf
3 changed files with 27 additions and 10 deletions

View File

@ -520,6 +520,14 @@ pub fn add(
"jetbrains_mono_bold_italic",
.{ .root_source_file = jb_mono.path("fonts/ttf/JetBrainsMono-BoldItalic.ttf") },
);
step.root_module.addAnonymousImport(
"jetbrains_mono_variable",
.{ .root_source_file = jb_mono.path("fonts/variable/JetBrainsMono[wght].ttf") },
);
step.root_module.addAnonymousImport(
"jetbrains_mono_variable_italic",
.{ .root_source_file = jb_mono.path("fonts/variable/JetBrainsMono-Italic[wght].ttf") },
);
// Symbols-only nerd font
const nf_symbols = b.dependency("nerd_fonts_symbols_only", .{});

View File

@ -260,36 +260,42 @@ fn collection(
.regular,
.{ .fallback_loaded = try .init(
self.font_lib,
font.embedded.regular,
font.embedded.variable,
load_options.faceOptions(),
) },
);
_ = try c.add(
try (try c.getFace(try c.add(
self.alloc,
.bold,
.{ .fallback_loaded = try .init(
self.font_lib,
font.embedded.bold,
font.embedded.variable,
load_options.faceOptions(),
) },
))).setVariations(
&.{.{ .id = .init("wght"), .value = 700 }},
load_options.faceOptions(),
);
_ = try c.add(
self.alloc,
.italic,
.{ .fallback_loaded = try .init(
self.font_lib,
font.embedded.italic,
font.embedded.variable_italic,
load_options.faceOptions(),
) },
);
_ = try c.add(
try (try c.getFace(try c.add(
self.alloc,
.bold_italic,
.{ .fallback_loaded = try .init(
self.font_lib,
font.embedded.bold_italic,
font.embedded.variable_italic,
load_options.faceOptions(),
) },
))).setVariations(
&.{.{ .id = .init("wght"), .value = 700 }},
load_options.faceOptions(),
);
// Nerd-font symbols fallback.

View File

@ -6,14 +6,18 @@
//! redistribution and include their license as necessary.
/// Default fonts that we prefer for Ghostty.
pub const variable = @embedFile("jetbrains_mono_variable");
pub const variable_italic = @embedFile("jetbrains_mono_variable_italic");
/// Symbols-only nerd font.
pub const symbols_nerd_font = @embedFile("nerd_fonts_symbols_only");
/// Static jetbrains mono faces, currently unused.
pub const regular = @embedFile("jetbrains_mono_regular");
pub const bold = @embedFile("jetbrains_mono_bold");
pub const italic = @embedFile("jetbrains_mono_italic");
pub const bold_italic = @embedFile("jetbrains_mono_bold_italic");
/// Symbols-only nerd font.
pub const symbols_nerd_font = @embedFile("nerd_fonts_symbols_only");
/// Emoji fonts
pub const emoji = @embedFile("res/NotoColorEmoji.ttf");
pub const emoji_text = @embedFile("res/NotoEmoji-Regular.ttf");
@ -22,7 +26,6 @@ pub const emoji_text = @embedFile("res/NotoEmoji-Regular.ttf");
/// Fonts with general properties
pub const arabic = @embedFile("res/KawkabMono-Regular.ttf");
pub const variable = @embedFile("res/Lilex-VF.ttf");
/// A font for testing which is patched with nerd font symbols.
pub const test_nerd_font = @embedFile("res/JetBrainsMonoNerdFont-Regular.ttf");