phist is an X11 terminal emulator forked from st.
- Custom font, palette, shell and zoom defaults, with local build configuration.
- Compressed, reflowing scrollback with page keys and history preserved across clears and resets.
- Incremental scrollback search with Ctrl+/, wrapped text, Unicode and highlighted matches.
- Consistent Delete keys and nonblocking input/reply queues, preserving order and terminal responsiveness.
- Text-area size queries (
CSI 18 t), answered in character cells. - Configurable blinking cursor styles.
- Colored single, double, curly, dotted and dashed underlines.
- Clickable URLs and OSC 8 hyperlinks, with copy feedback and a target preview box, including wrapped text and history.
- Expanding text selections, selecting with Vim's keys and incremental transfers for large copies.
- Local mouse actions with application mouse and focus reporting disabled.
- Initial working directory with
-d. - OSC 7 directory reports exposed through an X11
window property for
xpropand window-manager scripts. - Color emoji and canonical combining-character composition.
- Configurable visual bell animations with rate limiting.
- Headless tests and fuzzing, with parser and wide-cell bounds fixes.
- Visible concealed text and minimum contrast, with opt-in palette changes.
- Output controls and parser limits, with bounded diagnostics and silent Vim compatibility probes.
- Paste confirmation with selectable, copyable previews, filtering and bounded transfers.
- Filtered, bounded titles with combining-mark limits and updates batched with drawing.
- Batched reverse-video redraws.
Requires a C compiler, make, pkg-config, development libraries for Xlib, Xft,
XRender, Fontconfig and FreeType, and tic from ncurses.
make
make terminfo
TERMINFO="$PWD/.terminfo" ./phistThe build version comes from git describe --tags --always --dirty. Without
Git metadata it defaults to unknown; use make VERSION=... to override it.
The executable is phist and the default TERM is phist-256color. The
terminfo definitions in st.info are st's entries renamed to phist names,
including the suffixed variants. Install these entries on remote hosts too
when applications there need them.
make installThis installs phist and phist(1) under /usr/local by default, and
copies the compiled .terminfo entries into /etc/terminfo, regardless of
PREFIX. make terminfo compiles st.info into the working directory's
.terminfo directory; make install uses the same target and reuses its
output until st.info changes. make clean removes the local entries.
Adjust PREFIX in config.mk or on the make command line as needed.
DESTDIR applies to the binary, manual and terminfo entries for staged
installs. make uninstall removes the binary and manual, but not the
installed terminfo entries.
Edit config.h and rebuild. The first build copies it from config.def.h. To
adopt updated defaults, save any local changes, remove config.h, then run
make clean and make.
See the documentation for usage, settings and tests.
MIT/X Consortium; see LICENSE.