Skip to content
This repository has been archived by the owner on Sep 10, 2022. It is now read-only.

NNBnh/superb-st

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

47 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SuperB ST

ST-base terminal with enough patches

License: MIT ST version: 0.8.4

πŸ’‘ About

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

✨ Features

  • 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 using bt, still it isn't cover every options.

🩹 Patches

  • 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:
  • Drawing:
    • bold-is-not-bright: makes bold text rendered simply as bold, leaving the color unaffected.
    • sync: better draw timing to reduce flicker/tearing and improve animation smoothness.
    • sixel: support SIXEL graphics.
    • w3m: support W3M graphics.
  • Escape sequences:
  • Beginner friendly:

Note The Xresources config will reload when a SIGUSR1 signal is received: killall -USR1 st

πŸš€ Setup

🧾 Dependencies

Make dependencies only needed when compile.

πŸ“₯ Installation

πŸ”§ Manually

Option 1: download

Downloads

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

πŸ“¦ Package manager

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.

⌨️ Keybinds

  • 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

βš™οΈ Configuration

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'

πŸ’Œ Credits

Special thanks to:






Made with ❀️ by NNB

Buy Me a Coffee