mirror of
https://github.com/ghostty-org/ghostty.git
synced 2026-07-31 04:39:01 +00:00
This commit represents the majority of the work necessary to upgrade Ghostty to use Zig 0.16.0. Key parts: * In addition to its previous responsibilities, the global state now houses state for global I/O implementations and the process environment. It is now also utilized in the main application along with the C library. Where necessary, global state is isolated from key parts of the implementation (e.g., in libghostty subsystems), and it's expected that this list will grow. * We currently manage our own C translation layer where necessary. In these cases, cImport has been removed in favor of the new external translate-c package. Due to fixes that have needed be made to properly translate the dependencies that were swapped out, as mentioned, we have had to backport fixes from the current translate-c package (and the upstream Arocc dependency). We will host this ourselves until Zig 0.17.0 is released with these fixes. * Where necessary (only a small number of cases), some stdlib code from 0.15.2 (and even from 0.17.0) has been taken, adopted, and vendored in lib/compat. Co-authored-by: Leah Amelia Chen <hi@pluie.me>
Example: stdin to HTML using vtStream and TerminalFormatter
This example demonstrates how to read VT sequences from stdin, parse them
using vtStream, and output styled HTML using TerminalFormatter. The
purpose of this example is primarily to show how to use formatters with
terminals.
Requires the Zig version stated in the build.zig.zon file.
Usage
Basic usage:
echo -e "Hello \033[1;32mGreen\033[0m World" | zig build run
This will output HTML with inline styles and CSS palette variables.
You can also pipe complex terminal output:
ls --color=always | zig build run > output.html