d9da3081
Read terminal font size from config
a73x 2026-04-09 06:51
diff --git a/src/font.zig b/src/font.zig index a31de21..2281e0c 100644 --- a/src/font.zig +++ b/src/font.zig @@ -1,5 +1,5 @@ const std = @import("std"); const config = @import("config"); pub const config = @import("config"); const c = @cImport({ @cInclude("fontconfig/fontconfig.h"); @cInclude("ft2build.h"); @@ -45,10 +45,6 @@ pub fn lookupConfiguredFont(alloc: std.mem.Allocator) !FontLookup { return .{ .path = dup, .index = index }; } pub fn lookupMonospace(alloc: std.mem.Allocator) !FontLookup { return lookupConfiguredFont(alloc); } pub const Glyph = struct { codepoint: u21, width: u32, diff --git a/src/main.zig b/src/main.zig index 88b9cbe..1b1f5ae 100644 --- a/src/main.zig +++ b/src/main.zig @@ -4,6 +4,7 @@ const pty = @import("pty"); const wayland_client = @import("wayland-client"); const renderer = @import("renderer"); const font = @import("font"); const config = font.config; const c = @cImport({ @cInclude("xkbcommon/xkbcommon-keysyms.h"); @@ -60,10 +61,10 @@ pub fn main() !void { fn runTerminal(alloc: std.mem.Allocator) !void { // === font first, to know cell size === var font_lookup = try font.lookupMonospace(alloc); var font_lookup = try font.lookupConfiguredFont(alloc); defer font_lookup.deinit(alloc); const font_size: u32 = 16; const font_size: u32 = config.font_size_px; var face = try font.Face.init(alloc, font_lookup.path, font_lookup.index, font_size); defer face.deinit(); @@ -903,10 +904,10 @@ test "rebuildRowInstances emits expected instances for a colored glyph row" { term.write("\x1b[31;44mA\x1b[0m"); try term.snapshot(); var lookup = try font.lookupMonospace(std.testing.allocator); var lookup = try font.lookupConfiguredFont(std.testing.allocator); defer lookup.deinit(std.testing.allocator); var face = try font.Face.init(std.testing.allocator, lookup.path, lookup.index, 16); var face = try font.Face.init(std.testing.allocator, lookup.path, lookup.index, config.font_size_px); defer face.deinit(); var atlas = try font.Atlas.init(std.testing.allocator, 256, 256); @@ -955,10 +956,10 @@ test "rebuildRowInstances replaces stale cached contents without layout dirtines term.write("\x1b[31;44mA\x1b[0m"); try term.snapshot(); var lookup = try font.lookupMonospace(std.testing.allocator); var lookup = try font.lookupConfiguredFont(std.testing.allocator); defer lookup.deinit(std.testing.allocator); var face = try font.Face.init(std.testing.allocator, lookup.path, lookup.index, 16); var face = try font.Face.init(std.testing.allocator, lookup.path, lookup.index, config.font_size_px); defer face.deinit(); var atlas = try font.Atlas.init(std.testing.allocator, 256, 256); @@ -1147,6 +1148,10 @@ test "clearConsumedDirtyFlags clears only consumed partial rows after successful try std.testing.expectEqualSlices(bool, &.{ false, false, false, false }, dirty_rows[0..]); } test "font module no longer exposes lookupMonospace compatibility wrapper" { try std.testing.expect(!@hasDecl(font, "lookupMonospace")); } const RowInstanceCache = struct { instances: std.ArrayListUnmanaged(renderer.Instance) = .empty, gpu_offset_instances: u32 = 0, @@ -1446,11 +1451,11 @@ fn runDrawSmokeTest(alloc: std.mem.Allocator) !void { defer ctx.deinit(); std.debug.print("vulkan context created\n", .{}); // Load monospace font and create atlas var font_lookup = try font.lookupMonospace(alloc); // Load configured font and create atlas var font_lookup = try font.lookupConfiguredFont(alloc); defer font_lookup.deinit(alloc); const px_size: u32 = 16; const px_size: u32 = config.font_size_px; var face = try font.Face.init(alloc, font_lookup.path, font_lookup.index, px_size); defer face.deinit();