/st

Build of st (suckless)

Primary LanguageCMIT LicenseMIT

st - simple terminal st

st is a simple terminal emulator for X which sucks-less. The following patches have been incorporated in this build.

Click to view
  • st-alpha - Allow st to have transparency while keeping text opaque.
  • st-anysize - Allows st to resize to any pixel size.
  • st-bold-is-not-bright - This patch makes bold text rendered simply as bold, leaving the color unaffected.
  • st-boxdraw - This patch adds options to render most of the lines/blocks characters without using the font so that they align perfectly regardless of font, size.
  • st-charoffsets - This patch allow you to adjust the glyph position, so it doesn't get clipped short.
  • dont-cut-text - Allow us to resize terminal window without cutting text.
  • st-dynamic-cursor-color - Swaps the colors of your cursor and the character you're currently on.
  • st-externalpipe - Reading and writing st's screen through a pipe.
  • st-glyph-wide-support-boxdraw - This patch fixes wide glyphs truncation.
  • st-ligatures-boxdraw - Add support for ligatures.
  • st-scrollback - Add scrollback support to terminal.
  • st-xresources-with-reload-signal - Allow changing terminal colors,fonts etc. without recompiling or restarting st from .xresource file.
  • st-blinking_cursor - This patch allows the use of a blinking cursor.
  • st-xresources - This patch adds the ability to configure st via Xresources. At startup, st will read and apply the resources named in the resources[] array in config.h.
  • st-font2 - This patch allows to add spare font besides default. Some glyphs can be not present in default font. For this glyphs st uses font-config and try to find them in font cache first.
  • st-desktopentry - Creates a desktop-entry for st. This enables to find st in a graphical menu and to display it with a nice icon.
  • st-netwmicon - Enables to set _NET_WM_ICON with a png-image.

Features

  • Fonts, colors etc. can be configured from .Xresource file. No need to restart or recompile st.
  • Texts don't cut while resizing terminal.
  • Support transparency while keeping text opaque. This is controlled by alpha variable in config.def.h or .Xresources.
  • Support font ligatures.
  • Select url from terminal window. Put st-urlhandler in your path variable. Use alt+u to open url and use alt+y to copy url.
  • Dynamic-color cursor support make terminal appealing and easy to follow cursor.
  • Support blinking cursor. Blink-rate is managed by blinktimeout variable in config.def.h or .Xresource.
  • St opacity can be changed without restarting or recompiling.
  • Support for spare font besides default. If some glyph is not present in default then this spare font will be used.
  • Create a desktop entry. This enables st in a graphical menu like rofi.

Requirements

In order to build st you need the Xlib header files. dmenu and linkhandler scripts.

Installation

git clone https://github.com/zootedb0t/st.git
cd st
sudo make install

Configuration is done through editing config.def.h. Run make clean and sudo make install to recompile.

Edit config.mk to match your local setup (st is installed into the /usr/local namespace by default).

Afterwards enter the following command to build and install st (if necessary as root):

sudo make clean install

Keybindings

Default Keybindings:

Action Keys
Copy ctrl+shift+c
Paste ctrl+shift+v
Increase transparency alt+s
Decrease transparency alt+a
Disable transparency alt+m
Open Url alt+u
Copy Url alt+y
Zoom in alt+.
Zoom out alt+,

Keybindings are modified by editing shortcuts array in config.def.h.

make clean
sudo make install

Screenshot

Screenshot_2023-05-01-06-31-42_

Credits

Based on Aurélien APTEL bt source code.