ST-base terminal with enough patches
SuperB ST is a SuperB ST-base terminal using ST-flexipatch to add enough patches so it can be compared with other modern terminal like Alacritty and Kitty:
- Goal:
- Patch features that only the terminal can do
- Non goal:
- Patch features that conflict with the terminal multiplexer or some windows manager's features
- Patch features that can be integrate using other tools/programs
- Resize to any pixel size and centers the content
- Configurable background's opacity
- Wide-character support
- Fonts ligatures support
- True colors support
- Color emoji support
- Graphics rendering support (SIXEL and W3M)
- Even more escape sequences support
- XIM support
- Beginner friendly features:
- Scrollback support and clipboard handling:
Although these basic and important features can be achieved using other programs, there aren't many programs that just only these features.
Currently they are only be supported properly by some terminal multiplexer (like Tmux which come with many bloated features conflict with the windows manager).
Looking forward to scroll. - Xresources support:
Although terminal configuration can be approached using escape sequences with tool like
bui-terminal
, some aspect of the terminal can't be change using escape sequences (e.g: font, background's opacity...).
Font and bg's opacity can be config with startup flags usingbt
, still it isn't cover every options.
- Scrollback support and clipboard handling:
- Window:
anysize
: allows the terminal to resize to any pixel size and centers the content of the terminal.relativeborder
: allows users to specify a border that is relative in size to the width of a cell in the terminal.themed_cursor
: use the xterm cursor from your cursor theme.alpha
: allows users to only change the opacity of the background (unlike using the composite manager to change the opacity of the whole windows).
- Font:
wide_glyphs
: support proper glyph rendering.ligatures
: support ligatures rendering.
- Drawing:
- Escape sequences:
osc_10_11_12_2
: to modify the background, foreground and cursor colors.blinking_cursor
: to modify cursor style.undercurl
: to render special underlines.csi_22_23
: to save and restore window title.
- Beginner friendly:
scrollback
: scroll back through terminal output using mouse wheel.clipboard
: support clipboard copy and paste.xresources
: adds the ability to configure ST via Xresources
Note The Xresources config will reload when a
SIGUSR1
signal is received:killall -USR1 st
fontconfig
andlibx11
are make dependencieslibxft-bgra
is make dependencies for color emoji support
Make dependencies only needed when compile.
Option 1: download
and move it to ~/.local/bin/
. Or using curl
:
curl -L https://github.com/NNBnh/superb-st/releases/download/1.0.0/st > ~/.local/bin/st
make sure to make the file executable:
chmod +x ~/.local/bin/st
Option 2: compile
git clone https://github.com/NNBnh/superb-st
git clone https://github.com/bakkeby/st-flexipatch
cd superb-st
cp -f patches.h config.h config.mk ../st-flexipatch/
cd ../st-flexipatch/
sudo make install
For nix
user:
#TODO
For arch
user:
#TODO
If you can and want to port SuperB ST to other package managers, feel free to do so.
- Font size:
- Ctrl + MouseWheel up : increase font size
- Ctrl + MouseWheel down : decrease font size
- Ctrl + MouseWheel button : reset font size
- Ctrl + = : increase font size
- Ctrl + - : decrease font size
- Ctrl + ' : reset font size
- Scrollback:
- MouseWheel up : scroll up
- MouseWheel down : scroll down
- Clipboard handling:
- Ctrl + Shift + c : copy selected texts to clipboard
- Ctrl + Shift + v : paste texts from clipboard to ther terminal
You can config SuperB ST with outside tools like bui-terminal
or with Xresources:
! ~/.config/X11/xresources
*.font: <STRING>:pixelsize=<FLOAT>:antialias=<BOOLEAN>:autohint=<BOOLEAN>
*.color0: #<HEX>
*.color1: #<HEX>
*.color2: #<HEX>
*.color3: #<HEX>
*.color4: #<HEX>
*.color5: #<HEX>
*.color6: #<HEX>
*.color7: #<HEX>
*.color8: #<HEX>
*.color9: #<HEX>
*.color10: #<HEX>
*.color11: #<HEX>
*.color12: #<HEX>
*.color13: #<HEX>
*.color14: #<HEX>
*.color15: #<HEX>
*.background: #<HEX>
*.foreground: #<HEX>
*.cursorColor: #<HEX>
*.alpha: <FLOAT>
*.borderperc: <INTEGER>
*.termname: <STRING>
*.shell: <STRING>
*.minlatency: <INTEGER>
*.maxlatency: <INTEGER>
*.blinktimeout: <INTEGER>
*.bellvolume: <INTEGER>
*.tabspaces: <INTEGER>
xrdb -load ~/.config/X11/xresources
killall -USR1 'st'
Special thanks to:
Made with β€οΈ by NNB