Beautiful, elegant, super fast and functional terminal emulator
My build is based entirely on St-Graphics. Specifically, on the graphics-with-patches branch.
Patches removed: Alpha, External pipe.
- Kitty graphics protocol - Images in your terminal, just like kitty, just like a modern terminal emulator.
- Boxdraw
- xresources with signal reloading - Configure st via Xresources and signal reloading.
- Scrollback
- Wide glyph support - Fixes wide glyphs truncation
- Ligatures - Proper drawing of ligatures.
- Appsync - Better draw timing to reduce flicker/tearing and improve animation smoothness.
- Blinking cursor - Allows the use of a blinking cursor.
- Desktop entry - This enables to find st in a graphical menu and to display it with a nice icon.
- Drag n drop - This patch adds XDND Drag-and-Drop support for st.
- Dynamic cursor color - Swaps the colors of your cursor and the character you're currently on (much like alacritty).
- Bold is not bright - This patch makes bold text rendered simply as bold, leaving the color unaffected.
- swap mouse - This patch changes the mouse shape to the global default when the running program subscribes for mouse events, for instance, in programs like ranger, yazi and fzf.
- Unfocused-cursor - Removes the outlined rectangle, making the cursor invisible when the window is unfocused.
This fork includes some patches and features that are not graphics-related per se, but are hard to disentangle from the graphics implementation:
- Anysize - this patch is applied
and on by default. If you want the "expected" anysize behavior (no centering),
set
anysize_halignandanysize_valignto zero inconfig.h. - Support for several XTWINOPS control sequences to query information that is sometimes required for image display (like cell size in pixels).
- Support for decoration (underline) color and style. The decoration color is
used to specify the placement id in Unicode placeholders, so it's hard to make
them separate. The behavior of the underline is different from the upstream
st: it's drawn behind the text and the thickness depends on the font size. You
may need to tweak the code in
xdrawglyphfontspecsinx.cif you don't like it.
(Zoom) alt + comma Zoom in
alt + . Zoom out
alt + g Reset Zoom
You may need these dependencies first.
# Void
xbps-install libXft-devel libX11-devel harfbuzz-devel libXext-devel libXrender-devel libXinerama-devel gd-devel
# Debian (and ubuntu probably)
apt install build-essential libxft-dev libharfbuzz-dev libgd-dev
# Nix
nix develop github:siduck/st
# Arch
pacman -S gd
# Fedora (or Red-Hat based)
dnf install gd-devel libXft-devel
# SUSE (or openSUSE)
zypper in -t pattern devel_basis
zypper in gd-devel libXft-devel harfbuzz-devel
# Install font-symbola and libXft-bgraThere are two ways to do this.
- Via Pacman, adding my repository. (Arch Linux)
Open /etc/pacman.conf and add my repo at the end:
[gh0stzk-dotfiles]
SigLevel = Optional TrustAll
Server = http://gh0stzk.github.io/pkgs/x86_64Update the repositories, sudo pacman -Syy and now you can install it with sudo pacman -S st-gh0stzk
- Compiling yourself (all distros)
git clone https://github.com/gh0stzk/st-terminal.git
cd st-terminal
make
# or Install on your system directly
sudo make installBy default, the terminal comes with the Catppuccin Mocha colorscheme and the JetBrainsMono Nerd Font font, but you can change it to your preferences:
# Copy the Xresources file from this repository, and paste it into your HOME or wherever you want
# Edit it to your liking
# Now reload the config.
xrdb -merge pathToXresourcesFile && killall -USR1 stFrom siduck repo:
( note : This benchmark was done on my low-end machine which has a pentium cpu so the speed results might vary )