mirror of
https://github.com/ghostty-org/ghostty.git
synced 2026-04-06 07:38:21 +00:00
Add set/get support for foreground, background, cursor, and palette default colors through ghostty_terminal_set and ghostty_terminal_get. Four new set options (COLOR_FOREGROUND, COLOR_BACKGROUND, COLOR_CURSOR, COLOR_PALETTE) write directly to the terminal color defaults. Passing NULL clears the value for RGB colors or resets the palette to the built-in default. All set operations mark the palette dirty flag for the renderer. Eight new get data types retrieve either the effective color (override or default, via DynamicRGB.get) or the default color only (ignoring any OSC overrides). Effective getters for RGB colors return the new NO_VALUE result code when no color is configured. The palette getters return the current or original palette respectively. Adds the GHOSTTY_NO_VALUE result code for cases where a queried value is simply not configured, distinct from GHOSTTY_INVALID_VALUE which indicates a caller error.
43 lines
1.2 KiB
Zig
43 lines
1.2 KiB
Zig
const std = @import("std");
|
|
|
|
pub fn build(b: *std.Build) void {
|
|
const target = b.standardTargetOptions(.{});
|
|
const optimize = b.standardOptimizeOption(.{});
|
|
|
|
const run_step = b.step("run", "Run the app");
|
|
|
|
const exe_mod = b.createModule(.{
|
|
.target = target,
|
|
.optimize = optimize,
|
|
});
|
|
exe_mod.addCSourceFiles(.{
|
|
.root = b.path("src"),
|
|
.files = &.{"main.c"},
|
|
});
|
|
|
|
// You'll want to use a lazy dependency here so that ghostty is only
|
|
// downloaded if you actually need it.
|
|
if (b.lazyDependency("ghostty", .{
|
|
// Setting simd to false will force a pure static build that
|
|
// doesn't even require libc, but it has a significant performance
|
|
// penalty. If your embedding app requires libc anyway, you should
|
|
// always keep simd enabled.
|
|
// .simd = false,
|
|
})) |dep| {
|
|
exe_mod.linkLibrary(dep.artifact("ghostty-vt"));
|
|
}
|
|
|
|
// Exe
|
|
const exe = b.addExecutable(.{
|
|
.name = "c_vt_colors",
|
|
.root_module = exe_mod,
|
|
});
|
|
b.installArtifact(exe);
|
|
|
|
// Run
|
|
const run_cmd = b.addRunArtifact(exe);
|
|
run_cmd.step.dependOn(b.getInstallStep());
|
|
if (b.args) |args| run_cmd.addArgs(args);
|
|
run_step.dependOn(&run_cmd.step);
|
|
}
|