Repository navigation
Releases: toppk/revenant
Release list
Revenant 0.8.0
Highlights
Text-emoji rendering repairs, synchronized-output and selection fixes, and a focused xterm-411 compatibility update for titles, window reports, geometry, and shell startup. This release tracks a pinned libghostty development commit; it does not wait for Ghostty 1.4.0.
Changes
Released 2026-09-23. Full history in CHANGELOG.md.
Features
- Render and fit monochrome text emoji through a dedicated
faceNameEmojiTextrole, with bounded presentation-aware fallback discovery. Explicit font precedence and committed cell widths are preserved; drawing stays inside the assigned cells. (0a7e03c, e80d8bb) - Update Unicode tables and the pinned libghostty backend together to Unicode 18.0. This release uses development revision
27e8b3fa85d9cf8c7cd5ae2ced348bcb0a4fba9c, ahead of Ghostty 1.4.0. New emoji still require installed fonts with coverage; the pinned fixtures do not supply Unicode 18 emoji artwork. (0087b61) - Add
-hold/+holdand theholdresource to retain the window and its final output after the child exits. Held windows continue to repaint, reap late-exiting children, and discard further keyboard input. (0de64fe) - Add
-ls/+lsand theloginShellresource. Shell selection and login-shell argv follow the measured xterm-411 behavior; explicit-ecommands retain their existing invocation semantics. (160c02d) - Add UTF-8 window and icon title properties, the
utf8Titleresource, andset-utf8-titleaction. Title changes and stack restoration update or remove EWMH properties according to locale and policy. Backend limitations, including OSC 1 delivery and raw-byte title parsing, remain documented. (712f7b7) - Add
sameNamewith-samename/+samename, title and color permission actions, andallowSendEventspolicy interactions. Repeated title requests can be suppressed; configured permissions, effective permissions, and menu sensitivity follow the measured xterm rules. This does not add synthetic-input filtering. (156b4f2)
Bug fixes
- Capture the completed visible frame at synchronized-output hold boundaries, including transitions within one parser batch. Reverse video, dynamic colors, and cursor visibility/style parsed during a hold stay hidden until release. (0087b61)
- Decode incoming X selections by their declared type, including COMPOUND_TEXT and Latin-1 STRING, for paste and OSC 52 reads. Unsupported types fall back to STRING; unsupported INCR transfers remain explicitly unavailable. Stalled-reader tests verify complete large OSC 52 replies. (0087b61)
- Reserve closed standard descriptors before opening X or the PTY, and stop startup if reservation fails. This prevents warnings from being written into a connection that reused stderr. (0087b61)
- Send wheel presses without wheel-release reports and keep selection drags active across wheel scrolling. Local scrolling updates the selection under the pointer. Alternate-scroll mode 1007 remains unimplemented. (0087b61)
- Incorporate backend fixes for ANSI DECRQM replies and exact mode-number reporting through the supported 16-bit range, preventing high mode numbers from aliasing smaller ones. (0087b61)
- Gate CSI 14/16/18 window-size reports through Window Ops policy while preserving unsolicited mode 2048 reports. Apply the
allowSendEventsinteraction to the blanket Window Ops permission and its menu sensitivity. (0de64fe) - Interpret startup geometry dimensions as columns and rows, compute negative offsets from the resulting window size, and preserve user size, position, and gravity hints. Single-offset forms and zero-sized requests now have measured, tested behavior. (783c280)
Other
- Explain configured emoji font roles, Fontconfig substitutions, monochrome coverage, and routing misses in welcome and diagnostic output. Keep candidate matching distinct from the font that actually served an atom. (bd0bcf5)
- Expand deterministic coverage for styled emoji fitting, whole-sequence fallback, reload/rollback painting, Unicode data provenance, and scoped font coverage. Automated routing and containment evidence remains separate from human legibility assessment. (e0c20d4, 0bdf234, 5198427, 050e027, 0087b61)
- Expand native probes and TDN mappings for emoji artwork, mode queries, synchronized-output boundaries, clipboard behavior, drag scrolling, title and color policies, window reports, hold, and login-shell startup. (de5fac0, 89c0f89, 156b4f2, 0de64fe, 712f7b7, 160c02d)
- Add validation-only package builds tied to an exact source SHA, five-artifact manifests, native prerelease version ordering, and draft-first release preparation. Fix fortified-build logging and Ubuntu shell/dependency assumptions exposed by hosted validation. (f305a2c, ede0588)
Artifacts
| File | Size | Notes |
|---|---|---|
release-manifest.json |
1.1 KiB | |
revenant-0.8.0-1-x86_64.pkg.tar.zst |
1.3 MiB | Arch Linux package; sudo pacman -U ./revenant-0.8.0-1-x86_64.pkg.tar.zst |
revenant-0.8.0-1.fc44.x86_64.rpm |
1.2 MiB | Fedora package; sudo dnf install ./revenant-0.8.0-1.fc44.x86_64.rpm |
revenant-0.8.0-linux-aarch64.tar.gz |
1.2 MiB | Linux aarch64 binary archive (dynamically linked): stripped revenant, xterm+ symlink, README, licenses |
revenant-0.8.0-linux-x86_64.tar.gz |
1.2 MiB | Linux x86_64 binary archive (dynamically linked): stripped revenant, xterm+ symlink, README, licenses |
revenant_0.8.0-1_amd64.deb |
1.1 MiB | Debian/Ubuntu package; sudo apt install ./revenant_0.8.0-1_amd64.deb |
SHA-256:
b77931a087f93238c7b028704f88bb713c1e9a788ec2121cb062b982a5bde680 release-manifest.json
d1fc2a3d9b1797293f297c6d9d5d973cb59ab81c0593c42010af949077045221 revenant-0.8.0-1-x86_64.pkg.tar.zst
15aab2655bb668b7b09e85b84c1339a07ea7c9b9283138d3255e4c72bc3f7631 revenant-0.8.0-1.fc44.x86_64.rpm
e782f903c8040c342da10b014b371576d107413e777f83a2007a693081a45513 revenant-0.8.0-linux-aarch64.tar.gz
4ff9e6145d3459a3c03f1b7ac1e2982cf190c522bbe9618419b93101ce6c901c revenant-0.8.0-linux-x86_64.tar.gz
65d1d6a41fc32fe7dcd6f2dc59f91202f00a3233ade6404a8e54ebf6fa2df716 revenant_0.8.0-1_amd64.deb
CPU floor: x86_64 builds target x86_64-v3 (AVX2 — Intel Haswell 2013+, AMD Zen 2019+); aarch64 builds target generic ARMv8. Older CPUs fail with an illegal-instruction error; open an issue if that affects you.
Each file carries a signed build provenance attestation from the workflow run; verify a download with gh attestation verify FILE --repo toppk/revenant.
All builds link the pinned libghostty-vt from tools/fetch-libghostty and were built by the Release workflow.
Revenant 0.7.0
Highlights
A broad daily-driver release: application notifications and progress, interactive scrollback search, shell-aware navigation and output piping, modern color and title controls, audited identity, and seamless procedural terminal graphics.
Changes
Released 2026-09-14. Full history in CHANGELOG.md.
Features
- Deliver OSC 9 and OSC 777 notifications to the desktop. Builds with libnotify, which release packages require, now show an unfocused terminal's notification requests through the desktop's notification service, with the application icon and the program name standing in for a missing title. Titles and bodies are passed as data: invalid UTF-8 and control bytes are replaced, markup is escaped, and they are cut at 256 and 1024 bytes. At most five notifications are attempted in ten seconds, a failed delivery pauses attempts for five seconds, and delivery recovers once a notification service is available again. Requests made while the terminal is focused are only logged, delivery never blocks the terminal, and the existing WM urgency hint is unchanged.
-report-configstates whether libnotify was compiled in and whether a notification service answers. (dd6d15d, 9e0c8ca, 9dfa887) - Show application progress. OSC 9;4 reports, as sent by tools such as build systems and package managers, now draw a small bar in the top-right corner of the terminal: normal progress in the foreground color, errors in red and paused work in amber, both keeping the last percentage when the application omits one, and indeterminate work as a moving block. Values above 100 show a full bar. Clearing the report, a full reset or the program exiting removes the bar. It never changes the window title, the title stack or title reports, needs no Window Ops permission and is independent of notifications. (e01f7b9, efa1b9b)
- Search the scrollback. Ctrl+Shift+F, or the new
start-search()action, opens a search bar over the bottom of the window. Typing finds the literal text across soft-wrapped lines as you type, highlights every visible match and scrolls to the nearest one above the view; Up and Down (or Shift+F3 and F3) move to older and newer matches, wrapping at the ends. Enter copies the active match to PRIMARY with its wraps joined and closes the bar, and Escape closes it and returns to where the search started. While the bar is open every key belongs to it, output keeps the view on the same text, and results stay those of the text present when the query was typed. (f81f108, a92e5a1, 3c1d664, 0552f1c) - Flash text after copying it. The new
copyFlashDurationresource, in milliseconds and 0 (off) by default, briefly marks the cells a selection gesture has just copied to PRIMARY or CLIPBOARD.copyFlashColorpaints them on a chosen color; without it they show their unselected colors for the flash. The copied bytes and selection ownership are unchanged. A new selection, another client taking the selection, or an application replacing it ends the flash at once, a repeated copy starts a new one, application OSC 52 writes never flash, and a synchronized-output batch never shows a partial flash. (8fac827, dcf46b9) - Draw box-drawing and block-element characters from the cell geometry. U+2500 through U+259F are rasterized as exact rectangles inside their own cell, so lines, corners, tees, double lines, dashes, arcs, diagonals, half and eighth blocks, quadrants and shades join pixel-for-pixel with their neighbors at every font size, in bold, under inverse video and selection, and never spill into the next cell. With Xft the primary face keeps its own glyphs and the procedural drawing is used only for characters the face lacks; the bitmap path, which previously showed
?, always draws them. The newforceBoxCharsresource (+fbxon,-fbxoff), the font menu's Procedural Glyphs entry, and theset-font-linedrawing()action force the procedural drawing for the whole range, and switching it off returns to the font's glyphs immediately. Every key is now decided one event-loop tick after Xt dispatches it, so a key bound to any local action, not only the default prompt gestures, is kept from the application together with its release. (7421d5b, 4b7af26, 83204b0) - Draw braille and Powerline separators from the cell geometry. Every braille pattern, U+2800 through U+28FF, is drawn as equal square dots in two columns of four, and U+E0B0 through U+E0BF, the Powerline arrows, half circles, slants and their thin outlines, span the full cell height so segments meet their neighbors' colors without a seam. They follow the box-drawing rules: Xft keeps the primary face's own glyphs, the bitmap path and
forceBoxCharsalways draw them, and bold, inverse video, selection and the block cursor color them like text. Other Powerline and Nerd Font symbols, such as the branch icon U+E0A0, stay with the font, as does braille in a cell too narrow for a visible dot. (aefafe6, e7b3d91) - Extend procedural drawing to DEC scan lines, terminal corner triangles, Powerline flame separators U+E0D2/U+E0D4, Symbols for Legacy Computing, and the selected Unicode 16 Legacy Computing Supplement ranges used for separated quadrants and sextants, circle pieces, octants, and sixteenth blocks. They share the box-drawing routing and switch. U+1FB93, unrelated symbols, and private-use additions stay with the font. (d4941b5, 152469c)
- Pipe the last command's output to a helper. The new
pipeCommandOutputresource names a shell command, unset by default, and the newpipe-command-output()action (Ctrl+Shift+G) finds the most recently completed prompt through its OSC 133 marks, extracts exactly that command's output with wrapped lines joined and Unicode intact, and writes it to the helper's standard input from the event loop without blocking. The helper runs in the directory the shell last reported with OSC 7 when one is known. Output is data only: nothing in it is ever executed. An unset resource, a command that wrote nothing, a helper that stops reading, and exiting while the helper still runs are all handled and logged. (1f99bd0, b4e798f, 7c7fd93) - Navigate between shell prompts. Ctrl+Shift+Up and Ctrl+Shift+Down run the new
previous-prompt()andnext-prompt()translation actions, which move the viewport to the start of the previous or next prompt that a shell has marked with OSC 133, through scrollback, across wrapped and continuation prompt lines, and after resize reflow. A prompt inside the live area keeps the live view, a screen without history (the alternate screen) does nothing, and both actions accept a repeat count. Prompt positions come from an index of OSC 133 marks, so a deep history without prompts costs nothing to search. Binding the keys to xterm'sinsert-seven-bit()restores their delivery to applications. The backend also exposes the core's cell-exact command-output selection and its text for later output extraction. (75abb48, 0df3987) - Raise the X11 urgency hint for application notifications. An OSC 9 or OSC 777
notifyrequest that arrives while the window is unfocused setsXUrgencyHintin WM_HINTS, leaving every other hint field alone, and the next focus-in clears it; a request while focused only logs. Title and body are recorded in the-debuglog. No desktop notification is delivered, no permission setting applies, and no D-Bus or helper process is involved. (87fdc41, 2b8d4ba) - Log unsupported Application Program Commands. Every completed APC that libghostty does not implement (anything other than Kitty graphics and the glyph protocol) is recorded under
-debugasunknown APC ignoredwith up to 256 payload bytes and a truncation flag; nothing is answered and surrounding output is unaffected. Unsupported OSC and CSI controls are still not visible, which remains an upstream libghos...
Revenant 0.6.1
Highlights
A focused patch release: opacity can now be adjusted from Revenant's default opaque start whenever the X server and compositor support transparency.
Changes
Released 2026-09-06. Full history in CHANGELOG.md.
Bug fixes
- Select a compositor-backed ARGB visual independently of the initial opacity, so the Main Options slider remains usable at 100%; visibly grey it out only when transparency is unavailable or explicitly disabled with
backgroundOpacity: disabledor-opacity disabled. (c4218a3)
Artifacts
| File | Size | Notes |
|---|---|---|
revenant-0.6.1-1-x86_64.pkg.tar.zst |
1.1 MiB | Arch Linux package; sudo pacman -U ./revenant-0.6.1-1-x86_64.pkg.tar.zst |
revenant-0.6.1-1.fc44.x86_64.rpm |
1.1 MiB | Fedora package; sudo dnf install ./revenant-0.6.1-1.fc44.x86_64.rpm |
revenant-0.6.1-linux-aarch64.tar.gz |
1.0 MiB | Linux aarch64 binary archive (dynamically linked): stripped revenant, xterm+ symlink, README, licenses |
revenant-0.6.1-linux-x86_64.tar.gz |
1.0 MiB | Linux x86_64 binary archive (dynamically linked): stripped revenant, xterm+ symlink, README, licenses |
revenant_0.6.1-1_amd64.deb |
1014.1 KiB | Debian/Ubuntu package; sudo apt install ./revenant_0.6.1-1_amd64.deb |
SHA-256:
3461cf89205129eed2587e3127dc77ea0821a77ae3bbbf906cdd60910de011ab revenant-0.6.1-1-x86_64.pkg.tar.zst
3c202bccac8fa13497e005264d9157542d08c93757afdba4250be4bce63a12d9 revenant-0.6.1-1.fc44.x86_64.rpm
60417f1eb63b7de406747ee030794b9d27df08903cbb4d5c10e0f26762847672 revenant-0.6.1-linux-aarch64.tar.gz
a6e9e600e2466f1d5e7e59bfc00aa8f9c9f52ab0486448e855ee7265881f30c5 revenant-0.6.1-linux-x86_64.tar.gz
df8ea762b407f51664db6c458f564a88c3e6b055e1603c64dff54859385fcd4b revenant_0.6.1-1_amd64.deb
CPU floor: x86_64 builds target x86_64-v3 (AVX2 — Intel Haswell 2013+, AMD Zen 2019+); aarch64 builds target generic ARMv8. Older CPUs fail with an illegal-instruction error; open an issue if that affects you.
Each file carries a signed build provenance attestation from the workflow run; verify a download with gh attestation verify FILE --repo toppk/revenant.
All builds link the pinned libghostty-vt from tools/fetch-libghostty and were built by the Release workflow.
Revenant 0.6.0
Highlights
A smaller quality-of-life release: visible HTTP(S) text is now actionable, and Shift-hover makes terminal hyperlinks easier to find and distinguish.
Changes
Released 2026-09-06. Full history in CHANGELOG.md.
Features
- Detect visible HTTP and HTTPS URLs across soft-wrapped rows and open them through the existing Shift+Button-1 hyperlink gesture, excluding trailing sentence punctuation and preserving explicit OSC 8 precedence. (3e472b0)
- Give Shift-hovered OSC 8 and detected links a hand pointer and a visible underline transition: unstyled links become single-underlined, while application single underlines become double-underlined. (5f9255e)
Bug fixes
- Keep Shift-hover feedback on the individual OSC 8 label when multiple visible labels point to the same destination. (5f9255e)
Artifacts
| File | Size | Notes |
|---|---|---|
revenant-0.6.0-1-x86_64.pkg.tar.zst |
1.1 MiB | Arch Linux package; sudo pacman -U ./revenant-0.6.0-1-x86_64.pkg.tar.zst |
revenant-0.6.0-1.fc44.x86_64.rpm |
1.0 MiB | Fedora package; sudo dnf install ./revenant-0.6.0-1.fc44.x86_64.rpm |
revenant-0.6.0-linux-aarch64.tar.gz |
1.0 MiB | Linux aarch64 binary archive (dynamically linked): stripped revenant, xterm+ symlink, README, licenses |
revenant-0.6.0-linux-x86_64.tar.gz |
1.0 MiB | Linux x86_64 binary archive (dynamically linked): stripped revenant, xterm+ symlink, README, licenses |
revenant_0.6.0-1_amd64.deb |
1014.2 KiB | Debian/Ubuntu package; sudo apt install ./revenant_0.6.0-1_amd64.deb |
SHA-256:
2a01d04b75ce5f6106774cf58477020fb113aa598d121663c91fee3736d4e9b3 revenant-0.6.0-1-x86_64.pkg.tar.zst
78f024ef5842c0bb01d724aaac06f44b82213f48369ccab99fdfe80ea908f971 revenant-0.6.0-1.fc44.x86_64.rpm
319f710b31ab97f2b413a28d470001c98a9b46f1ae104adaf6b2f2167787883a revenant-0.6.0-linux-aarch64.tar.gz
0dcdb38db5f31490eb2d1925233184c9bf2ddc6425670512b6070fb747448f65 revenant-0.6.0-linux-x86_64.tar.gz
f570f664017ce17044de0aafa383f61009eb7f6030b435eb218b19b027eb98ae revenant_0.6.0-1_amd64.deb
CPU floor: x86_64 builds target x86_64-v3 (AVX2 — Intel Haswell 2013+, AMD Zen 2019+); aarch64 builds target generic ARMv8. Older CPUs fail with an illegal-instruction error; open an issue if that affects you.
Each file carries a signed build provenance attestation from the workflow run; verify a download with gh attestation verify FILE --repo toppk/revenant.
All builds link the pinned libghostty-vt from tools/fetch-libghostty and were built by the Release workflow.
Revenant 0.5.0
Highlights
Fonts resolve through xterm's complete fallback chain, the cursor and ANSI palette follow xterm's resources, the command line parses like xterm's, and release builds become reproducible with Arch packaging and an offline setup audit for a readable first run.
Changes
Released 2026-09-02. Full history in CHANGELOG.md.
Features
- Resolve fonts through shaped primary, semantic, explicit, user, and system fallback roles with real same-family styles, Han and IVS routing, deterministic tofu, metric normalization, route caching and reporting, and transactional reloads. (2b4d1ba, 67077fb)
- Follow xterm's cursor-blink policy: the four-value
cursorBlinkresource,cursorBlinkXOR,-/+bc, the VT Options toggle, and application blink requests through DECSCUSR. (8d214bc) - Configure the ANSI palette from
color0throughcolor15with xterm's compiled defaults, and accept OSC 4 and OSC 104 palette operations by default. (af03695) - Parse the command line like xterm: unambiguous option prefixes, rejection of unknown options before the display opens, xterm's
-helpand-versionwording, plus GNU-style--helpand--version. (156f3e5, bc27724) - Install a
revenant(1)manual page and present the documentation site as an xman-style manual that shares the same action and resource reference. (d73e90f, a253f0c, b5455b9, 6a01a36) - Publish an Arch Linux package alongside the tarballs, Debian package, and Fedora RPM. (3a57611)
- Add
-welcome, a read-only audit of X resources, display readability, installed fonts and tools, with distribution-aware setup suggestions and a redacted support summary. (dd462b4) - Set
TERM_PROGRAMandTERM_PROGRAM_VERSIONin child sessions so diagnostics can identify when Revenant is the host terminal. (dd462b4)
Bug fixes
- Drain a bounded burst of available PTY output and paint once, so a rapid-update refresh split by the kernel no longer flashes between erased and replaced content. (3ea6f39, 670b3a6)
- Render faint text at two-thirds intensity and promote bold foreground colors 0 through 7 to 8 through 15 as xterm does;
boldColorsand-/+pccontrol the promotion. (93852d9) - Keep a client-created ARGB colormap alive while display shutdown flushes Xt's cached color converters, avoiding
BadColorwhen a report exits without realizing a window. (dd462b4) - Build libghostty for explicit
x86_64-linux-gnu/x86_64-v3andaarch64-linux-gnu/baselinetargets. Earlier releases could contain instructions unsupported on older CPUs; the install guide and every release body now state the supported CPU floor. (3a57611)
Other
- Pin Ghostty to one exact commit, rebuild it only when its inputs change, and share a Zig cache keyed by target, CPU, Zig version, Ghostty commit, build script, and runner CPU model across packages of the same architecture. (3a57611)
- Require every tarball, Debian, RPM, and Arch build to run the complete Xvfb and font-fixture suite without skips. (3a57611, 62f6d06)
- Stage and cache the pinned font fixtures once, require every builder to restore that exact cache entry, and remove the staging toolchain from package builders. (3a57611)
- Validate changelog release notes before starting builds and let intermediate package artifacts expire after one day. (3a57611)
- Enforce the internal
xterm+naming boundary across sources, tests, tools, and packaging with a branding check. (c4d9150) - Isolate font-universe types, extract the font routing lifecycle, centralize role policy and Unicode routing helpers, and move Ghostty selection policy behind a private backend header to prepare the terminal boundary for multiplexing. (3b150c8, e0e0b22, 379c725, 955f3c7, df3de1a, 1a3f4f8, 40d4e56)
- Share Xvfb harness setup across the font and keyboard suites, guard font routing diagnostics, and add a pixel-level bitmap regression for
renderFont: false. (9cc6a6d, ed4e40b, 379c725) - Document installation, CPU requirements, release provenance, and local package construction, and lead every entry page with the xterm-defaults caveat and
revenant -welcome. (3a57611, 172d1e8)
Artifacts
| File | Size | Notes |
|---|---|---|
revenant-0.5.0-1-x86_64.pkg.tar.zst |
1.1 MiB | Arch Linux package; sudo pacman -U ./revenant-0.5.0-1-x86_64.pkg.tar.zst |
revenant-0.5.0-1.fc44.x86_64.rpm |
1.0 MiB | Fedora package; sudo dnf install ./revenant-0.5.0-1.fc44.x86_64.rpm |
revenant-0.5.0-linux-aarch64.tar.gz |
1.0 MiB | Linux aarch64 binary archive (dynamically linked): stripped revenant, xterm+ symlink, README, licenses |
revenant-0.5.0-linux-x86_64.tar.gz |
1.0 MiB | Linux x86_64 binary archive (dynamically linked): stripped revenant, xterm+ symlink, README, licenses |
revenant_0.5.0-1_amd64.deb |
1009.4 KiB | Debian/Ubuntu package; sudo apt install ./revenant_0.5.0-1_amd64.deb |
SHA-256:
f5e972e80e51a45172421999e9e86922f81b375bfa334069d1057a9b41ee60d9 revenant-0.5.0-1-x86_64.pkg.tar.zst
4272f6840a632e01fd460ba9d7bfe9d31b6575f4d6aa75cef46f08a63f37d262 revenant-0.5.0-1.fc44.x86_64.rpm
ae6d78359ee660b6b9b27321c69c5658eb377e436168239fa138bf395cd58ce6 revenant-0.5.0-linux-aarch64.tar.gz
9b90746d09aec23daf3bcd359476bcf8ff122d53b3dc25f0765eca71c8f684d7 revenant-0.5.0-linux-x86_64.tar.gz
aaa9abae3387baf16fab42fb214548c647639bccb0d7295c11e5cb22151fdf7d revenant_0.5.0-1_amd64.deb
CPU floor: x86_64 builds target x86_64-v3 (AVX2 — Intel Haswell 2013+, AMD Zen 2019+); aarch64 builds target generic ARMv8. Older CPUs fail with an illegal-instruction error; open an issue if that affects you.
Each file carries a signed build provenance attestation from the workflow run; verify a download with gh attestation verify FILE --repo toppk/revenant.
All builds link the pinned libghostty-vt from tools/fetch-libghostty and were built by the Release workflow.
Revenant 0.4.0
Highlights
Emoji gain dedicated color-font routing and HarfBuzz shaping, with reproducible fixtures guarding every supported font format.
Changes
Released 2026-08-29. Full history in CHANGELOG.md.
Features
- Route emoji through a dedicated face and render color glyphs from CBDT, COLRv0, COLRv1, SVGinOT, and sbix fonts. (49a6ea0)
- Shape complete grapheme clusters with HarfBuzz and fall through atomically when a face cannot compose a modifier, keycap, flag, or ZWJ sequence. (1aca6ff)
- Add negotiated Unicode grapheme widths through DEC private mode 2027 while retaining xterm-compatible legacy widths by default. (1aca6ff)
- Default logging to warnings;
-logselects the severity and xterm's-/+debugaliases remain available. (3e5eade)
Bug fixes
- Honor an embedded
faceName:size=value with the same precedence and font menu behavior as xterm. (0ba409d)
Other
- Add an isolated, reproducible font-format matrix and real-ink Xvfb tests for routing, shaping, clipping, and fallback. (662d6e8)
- Add changelog-driven release notes with commit-traceability checks, artifact sizes, and SHA-256 hashes. (d0b43fd)
- Run the font fixture and Xvfb suites in release builds, pin their tooling, freeze libghostty to one tested commit, and make the synthetic sbix fixture independent of the host zlib. (d0b43fd)
- Sign every release asset with a build-provenance attestation and streamline Debian packaging by omitting unused
.buildinfogeneration. (d0b43fd) - Document the Revenant identity, release installation, and provenance verification. (2ef00e0, d0b43fd)
Artifacts
| File | Size | Notes |
|---|---|---|
revenant-0.4.0-1.fc44.x86_64.rpm |
1.0 MiB | Fedora package; sudo dnf install ./revenant-0.4.0-1.fc44.x86_64.rpm |
revenant-0.4.0-linux-aarch64.tar.gz |
928.0 KiB | Linux aarch64 binary archive (dynamically linked): stripped revenant, xterm+ symlink, README, licenses |
revenant-0.4.0-linux-x86_64.tar.gz |
1013.5 KiB | Linux x86_64 binary archive (dynamically linked): stripped revenant, xterm+ symlink, README, licenses |
revenant_0.4.0-1_amd64.deb |
968.0 KiB | Debian/Ubuntu package; sudo apt install ./revenant_0.4.0-1_amd64.deb |
SHA-256:
bc1a68462c2a2b2e929ebe039dd6cc533721772c23b3fdd004bb6653206bb1b2 revenant-0.4.0-1.fc44.x86_64.rpm
c4f8f5e5642e1c12cd8e484a306a02044a904d6f12c37fe7539cd34f2573e753 revenant-0.4.0-linux-aarch64.tar.gz
e1939df7cb0a47ea5831a73d545a9d03e318b57b92743b5f0e71a8662aceed48 revenant-0.4.0-linux-x86_64.tar.gz
5004523f311cdf7fd480f86f07fc3a3d8e21a4cbaf8caec5ae1dd91311d9934f revenant_0.4.0-1_amd64.deb
Each file carries a signed build provenance attestation from the workflow run; verify a download with gh attestation verify FILE --repo toppk/revenant.
All builds link the pinned libghostty-vt from tools/fetch-libghostty and were built by the Release workflow.
Revenant 0.3.0
v0.3.0 Implement reverse video rendering
xterm+ 0.2.0
v0.2.0 Keep outer DESTDIR out of libghostty build