st-rs

2 min read Original article ↗

A minimal terminal (similar to ST), written in Rust, targeting Wayland.

Goals

  • To provide a stable terminal in a safe language.
  • To focus on a minimal feature-set.

At the time of writing most of the terminals written in Rust have many features. The aim of ST-RS is to have a minimal feature set - while remaining useful. Working under the assumption additional features are provided by a multiplexor such as screen/TMUX.

Scope

ST-RS deliberately keeps its feature set small.

  • Fully featured terminal "display" - with support for outline fonts & emojis.
  • No configuration (command-line arguments or build-time options).
  • No scrolling.

Other Pages

Build

ST-RS is built with Cargo:

The resulting binary is written to target/release/st-rs.

Install

make install            # installs the binary and the terminfo entry

ST-RS sets TERM=st-rs and ships its own terminfo description (terminfo/st-rs.info). This entry must be installed for terminal applications to resolve TERM=st-rs. make install compiles and installs it with tic; to install only the terminfo (e.g. into your home directory, no privileges required):

tic -x terminfo/st-rs.info        # installs to ~/.terminfo

The default system location is /usr/share/terminfo (override with make install TERMINFODIR=...). If tic is unavailable the terminfo step is skipped; 24-bit colour still works inside tmux regardless, because ST-RS also answers tmux's capability probes directly over the terminal (XTGETTCAP).

Usage

Run the terminal directly:

Optionally pass a command to run instead of the default shell:

st-rs -- <command> [args...]

Attribution

This project is based on foot, with some additional fixes & improvements. Full credit goes to foot for the design & implementation.

Fixes will be up streamed to FOOT on a case-by-case basis.