revenant(1)
REVENANT(1)Revenant ManualREVENANT(1)

Name

revenant – xterm-compatible X11 terminal emulator with a libghostty core

Revenant reference

This is the reference page for the revenant program: the same options, resources, menus, and actions that the installed revenant(1) manual describes, with links into the pages that explain each subject. The tables below are generated from the program's own option, action, and menu tables. Resource names, classes, and literal defaults are checked against the widget's resource table at build time; the descriptions are maintained by hand.

Synopsis

revenant [toolkitoption ...] [option ...] [-e command [argument ...]]

Without arguments Revenant starts $SHELL, falling back to /bin/sh, with TERM=xterm-256color. Everything after -e is the command and must come last. Single-dash options accept an unambiguous prefix, and +opt turns off the behaviour that -opt turns on.

Start with first run if you have never used xterm, and with X resources, explained if you have never configured an X program. The keyboard input differences page explains the one default that most often surprises an xterm user.

Options

Most options are shorthand for a resource; the command-line options page groups them by subject and the feasibility study classifies every option xterm defines.

-version
Print the version number.
--version
Print the version number.
-help
Print out this message.
--help
Print out this message.
-display displayname
X server to contact.
-geometry geom
Size (in characters) and position. Sets vt100.geometry.
-rv / +rv
Turn on/off reverse video. -rv sets vt100.reverseVideo to true; +rv sets vt100.reverseVideo to false.
-r / +r
Historical reverse-video alias. -r sets vt100.reverseVideo to true; +r sets vt100.reverseVideo to false.
-reverse
Turn on reverse video. -reverse sets vt100.reverseVideo to true.
-bg color
Background color. Sets background.
-background color
Background color. Sets background.
-fg color
Foreground color. Sets foreground.
-foreground color
Foreground color. Sets foreground.
-bd color
Border color. Sets borderColor.
-bordercolor color
Border color. Sets borderColor.
-bw number
Border width in pixels. Sets borderWidth.
-borderwidth number
Border width in pixels. Sets borderWidth.
-w number
Historical border-width alias. Sets borderWidth.
-fn fontname
Normal text font. Sets vt100.font.
-font fontname
Normal text font. Sets vt100.font.
-fb fontname
Bold Xft fallback font. Sets vt100.boldFont.
-fwb fontname
Doublewidth bold Xft fallback font. Sets vt100.wideBoldFont.
-fa pattern
FreeType font-selection pattern. Sets vt100.faceName.
-fd pattern
FreeType doublesize font-selection pattern. Sets vt100.faceNameDoublesize.
-fe pattern
FreeType emoji font-selection pattern. Sets vt100.faceNameEmoji.
-fs size
FreeType font size. Sets vt100.faceSize.
-iconic
Start iconic. -iconic sets iconic to true.
-name string
Client instance, icon, and title strings.
-class string
Application class string (XTerm).
-title string
Title string. Sets title.
-tn name
TERM for the child and XTGETTCAP TN. Sets termName.
-xrm resourcestring
Additional resource specification.
-selectionTimeout milliseconds
Xt selection timeout.
-synchronous / +synchronous
Turn synchronous X requests on/off.
-xnllanguage string
Xt language resource.
-b number
Internal border in pixels. Sets vt100.internalBorder.
-ah / +ah
Turn on/off always highlight. -ah sets vt100.alwaysHighlight to true; +ah sets vt100.alwaysHighlight to false.
-bc / +bc
Turn on/off text cursor blinking. -bc sets vt100.cursorBlink to true; +bc sets vt100.cursorBlink to false.
-uc / +uc
Turn on/off underline cursor. -uc sets vt100.cursorUnderLine to true; +uc sets vt100.cursorUnderLine to false.
-barc / +barc
Turn on/off bar cursor. -barc sets vt100.cursorBar to true; +barc sets vt100.cursorBar to false.
-bcf milliseconds
Time text cursor is off when blinking. Sets vt100.cursorOffTime.
-bcn milliseconds
Time text cursor is on when blinking. Sets vt100.cursorOnTime.
-opacity value
Background opacity (0.0 through 1.0, or disabled). Sets vt100.backgroundOpacity.
-cc classrange
Specify additional character classes. Sets vt100.charClass.
-cr color
Text cursor color. Sets vt100.cursorColor.
-pc / +pc
Turn on/off PC-style bright bold colors. -pc sets vt100.boldColors to true; +pc sets vt100.boldColors to false.
-ls / +ls
Turn on/off login shell. -ls sets loginShell to on; +ls sets loginShell to off.
-mc milliseconds
Multiclick time in milliseconds. Sets vt100.multiClickTime.
-hold / +hold
Turn on/off logic that retains window after exit. -hold sets hold to on; +hold sets hold to off.
-samename / +samename
Turn on/off the no-flicker option for title and icon name. -samename sets sameName to on; +samename sets sameName to off.
-sb / +sb
Turn on/off scrollbar. -sb sets vt100.scrollBar to true; +sb sets vt100.scrollBar to false.
-rightbar
Force scrollbar right (default left). -rightbar sets vt100.rightScrollBar to true.
-leftbar
Force scrollbar left. -leftbar sets vt100.rightScrollBar to false.
-si / +si
Turn on/off scroll-on-tty-output inhibit. -si sets vt100.scrollTtyOutput to false; +si sets vt100.scrollTtyOutput to true.
-sk / +sk
Turn on/off scroll-on-keypress. -sk sets vt100.scrollKey to true; +sk sets vt100.scrollKey to false.
-sl number
Number of scrolled lines to save. Sets vt100.saveLines.
-T string
Title name for window. Sets title.
-n string
Icon name for window. Sets iconName.
#geometry
Icon window geometry. Sets iconGeometry.
-log level
Set diagnostic threshold. Sets logLevel.
-debug / +debug
Turn debug diagnostics on/off. -debug sets logLevel to debug; +debug sets logLevel to warning.
-report-config
Print resolved configuration and exit. -report-config sets reportConfig to true.
-report-font-routing
Collect routes; invoke report-font-routing() to print a snapshot. -report-font-routing sets vt100.reportFontRouting to true.
-welcome
Analyze resources and fonts, then suggest a readable setup.
-e command args ...
Command to execute.
-self-test
Run the installed package diagnostic (--self-test is an alias).

