diff options
| author | Gabriel Schneider <[email protected]> | 2026-10-01 00:45:14 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-10-01 00:53:56 -0300 |
| commit | 0bb65902ebec104dac954b59f28500812419e1af (patch) | |
| tree | 1c2d756ce89fcf6059bacf62928804da5585d36b /src/tagline.zig | |
| parent | 28c74918cde4092d964daa847c026ed3de282683 (diff) | |
| download | pardes-0bb65902ebec104dac954b59f28500812419e1af.tar.gz pardes-0bb65902ebec104dac954b59f28500812419e1af.zip | |
A terminal's kitty graphics draw as glyph art where pixels cannot, and by choice: Petscii on the pane, TermImages for new ones
Under an outer terminal without kitty graphics a tty pardes cannot pass a
terminal pane's images on, so it draws them itself as an image pane's
Petscii does: each row of an image is matched to C64-palette glyph art
over the cells it covers (GlyphArt.renderRect, the exact-grid half of
GlyphArt.render), cached while it is on screen. yazi is still told the
kitty protocol works, so it keeps sending its previews.
The same art is a choice anywhere: the Petscii builtin now takes a
terminal pane too (PaneKind.picture), flipping its images between pixels
and glyphs, and a terminal holding images, or drawing them as glyphs by
choice, says petscii:on|off in its tag as an image pane does. TermImages
real|petscii (default real) is what a new terminal starts with; it is in
DumpConfig, /ctl and the reference.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/tagline.zig')
| -rw-r--r-- | src/tagline.zig | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/tagline.zig b/src/tagline.zig index 9bd49eef..032fb5a0 100644 --- a/src/tagline.zig +++ b/src/tagline.zig @@ -124,6 +124,10 @@ pub fn pathPrefix(arena: std.mem.Allocator, pane: *Pane) ![]const u8 { // Unsaved text shows on the grip, as acme's modbutton does, not as a // mark in the text: the prefix is the name alone. if (pane.file) |f| return if (pane.prompt == .name) pane.input.own orelse f.path else f.path; + // A terminal showing kitty graphics says how it draws them, as an image + // pane does, and so does one drawing them as glyph art by choice. + if (panes.terminal.petscii(pane)) |on| if (on or panes.terminal.hasImages(pane)) + return std.fmt.allocPrint(arena, "{s} petscii:{s}", .{ (try shownDir(arena, pane)), if (on) "on" else "off" }); return (try shownDir(arena, pane)); } |
