LinuxCommandLibrary

st

Simple Terminal emulator

TLDR

View documentation for the terminal emulator

$ tldr st.1
copy

View documentation for the statistics tool
$ tldr st.2
copy

SYNOPSIS

st [options] [-e command [arguments...]]

PARAMETERS

-f <font>
    Specifies the font to be used (e.g., "monospace:pixelsize=14").

-g <geometry>
    Sets the initial window geometry (e.g., "80x24+100+50").

-o <class>
    Sets the WM_CLASS property for window managers.

-t <title>
    Sets the initial window title.

-e <command> [args...]
    Executes the specified command with arguments instead of the default shell.

-l <lines>
    Sets the scrollback buffer size in lines.

-m
    Enables mouse reporting (e.g., for copy/paste with mouse).

-v
    Prints version information and exits.

-w <windowid>
    Embeds st into an existing window by ID.

DESCRIPTION

st, also known as the simple terminal, is a minimalist terminal emulator developed by the suckless.org community. It prioritizes simplicity, speed, and security through a small codebase and adherence to the Unix philosophy. Unlike many feature-rich terminals, st focuses on providing basic terminal functionality without unnecessary bloat. Its configuration is handled by editing a C header file (config.h) and recompiling the source code, which allows for deep customization but requires technical proficiency. st is designed to be highly efficient and integrates well with tiling window managers. It supports basic ANSI escape codes, Unicode, and true color. Users often pair st with multiplexers like tmux or screen for session management and advanced features.

CAVEATS

st requires compilation from source for installation and configuration, as its settings are defined in a C header file (config.h).
It lacks many features common in other terminal emulators (e.g., tabs, split panes, GUI configuration) unless specifically added via patches or external tools like tmux or screen.
The scrollback buffer is typically limited or non-existent by default, requiring specific patches or a scroll program like less.

CONFIGURATION PHILOSOPHY

st's unique configuration method involves modifying a C header file (config.h) and recompiling the application. This approach ensures that the executable contains only the features and settings explicitly desired by the user, leading to a smaller footprint and potentially better performance. It also makes st immutable during runtime, preventing accidental configuration changes.

PATCHING COMMUNITY

Due to its minimalist design, the st community heavily relies on "patches" to add desired functionalities. These patches are small code modifications that can be applied to the st source code before compilation, allowing users to tailor their terminal with features like true transparency, scrollback, image support, or custom keybindings without bloat in the core application.

HISTORY

st was created by the suckless.org community as part of their philosophy of minimalism and simplicity. It emerged from a desire for a fast, secure, and bloat-free terminal emulator, contrasting with larger, more feature-rich alternatives. Its development emphasizes a small, maintainable codebase and configuration through compile-time options rather than runtime configuration files, reflecting the suckless approach to software design. It has gained popularity among users who prefer a highly customized and resource-efficient computing environment.

SEE ALSO

xterm(1), urxvt(1), alacritty(1), kitty(1), gnome-terminal(1), tmux(1), screen(1)

Copied to clipboard