Resources

Resources are read through the XTerm class and the vt100 widget, exactly as in xterm. Configuring Revenant walks through them by topic with examples, and fonts and font fallback covers the Xft role chains in depth. Run revenant -report-config to see what your own configuration resolved to.

VT100 widget resources

These belong to the terminal widget, so their full names are xterm.vt100.name and a loose binding such as XTerm*name reaches them.

font (class Font)
Bitmap font for the Default entry of the VT Fonts menu, used when renderFont is false. Give an X logical font description or an alias known to xlsfonts(1). Type: font. Default: fixed.
font1 through font7 (class FontN)
Bitmap fonts for the Unreadable through Enormous entries of the VT Fonts menu, in that order. Shift+keypad plus and minus step through the configured slots by size. Type: font. Default: nil2, 5x7, 6x10, 7x13, 9x15, 10x20, 12x24.
renderFont (class RenderFont)
Selects the Xft renderer (true) or the Xlib bitmap renderer (false). The value default behaves as true when faceName is set and false otherwise. The TrueType Fonts menu entry toggles it at run time. Type: string. Default: default.
faceName (class FaceName)
Fontconfig pattern for the primary Xft face, for example "DejaVu Sans Mono" or "Hack:style=Regular". As in xterm the value may hold two comma-separated entries; the second is the first fallback. A size= field in the first entry overrides faceSize. Type: pattern. Default: (unset).
faceSize (class FaceSize)
Point size of the Default entry when the Xft renderer is active. Sizes are resolved against the screen's Xft DPI so the physical size matches xterm. Type: number. Default: 8.0.
faceSize1 through faceSize7 (class FaceSizeN)
Point sizes for the remaining VT Fonts menu entries. A zero value derives the size from the proportions of the corresponding bitmap font, as xterm does. Type: number. Default: 0.0.
faceNameDoublesize (class FaceNameDoublesize)
Xft face tried first for wide (double-width) text, and second for emoji when faceNameEmoji misses. The terminal engine decides cell width; this face only paints it. Type: pattern. Default: (unset).
faceNameEmoji (class FaceNameEmoji)
Xft face tried first for clusters that resolve to emoji presentation. Type: pattern. Default: (unset).
faceNameEmojiText (class FaceNameEmojiText)
Xft face tried for emoji characters that resolve to text presentation, such as a bare hammer and wrench, after the ordinary text faces and numbered fallbacks miss and before unnamed fontconfig candidates. The face is requested as monochrome, so a generic emoji rule cannot answer it with a color face. It never serves ordinary text, CJK or color emoji. Type: pattern. Default: (unset).
faceNameHan (class FaceNameHan)
Xft face tried first for text-presentation characters whose base has the Unicode script property Han. Point it at the same face as faceNameDoublesize for a consistent CJK look. Type: pattern. Default: (unset).
boldFont (class BoldFont)
Explicit bold face chain. With the Xft renderer an xft: entry names a fontconfig pattern for SGR bold; without it the bold style is derived from the primary face. Type: font. Default: (unset).
wideBoldFont (class WideBoldFont)
Explicit bold face chain for wide text, in the same form as boldFont. Type: font. Default: (unset).
fallbackFace1 through fallbackFace16 (class FallbackFaceN)
Ordered user-supplied fallback faces consulted after the explicit role faces and before fontconfig's own candidates. Each holds one fontconfig pattern. Type: pattern. Default: (unset).
systemFallback (class SystemFallback)
Permit unnamed fontconfig candidates after the named faces are exhausted. When false, a cluster no named face can draw is shown as a deterministic placeholder box. Type: boolean. Default: true.
fitEmojiText (class FitEmojiText)
Permit shrinking a monochrome face to fit a text-presentation emoji into the cells the terminal engine assigned it, instead of refusing the face because its glyphs are too wide. The scale is uniform and never enlarges, cursor movement is unchanged, and ink stays inside those cells. When false such a face is refused, as in earlier releases. Type: boolean. Default: true.
limitFontsets (class LimitFontsets)
Budget of fallback faces that may be opened per font slot and style. Zero disables all fallback, including the second faceName entry and every fallbackFaceN. Type: integer. Default: 50.
limitFontHeight (class LimitFontHeight)
Percentage tolerance applied when recognising a DEC double-height face. Accepted for xterm compatibility; double-height rendering is not implemented. Type: integer. Default: 10.
limitFontWidth (class LimitFontWidth)
Percentage by which a fallback glyph's advance may exceed the cell before the face is rejected for that cluster. Type: integer. Default: 10.
emojiPresentation (class EmojiPresentation)
Presentation for emoji without an explicit selector: unicode follows the Unicode default, text forces monochrome text presentation, emoji forces emoji presentation. VS15 and VS16 always win. Type: string. Default: unicode.
colorGlyphs (class ColorGlyphs)
Permit colour glyph paint (CBDT, sbix, COLR, SVG). When false a face is used only if it has a genuine outline for the glyph. Type: boolean. Default: true.
graphemeWidth (class GraphemeWidth)
Initial state of DEC private mode 2027. legacy keeps wcwidth-compatible cursor arithmetic; unicode enables grapheme-cluster width at startup and after reset. Applications may still set or reset the mode. Type: string. Default: legacy.
reportFontRouting (class ReportFontRouting)
Collect bounded records of font routing decisions for the report-font-routing() action. Off by default because collection has a cost. Type: boolean. Default: false.
foreground (class Foreground)
Default text colour. Type: color. Default: XtDefaultForeground.
cursorColor (class CursorColor)
Text cursor colour. A focused block cursor is filled; an unfocused block is an outline. Type: color. Default: XtDefaultForeground.
color0 through color15 (class ColorN)
The sixteen ANSI palette entries: color0 through color7 are the normal colours and color8 through color15 the bright ones. OSC 4 may change an entry at run time and OSC 104 restores the configured value. Type: color. Default: xterm's palette.
boldColors (class ColorMode)
Render bold text in palette colours 0 through 7 with the corresponding bright colour 8 through 15, as xterm does. When false, bold changes only the font weight. Type: boolean. Default: true.
backgroundOpacity (class BackgroundOpacity)
Opacity of the default background from 0.0 (transparent) to 1.0. Takes effect only when a compositor owns the screen and an ARGB visual exists; otherwise the window starts opaque. Text, explicit cell backgrounds, the cursor, and menus stay opaque. The Opacity slider in the Main Options menu adjusts it at run time. Type: number. Default: 1.0.
reverseVideo (class ReverseVideo)
Swap the default foreground and background. Independent of the application-controlled DECSCNM mode and of SGR 7 inverse cells. Type: boolean. Default: false.
saveLines (class SaveLines)
Lines of scrollback kept by the terminal engine. Zero disables history. The engine frees history in whole pages, so the limit is approximate within one page. Type: integer. Default: 1024.
scrollBar (class ScrollBar)
Show the Athena scrollbar. The scrollbar is an ordinary Xaw Scrollbar child named scrollbar, so its own resources such as width and thickness may be set through that path. Type: boolean. Default: false.
rightScrollBar (class RightScrollBar)
Place the scrollbar on the right instead of the left. Type: boolean. Default: false.
scrollBarBorder (class ScrollBarBorder)
Border width of the scrollbar in pixels. Type: dimension. Default: 1.
scrollTtyOutput (class ScrollCond)
Jump to the live bottom when output arrives. When false the viewport keeps its distance from the bottom as new rows arrive. Type: boolean. Default: true.
scrollKey (class ScrollCond)
Jump to the live bottom when a key is pressed. Type: boolean. Default: false.
multiClickTime (class MultiClickTime)
Maximum interval in milliseconds between clicks of a double or triple click. Type: integer. Default: 250.
charClass (class CharClass)
Character classes for double-click word selection, in xterm's low[-high]:class form separated by commas. Letters, digits, and underscore share class 48 by default; punctuation characters each form their own class. Type: string. Default: (unset).
selectToClipboard (class SelectToClipboard)
Make the symbolic SELECT selection name mean CLIPBOARD instead of PRIMARY, for both copying and pasting. Type: boolean. Default: false.
allowWindowOps (class AllowWindowOps)
The blanket permission for window operations that disallowedWindowOps would otherwise refuse, effective only while allowSendEvents is false. Revenant consults it for OSC 52 selection access (GetSelection, SetSelection), the XTWINOPS title reports and title stack (GetIconTitle, GetWinTitle, PushTitle, PopTitle) and the CSI 14/16/18 t size reports; other xterm window operations are not implemented. The Allow Window Ops menu entry changes it live, and is insensitive while allowSendEvents is true. Type: boolean. Default: false.
disallowedWindowOps (class DisallowedWindowOps)
Comma-separated xterm window-operation names refused unless allowWindowOps is true and allowSendEvents is false; names are case-insensitive, accept shell-style * and ? wildcards, and a ~ prefix re-allows matches. Revenant consults GetSelection and SetSelection (OSC 52), GetIconTitle and GetWinTitle (XTWINOPS 20/21 reports), PushTitle and PopTitle (XTWINOPS 22/23), GetWinSizePixels and GetWinSizeChars (CSI 14/18 t), and GetScreenSizeChars, which gates CSI 16 t as in xterm; xterm's numeric codes 14, 18, 19 and 20-23 are also accepted, and 16 names nothing. The xterm default leaves OSC 52 and the title reports disabled while the title stack stays available. Type: string. Default: GetIconTitle,GetWinTitle,GetChecksum,SetSelection,GetSelection,SetXprop.
maxStringParse (class MaxStringParse)
Largest control string, in bytes, that the parser accepts. Revenant enforces it only for OSC 52 selection writes, measuring the base64 payload as xterm would; libghostty bounds every other control string itself. Type: integer. Default: 600000.
internalBorder (class BorderWidth)
Padding in pixels between the text and the window edge. Type: dimension. Default: 2.
columns (class Columns)
Initial number of columns when no geometry is given. Type: integer. Default: 80.
rows (class Rows)
Initial number of rows when no geometry is given. Type: integer. Default: 24.
loginShell (class LoginShell)
Start the shell as a login shell, as xterm -ls does: argv[0] is the shell's name with a leading dash, such as -bash. It has no effect on a command given with -e. The shell is $SHELL when that is an absolute path to an executable file, otherwise the password-file shell when /etc/shells lists it, otherwise /bin/sh. -ls and +ls set it. Type: boolean. Default: false.
geometry (class Geometry)
Initial size in characters and position in pixels, in the standard X form WIDTHxHEIGHT+X+Y, as in xterm. -geometry sets it. The size replaces columns and rows, and a zero size becomes one; negative offsets count from the right and bottom edges of the screen. When it is unset, the application geometry resource is read the same way, whereas xterm ignores the size given there. Type: string. Default: (unset).
alwaysHighlight (class AlwaysHighlight)
Draw a filled block cursor even when the window does not have focus. Type: boolean. Default: false.
cursorBlink (class CursorBlink)
Configured cursor blink operand: false, true, always, or never. false and true combine with the application's DECSCUSR or mode 12 request under cursorBlinkXOR; always and never ignore the application. A reset restores this value. Type: string. Default: false.
cursorBlinkXOR (class CursorBlinkXOR)
Combine the configured and application blink states with exclusive or (true) or inclusive or (false), as in xterm. Type: boolean. Default: true.
cursorUnderLine (class CursorUnderLine)
Start with an underline cursor instead of a block; -uc and +uc set it. It takes precedence over cursorBar, and DECSCUSR 0, an omitted DECSCUSR parameter, or a full reset returns to it (xterm's CSI 7 SP q is not recognized). Blink is controlled separately by cursorBlink. Type: boolean. Default: false.
forceBoxChars (class ForceBoxChars)
Draw supported procedural terminal glyphs from cell geometry instead of the font: box and block elements, Braille, DEC scan lines, terminal corner triangles, standardized legacy-computing symbols, and selected Powerline separators. +fbx sets it and -fbx clears it, as in xterm. When false the Xft path uses the primary face's own glyph and draws procedurally only when that face lacks the character; the bitmap path always draws supported ranges procedurally. The font menu's Procedural Glyphs entry and set-font-linedrawing() change it at runtime. Type: boolean. Default: false.
cursorBar (class CursorBar)
Start with a bar cursor instead of a block; -barc and +barc set it. cursorUnderLine wins when both are true, and DECSCUSR 0 or a full reset returns to the configured shape. Type: boolean. Default: false.
answerbackString (class AnswerbackString)
Text sent verbatim to the application when it writes ENQ (0x05). The default is empty, which sends nothing. Type: string. Default: .
cursorOnTime (class CursorOnTime)
Milliseconds a blinking cursor remains visible. Type: integer. Default: 600.
cursorOffTime (class CursorOffTime)
Milliseconds a blinking cursor remains hidden. Type: integer. Default: 300.
copyFlashDuration (class CopyFlashDuration)
Milliseconds that text just copied by a selection gesture flashes before returning to the ordinary selection highlight. 0 disables the flash. A new selection, losing or replacing the selection, and an application's OSC 52 write never start or extend it; the copied bytes are unchanged. Type: integer. Default: 0.
copyFlashColor (class CopyFlashColor)
Background color of copied cells while copyFlashDuration runs. Empty by default, which shows the copied cells in their unselected colors for the flash instead. Type: color. Default: .
allowTitleOps (class AllowTitleOps)
Allow application title changes and application of saved title/icon labels on pop. The Allow Title Ops menu and the allow-title-ops(on|off|toggle) action change this live. While allowSendEvents is true no label changes, whatever this value, and the menu entry is insensitive; the action still changes the configured value. Title reports and stack operations separately consult Window Ops. OSC 1 and the icon part of OSC 0 still lack libghostty callbacks. Type: boolean. Default: true.
utf8Title (class Utf8Title)
Write the UTF-8 EWMH labels _NET_WM_NAME and _NET_WM_ICON_NAME alongside WM_NAME and WM_ICON_NAME, as in xterm. true, false, always or default; default means true in a UTF-8 locale and false otherwise. In a UTF-8 locale a label change writes the EWMH label as UTF8_STRING when this is set and deletes it when it is not; in other locales the EWMH labels are left alone and this only chooses whether UTF-8 labels are narrowed to Latin-1. set-utf8-title() and the font menu's UTF-8 Titles entry change it; as in xterm, that entry is checked and insensitive in a UTF-8 locale and unchecked elsewhere. Type: string. Default: default.
allowColorOps (class AllowColorOps)
The configured blanket permission for dynamic-color operations: OSC 10-19 sets and queries, OSC 110-119 resets, and OSC 4/5 palette queries. It permits every one of them only while allowSendEvents is false; when it is false, or while allowSendEvents is true, disallowedColorOps selects which operations are refused. The Allow Color Ops menu entry and the allow-color-ops(on|off|toggle) action change the configured value live. Type: boolean. Default: true.
allowSendEvents (class AllowSendEvents)
As in xterm, true blocks Title Ops completely and blocks the blanket Color Ops permission. Only color operations not listed in disallowedColorOps stay permitted. allowTitleOps, allowColorOps and the allow-title-ops and allow-color-ops actions still change their configured values; the Allow Color Ops menu entry stays clickable, and the Allow Title Ops entry is insensitive. It also blocks the Window Ops blanket permission, so disallowedWindowOps alone decides, and the Allow Window Ops menu entry is insensitive. Unlike xterm, synthetic key and button events are accepted whatever the value, and the value is read only at startup. Type: boolean. Default: false.
disallowedColorOps (class DisallowedColorOps)
Comma-separated xterm color-operation names refused unless allowColorOps is true and allowSendEvents is false: SetColor (OSC 10-19 sets and 110-119 resets), GetColor (OSC 10-19 queries), and GetAnsiColor (OSC 4/5 queries). Names are case-insensitive, accept * and ? wildcards, and a ~ prefix re-allows matches. Ordinary OSC 4 palette writes are never gated, as in xterm. Type: string. Default: SetColor,GetColor,GetAnsiColor.
allowMouseOps (class AllowMouseOps)
Permit application mouse and focus reports. The Allow Mouse Ops menu toggles this live; disabling restores local mouse selection without changing requested modes. Named disallowedMouseOps exceptions, locator and alternate-scroll policy are not yet implemented. Type: boolean. Default: true.
allowTcapOps (class AllowTcapOps)
Permit terminal-capability operations regardless of disallowedTcapOps. The Allow Tcap Ops menu toggles this live; currently gates libghostty-generated XTGETTCAP replies, while XTSETTCAP is not implemented. Type: boolean. Default: true.
disallowedTcapOps (class DisallowedTcapOps)
Case-insensitive operation names with wildcards and tilde negation, applied when allowTcapOps is false. GetTcap gates XTGETTCAP replies; SetTcap is reserved for future XTSETTCAP support. Type: string. Default: SetTcap,GetTcap.
allowFontOps (class AllowFontOps)
Prepared permission for application OSC 50 font requests. No OSC 50 backend callback exists yet; the Allow Font Ops menu remains disabled and this resource has no font-changing effect. Type: boolean. Default: true.
disallowedFontOps (class DisallowedFontOps)
Prepared font-operation restrictions for SetFont and GetFont, using case-insensitive names, wildcards and tilde negation. These restrictions have no operational effect until OSC 50 is connected. Type: string. Default: SetFont,GetFont.

Application resources

These belong to the application shell: xterm.name or XTerm.name.

termName (class TermName)
Terminal name placed in the child's TERM and reported for an XTGETTCAP TN query, so both always agree; -tn sets it. Names over 128 bytes still set TERM but leave TN unanswered. Type: string. Default: xterm-256color.
sameName (class SameName)
Skip a title or icon-name update that repeats the label last requested, so the window manager sees no redundant property change. The comparison is with the last request, not the live property, as in xterm, so a label another client changed is not rewritten by the same request. -samename and +samename set it. Type: boolean. Default: true.
hold (class Hold)
Keep the window and its last output after the child exits, until the user closes it, as xterm -hold does. Input typed afterwards is discarded, and the terminal still exits with status 0. -hold and +hold set it. Type: boolean. Default: false.
pipeCommandOutput (class PipeCommandOutput)
Shell command started by pipe-command-output() (Ctrl+Shift+G by default) with the last completed command's output on its stdin, in the shell's last reported directory. Unset by default; the output is data and is never executed. Type: string. Default: .
menuLocale (class MenuLocale)
Locale under which the popup menus are created, so bitmap menu fonts work on UTF-8 desktops without charset warnings. Type: string. Default: C.
logLevel (class LogLevel)
Minimum severity written to standard error: debug, info, warning, or error. Type: string. Default: warning.
debug (class Debug)
Compatibility alias: when logLevel is unset, true selects the debug level. Type: boolean. Default: false.
reportConfig (class ReportConfig)
Print the resolved configuration report and exit instead of opening a window. Normally set with -report-config. Type: boolean. Default: false.

Toolkit resources

These are ordinary shell and core widget resources that every Xt program understands; they are listed because xterm users set them.

background (class Background)
Default background colour of the terminal widget, a core widget resource that also sets the scrollbar trough. Type: color. Default: XtDefaultBackground.
title (class Title)
Window title. Applications may change it at run time with OSC 0 or OSC 2. Type: string. Default: program name.
iconName (class IconName)
Icon name shown by the window manager. Type: string. Default: program name.
iconGeometry (class IconGeometry)
Preferred position of the icon. Type: string. Default: (unset).
iconic (class Iconic)
Start iconified. Type: boolean. Default: false.
borderColor (class BorderColor)
Colour of the window border drawn by the shell. Type: color. Default: XtDefaultForeground.
borderWidth (class BorderWidth)
Width of the window border drawn by the shell. Type: dimension. Default: 0.

Ctrl with Buttons 1, 2, and 3 opens the three menus. Entries Revenant does not implement yet are shown insensitive; the popup-menu feasibility study tracks each one.

Main Options (Ctrl+Button 1)

Toolbar (not yet available)
Full Screen (not yet available)
Secure Keyboard (not yet available)
Allow SendEvents (not yet available)
Redraw Window

Log to File (not yet available)
Print-All Immediately (not yet available)
Print-All on Error (not yet available)
Print Window (not yet available)
Redirect to Printer (not yet available)
XHTML Screen Dump (not yet available)
SVG Screen Dump (not yet available)
Opacity slider, which adjusts backgroundOpacity for this window

8-Bit Controls (not yet available)
Backarrow Key (BS/DEL)
Alt/NumLock Modifiers
Alt Sends Escape
Meta Sends Escape (not yet available)
Delete is DEL (not yet available)
Old Function-Keys (not yet available)
Termcap Function-Keys (not yet available)
HP Function-Keys (not yet available)
SCO Function-Keys (not yet available)
Sun Function-Keys (not yet available)
VT220 Keyboard (not yet available)

Send STOP Signal (not yet available)
Send CONT Signal (not yet available)
Send INT Signal (not yet available)
Send HUP Signal (not yet available)
Send TERM Signal (not yet available)
Send KILL Signal (not yet available)

Quit

VT Options (Ctrl+Button 2)

Enable Scrollbar
Enable Jump Scroll (not yet available)
Enable Reverse Video
Enable Auto Wraparound
Enable Reverse Wraparound
Enable Auto Linefeed
Enable Application Cursor Keys
Enable Application Keypad
Scroll to Bottom on Key Press
Scroll to Bottom on Tty Output
Allow 80/132 Column Switching (not yet available)
Keep Selection (not yet available)
Keep Clipboard (not yet available)
Select to Clipboard
Enable Visual Bell (not yet available)
Enable Bell Urgency (not yet available)
Enable Pop on Bell (not yet available)
Enable Blinking Cursor (not yet available)
Enable Alternate Screen Switching (not yet available)
Enable Active Icon (not yet available)

Do Soft Reset (not yet available)
Do Full Reset (not yet available)
Reset and Clear Saved Lines (not yet available)

Show Tek Window (not yet available)
Switch to Tek Mode (not yet available)
Hide VT Window (not yet available)
Show Alternate Screen (not yet available)
Enable XCopyArea (not yet available)
Sixel Scrolling (not yet available)
Private Color Registers (not yet available)

VT Fonts (Ctrl+Button 3)

Default
Unreadable
Tiny
Small
Medium
Large
Huge
Enormous
Escape Sequence (not yet available)
Selection (not yet available)

Bold Fonts (not yet available)
Procedural Glyphs
Packed Font (not yet available)
Doublesized Characters (not yet available)
VT220 Soft Fonts (not yet available)

TrueType Fonts
UTF-8 Encoding (not yet available)
UTF-8 Fonts (not yet available)
UTF-8 Titles

Allow Color Ops
Allow Mouse Ops
Allow Termcap Ops
Allow Title Ops
Allow Window Ops

Actions

These actions are available to a translations resource on the vt100 widget. The default VT bindings audit compares the shipped translations with xterm's.

select-start([block])
Begin a selection at the pointer. Repeated clicks within multiClickTime select by word and then by line. With the block parameter, or Meta held, the selection is rectangular.
select-extend()
Extend the selection in progress to the pointer, scrolling the history when the pointer leaves the window.
select-end([name ...])
Finish the selection and publish it to the named selections and cut buffers, for example SELECT and CUT_BUFFER0.
start-extend()
Move the nearer end of the existing selection to the pointer and continue extending from there.
insert-selection([name ...])
Paste the first named selection or cut buffer that yields text, trying UTF8_STRING before STRING.
set-select([on|off|toggle])
Set selectToClipboard for this window.
scroll-back(count [unit] [m])
Scroll the viewport back by count lines, halfpages, or pages. The m suffix means the binding is also a mouse action and is forwarded to an application that has enabled mouse reporting.
scroll-forw(count [unit] [m])
Scroll the viewport forward, with the same parameters as scroll-back.
previous-prompt([count])
Scroll the viewport up to the start of the previous shell prompt marked with OSC 133, count prompts back (default 1). A prompt in the visible live area needs no scrolling, and the alternate screen has no history to move through.
next-prompt([count])
Scroll the viewport down to the start of the next OSC 133 prompt, with the same parameter as previous-prompt.
insert-seven-bit()
Deliver the key to the application through the normal input path instead of running a local action; binding it to a gesture such as Ctrl Shift Up restores xterm's key delivery.
insert-eight-bit()
Same as insert-seven-bit; Revenant encodes the key from the current keyboard modes rather than from this choice.
pipe-command-output()
Send the output of the most recently completed shell command, found through its OSC 133 marks, to the pipeCommandOutput command's standard input, run in the last OSC 7 directory when one is known. Does nothing when that resource is unset or the command wrote nothing.
start-search()
Open the search overlay (Ctrl+Shift+F by default). Typing searches the scrollback for the literal text, Up and Down (or Shift+F3 and F3) move to the previous and next match, Backspace edits the query, Enter copies the active match to PRIMARY and closes the search, and Escape closes it and restores the viewport. While it is open every key belongs to the search.
larger-vt-font()
Switch to the next larger configured font slot.
smaller-vt-font()
Switch to the next smaller configured font slot.
set-render-font([on|off|toggle])
Switch between the Xft and bitmap renderers.
allow-title-ops([on|off|toggle])
Change Allow Title Ops, the same live permission the menu entry shows. With no parameter or toggle it flips; on and off ignore case. As in xterm, asking for the state already in effect, or any other parameter, rings the bell and changes nothing.
set-utf8-title([on|off|toggle])
Change utf8Title, which decides whether later label changes write or delete the UTF-8 EWMH labels. Arguments behave as for allow-title-ops. It works in every locale, although the menu entry is insensitive in a UTF-8 locale, as in xterm; labels already set keep their properties until they next change.
allow-color-ops([on|off|toggle])
Change Allow Color Ops, the configured permission the menu entry shows. Arguments behave as for allow-title-ops. While allowSendEvents is true the change is recorded but the blanket permission stays blocked, as in xterm.
set-font-linedrawing([on|off|toggle])
Change forceBoxChars: draw supported procedural terminal glyphs from cell geometry instead of the font.
popup-menu(name)
Post the named popup menu: mainMenu, vtMenu, or fontMenu.
mouse-press()
Report the button press to an application that has enabled mouse reporting; otherwise do nothing.
mouse-motion()
Report pointer motion to an application that has enabled mouse reporting.
hyperlink-start()
If the cell under the pointer carries an OSC 8 hyperlink or visible HTTP(S) URL, arm it so that the release opens it with xdg-open(1); otherwise behave as select-start.
report-font-routing()
Write a snapshot of collected font routing decisions to standard error. Requires reportFontRouting.

Default translations

Shift~Ctrl <KeyPress> KP_Add: larger-vt-font()
Shift Ctrl <KeyPress> KP_Add: smaller-vt-font()
Shift <KeyPress> KP_Subtract: smaller-vt-font()
Shift <KeyPress> Insert: insert-selection(SELECT, CUT_BUFFER0)
Shift <KeyPress> Prior: scroll-back(1,halfpage)
Shift <KeyPress> Next: scroll-forw(1,halfpage)
Ctrl Shift <KeyPress> Up: previous-prompt()
Ctrl Shift <KeyPress> Down: next-prompt()
Ctrl Shift <KeyPress> g: pipe-command-output()
Ctrl Shift <KeyPress> f: start-search()
!Ctrl <Btn1Down>: popup-menu(mainMenu)
!Lock Ctrl <Btn1Down>: popup-menu(mainMenu)
!Lock Ctrl @Num_Lock <Btn1Down>: popup-menu(mainMenu)
! @Num_Lock Ctrl <Btn1Down>: popup-menu(mainMenu)
!Ctrl <Btn2Down>: popup-menu(vtMenu)
!Lock Ctrl <Btn2Down>: popup-menu(vtMenu)
!Lock Ctrl @Num_Lock <Btn2Down>: popup-menu(vtMenu)
! @Num_Lock Ctrl <Btn2Down>: popup-menu(vtMenu)
!Ctrl <Btn3Down>: popup-menu(fontMenu)
!Lock Ctrl <Btn3Down>: popup-menu(fontMenu)
!Lock Ctrl @Num_Lock <Btn3Down>: popup-menu(fontMenu)
! @Num_Lock Ctrl <Btn3Down>: popup-menu(fontMenu)
Shift ~Ctrl ~Meta <Btn1Down>: hyperlink-start()
~Meta <Btn1Down>: select-start()
Meta <Btn1Down>: select-start(block)
~Ctrl ~Meta <Btn2Down>: mouse-press()
~Ctrl ~Meta <Btn2Up>: insert-selection(SELECT, CUT_BUFFER0)
~Ctrl ~Meta <Btn3Down>: start-extend()
<BtnUp>: select-end(SELECT, CUT_BUFFER0)
Ctrl <Btn4Down>: scroll-back(1,halfpage,m)
Lock Ctrl <Btn4Down>: scroll-back(1,halfpage,m)
Lock @Num_Lock Ctrl <Btn4Down>: scroll-back(1,halfpage,m)
@Num_Lock Ctrl <Btn4Down>: scroll-back(1,halfpage,m)
<Btn4Down>: scroll-back(5,line,m)
Ctrl <Btn5Down>: scroll-forw(1,halfpage,m)
Lock Ctrl <Btn5Down>: scroll-forw(1,halfpage,m)
Lock @Num_Lock Ctrl <Btn5Down>: scroll-forw(1,halfpage,m)
@Num_Lock Ctrl <Btn5Down>: scroll-forw(1,halfpage,m)
<Btn5Down>: scroll-forw(5,line,m)
<BtnMotion>: mouse-motion() select-extend()
<BtnDown>: mouse-press()

Environment and files

Name Meaning
DISPLAY The X server to contact
SHELL The command run when none is given with -e
TERM Set to xterm-256color for the child
/etc/X11/app-defaults/XTerm Class defaults shared with xterm, including menu labels
~/.Xresources The usual place for user resources, loaded with xrdb -merge
RevenantSeptember 23, 2026REVENANT(1)