Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

vishnu350/st

Open more actions menu

Repository files navigation

Simple Terminal+ (st+)

drawing

Modern terminal emulators have grown bloated, packing in features you'll never use, emulating obscure terminals you'll never need, and offloads to GPUs you'll never afford.

Simple Terminal+ is a beautiful, SIXEL-capable, lightweight terminal (~100KB) with just-enough essential features for rock-solid stability in daily usage. It is best used with tmux combined with a nerd-fonts of your choice.

This is a fork of st that bundles a curated set of patches and quality-of-life features:

  • Features SIXEL support! Allows editors such as Neovim to display images via plugins.
  • Automatically install a nerd-font or download a beautiful Gogh color scheme via the st-config command.
  • Customizable color scheme with built-in support for over 300+ Gogh color schemes.
  • Proper "Open Terminal Here" integration for Nautilus, including "Open in Remote/Local Terminal" for remote connections.
  • Minimal configuration file in ~/.st.conf to store all settings.
  • Auto-calculate default font size (Shift+Ctrl+PgUp/PgDn to change).
  • Scrollback (Shift+Mouse Scroll or Shift+PgUp/PgDn).
  • Working directory (needed for "Open Terminal Here" integration).
  • Desktop entry (for menu shortcuts).
  • Transparent backgrounds (alpha value).
  • Blinking cursor (square box).
  • One clipboard (better cut/paste).
  • Fullscreen support (F11/Alt-Enter).
  • Bold-is-not-bright patch (accurate bold colors)
  • AppImage version will work even on 10 year old distros.
  • Easy AppImage install flow via AM: am i st+

If you are a heavy tmux user and just want an AppImage of a fast, minimal, lightweight, rock-solid terminal that supports SIXEL and other essential features, then st+ is for you.

Benchmarking

Performance benchmarking on a decent machine:

Terminal Avg Time Speed Benchmark Command
ST+ 0.022s 8.3× time st+ -e bash printf 'ABCDEFGHIJ0123456789%.0s\n' {1..5}
GNOME Terminal 0.182s 1.0× time gnome-terminal -- bash printf 'ABCDEFGHIJ0123456789%.0s\n' {1..5}
XTERM 0.033s 5.5× time xterm -e bash printf 'ABCDEFGHIJ0123456789%.0s\n' {1..5}

Installation (AppImage)

The recommended AppImage installation method is through Ivan's AM/Appman:

am -i st+

Or just download it from the release section, rename it to st+ and place it in your system $PATH.

To set color schemes or download more fonts, run the st-config tool from within the st+ terminal:

$APPDIR/st-config

This utility will allow you to change the color scheme, download/configure a nerd-font of your choice, or install the terminfo/manpage/nautilus extension if needed.

Notes on AppImage install flow:

  • AM/Appman supports auto-updates with checksum integrity verification.
  • AppImages will be larger in size, but there will be virtually zero difference in performance.
  • To remove st+ from your system: $APPDIR/st-config uninstall

Installation (Manual Build)

You will need the following packages (Debian example below):

sudo apt install build-essential libxft-dev libimlib2-dev pkg-config wget python3-nautilus

To avoid conflicts, the default nautilus open terminal extension should be removed if installed:

sudo apt remove nautilus-extension-gnome-terminal

To compile and install st+ (needs root):

git clone https://github.com/vishnu350/st && cd st
make patch                                       ## Apply ST+ patches first
make install CFLAGS="-O3 -march=native -flto"    ## Optimize for highest performance

Other build options:

make patch SYSICON=1                             ## Desktop shortcut uses system icon
make install                                     ## Standard install (no optimizations)
make install CFLAGS="-Os -march=native -flto"    ## Optimize for size (~90KB)
make libim2 CFLAGS="-O3 -march=native -flto"     ## Build imlib2 submodule

To set color schemes or download more fonts, run the st-config tool:

st-config

Only for release: To build AppImage and static binaries for distribution/release, run the following command from within an old container (st-build.dockerfile):

make patch STATIC=1
make dist STATIC=1 CFLAGS="-O3 -flto"

Notes on manual install flow:

  • No auto-updates.
  • Compiled binary size will be tiny (~100KB) in size.
  • To remove st+ from your system: st-config uninstall or make uninstall

Configuration

Configuration values such as font settings and alpha values will be stored in ~/.st.conf for persistence, change this file if needed.

If this file does not exist or was deleted, it will be regenerated with safe defaults.

Supported configuration values: font rows cols alpha colorname

For the nautilus extension to work make sure to install python3-nautilus, but remove nautilus-extension-gnome-terminal to avoid conflict.

Contribute

Like this project?

  • Please ⭐️ this repository and follow the devs if this project helped you.
  • Buy the suckless.org team a cup of coffee.

Credits to the following folk:

About

A beautiful, SIXEL-capable, lightweight terminal (~100KB) with just-enough essential features for rock-solid stability in daily usage.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.