{"id":13576778,"url":"https://github.com/NNBnh/superb-st","last_synced_at":"2025-04-05T08:33:14.304Z","repository":{"id":114416324,"uuid":"365679548","full_name":"NNBnh/superb-st","owner":"NNBnh","description":"📟 ST-base terminal with enough patches","archived":true,"fork":false,"pushed_at":"2022-07-02T04:24:48.000Z","size":129,"stargazers_count":9,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-08-02T15:31:19.828Z","etag":null,"topics":["c","flexipatch","ligatures","st","suckless","suckless-terminal","terminal","terminal-emulator"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NNBnh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-05-09T06:01:51.000Z","updated_at":"2024-03-18T08:53:41.000Z","dependencies_parsed_at":"2024-01-16T20:25:29.270Z","dependency_job_id":"d403b834-0db8-4cc3-b673-b45487ddfc6f","html_url":"https://github.com/NNBnh/superb-st","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NNBnh%2Fsuperb-st","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NNBnh%2Fsuperb-st/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NNBnh%2Fsuperb-st/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NNBnh%2Fsuperb-st/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NNBnh","download_url":"https://codeload.github.com/NNBnh/superb-st/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223176714,"owners_count":17100659,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","flexipatch","ligatures","st","suckless","suckless-terminal","terminal","terminal-emulator"],"created_at":"2024-08-01T15:01:13.968Z","updated_at":"2025-04-05T08:33:14.288Z","avatar_url":"https://github.com/NNBnh.png","language":"C","funding_links":["https://www.buymeacoffee.com/nnbnh"],"categories":["C"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\u003ci\u003eSuperB ST\u003c/i\u003e\u003c/h1\u003e\n\u003cp align=\"center\"\u003eST-base terminal with enough patches\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/43980777/121320376-4ef51180-c937-11eb-9cd8-f06dafab918e.png\"\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003ca href=\"https://github.com/NNBnh/superbst/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-mit--1.1-%233978A8.svg?labelColor=39314B\u0026style=for-the-badge\u0026logoColor=FFFFFF\" alt=\"License: MIT\"\u003e\u003c/a\u003e \u003ca href=\"https://st.suckless.org\"\u003e\u003cimg src=\"https://img.shields.io/badge/st_version-0.8.4-%233978A8.svg?labelColor=39314B\u0026style=for-the-badge\u0026logoColor=FFFFFF\" alt=\"ST version: 0.8.4\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n## 💡 About\n\n**SuperB ST** is a _SuperB_ [ST-base](https://st.suckless.org) terminal using [ST-flexipatch](https://github.com/bakkeby/st-flexipatch) to add enough patches so it can be compared with other modern terminal like [Alacritty](https://github.com/alacritty/alacritty) and [Kitty](https://sw.kovidgoyal.net/kitty):\n\n- **Goal**:\n  - Patch features that only the terminal can do\n- **Non goal**:\n  - Patch features that conflict with the terminal multiplexer or some windows manager's features\n  - Patch features that can be integrate using other tools/programs\n\n### ✨ Features\n\n- Resize to any pixel size and centers the content\n- Configurable background's opacity\n- Wide-character support\n- Fonts ligatures support\n- [True colors](https://gist.github.com/XVilka/8346728) support\n- [Color emoji](https://gitlab.freedesktop.org/xorg/lib/libxft/-/merge_requests/1) support\n- Graphics rendering support ([SIXEL](https://en.wikipedia.org/wiki/Sixel) and [W3M](http://w3m.sourceforge.net))\n- Even more escape sequences support\n- XIM support\n- Beginner friendly features:\n  - Scrollback support and clipboard handling:\n    \u003e Although these basic and important features can be achieved using other programs, there aren't many programs that just only these features.\u003cbr\u003e\n    \u003e Currently they are only be supported properly by some terminal multiplexer (like [Tmux](https://github.com/tmux/tmux/wiki) which come with many bloated features conflict with the windows manager).\u003cbr\u003e\n    \u003e Looking forward to [scroll](https://tools.suckless.org/scroll).\n  - [Xresources](https://wiki.archlinux.org/title/X_resources) support:\n    \u003e Although terminal configuration can be approached using escape sequences with tool like [`bui-terminal`](https://github.com/NNBnh/bui-terminal), some aspect of the terminal can't be change using escape sequences (e.g: font, background's opacity...).\u003cbr\u003e\n    \u003e Font and bg's opacity can be config with startup flags using [`bt`](https://github.com/NNBnh/bt), still it isn't cover every options.\n\n### 🩹 Patches\n\n- Window:\n  - [`anysize`](https://st.suckless.org/patches/anysize): allows the terminal to resize to any pixel size and centers the content of the terminal.\n  - [`relativeborder`](https://st.suckless.org/patches/relativeborder): allows users to specify a border that is relative in size to the width of a cell in the terminal.\n  - [`themed_cursor`](https://st.suckless.org/patches/themed_cursor): use the xterm cursor from your cursor theme.\n  - [`alpha`](https://st.suckless.org/patches/alpha): allows users to only change the opacity of the background (unlike using the composite manager to change the opacity of the whole windows).\n- Font:\n  - [`wide_glyphs`](https://www.reddit.com/r/suckless/comments/jt90ai/update_support_for_proper_glyph_rendering_in_st): support proper glyph rendering.\n  - [`ligatures`](https://st.suckless.org/patches/ligatures): support ligatures rendering.\n- Drawing:\n  - [`bold-is-not-bright`](https://st.suckless.org/patches/bold-is-not-bright): makes bold text rendered simply as bold, leaving the color unaffected.\n  - [`sync`](https://st.suckless.org/patches/sync): better draw timing to reduce flicker/tearing and improve animation smoothness.\n  - [`sixel`](https://gist.github.com/saitoha/70e0fdf22e3e8f63ce937c7f7da71809): support [SIXEL](https://en.wikipedia.org/wiki/Sixel) graphics.\n  - [`w3m`](https://st.suckless.org/patches/w3m): support [W3M](http://w3m.sourceforge.net) graphics.\n- Escape sequences:\n  - [`osc_10_11_12_2`](https://st.suckless.org/patches/osc_10_11_12_2): to modify the background, foreground and cursor colors.\n  - [`blinking_cursor`](https://st.suckless.org/patches/blinking_cursor): to modify cursor style.\n  - [`undercurl`](https://st.suckless.org/patches/undercurl): to render special underlines.\n  - [`csi_22_23`](https://st.suckless.org/patches/csi_22_23): to save and restore window title.\n- Beginner friendly:\n  - [`scrollback`](https://st.suckless.org/patches/scrollback): scroll back through terminal output using mouse wheel.\n  - [`clipboard`](https://st.suckless.org/patches/clipboard): support clipboard copy and paste.\n  - [`xresources`](https://st.suckless.org/patches/xresources): adds the ability to configure ST via [Xresources](https://wiki.archlinux.org/title/X_resources)\n\n\u003e **Note** The Xresources config will reload when a `SIGUSR1` signal is received: `killall -USR1 st`\n\n## 🚀 Setup\n\n### 🧾 Dependencies\n\n- [`fontconfig`](https://archlinux.org/packages/extra/x86_64/fontconfig) and [`libx11`](https://archlinux.org/packages/extra/x86_64/libx11) are make dependencies\n- [`libxft-bgra`](https://aur.archlinux.org/packages/libxft-bgra) is make dependencies for color emoji support\n\n\u003e _Make dependencies only needed when compile._\n\n### 📥 Installation\n\n#### 🔧 Manually\n\nOption 1: download\n\n\u003cp align=\"center\"\u003e\u003ca href=\"https://github.com/NNBnh/superb-st/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/downloads/NNBnh/superb-st/total?color=3978A8\u0026labelColor=39314B\u0026style=for-the-badge\" alt=\"Downloads\"\u003e\u003c/a\u003e\u003c/p\u003e\n\nand move it to `~/.local/bin/`. Or using `curl`:\n\n```sh\ncurl -L https://github.com/NNBnh/superb-st/releases/download/1.0.0/st \u003e ~/.local/bin/st\n```\n\nmake sure to make the file executable:\n\n```sh\nchmod +x ~/.local/bin/st\n```\n\nOption 2: compile\n\n```sh\ngit clone https://github.com/NNBnh/superb-st\ngit clone https://github.com/bakkeby/st-flexipatch\n\ncd superb-st\ncp -f patches.h config.h config.mk ../st-flexipatch/\n\ncd ../st-flexipatch/\nsudo make install\n```\n\n#### 📦 Package manager\n\nFor [`nix`](https://nixos.org) user:\n\n```sh\n#TODO\n```\n\nFor [`arch`](https://archlinux.org) user:\n\n```sh\n#TODO\n```\n\n\u003e _If you can and want to port SuperB ST to other package managers, feel free to do so._\n\n## ⌨️ Keybinds\n\n- Font size:\n  - \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003eMouseWheel up\u003c/kbd\u003e : increase font size\n  - \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003eMouseWheel down\u003c/kbd\u003e : decrease font size\n  - \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003eMouseWheel button\u003c/kbd\u003e : reset font size\n  - \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003e=\u003c/kbd\u003e : increase font size\n  - \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003e-\u003c/kbd\u003e : decrease font size\n  - \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003e'\u003c/kbd\u003e : reset font size\n- Scrollback:\n  - \u003ckbd\u003eMouseWheel up\u003c/kbd\u003e : scroll up\n  - \u003ckbd\u003eMouseWheel down\u003c/kbd\u003e : scroll down\n- Clipboard handling:\n  - \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003eShift\u003c/kbd\u003e + \u003ckbd\u003ec\u003c/kbd\u003e : copy selected texts to clipboard\n  - \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003eShift\u003c/kbd\u003e + \u003ckbd\u003ev\u003c/kbd\u003e : paste texts from clipboard to ther terminal\n\n## ⚙️ Configuration\n\nYou can config SuperB ST with outside tools like [`bui-terminal`](https://github.com/NNBnh/bui-terminal) or with [Xresources](https://wiki.archlinux.org/title/X_resources):\n\n```Xresources\n! ~/.config/X11/xresources\n\n*.font:         \u003cSTRING\u003e:pixelsize=\u003cFLOAT\u003e:antialias=\u003cBOOLEAN\u003e:autohint=\u003cBOOLEAN\u003e\n*.color0:       #\u003cHEX\u003e\n*.color1:       #\u003cHEX\u003e\n*.color2:       #\u003cHEX\u003e\n*.color3:       #\u003cHEX\u003e\n*.color4:       #\u003cHEX\u003e\n*.color5:       #\u003cHEX\u003e\n*.color6:       #\u003cHEX\u003e\n*.color7:       #\u003cHEX\u003e\n*.color8:       #\u003cHEX\u003e\n*.color9:       #\u003cHEX\u003e\n*.color10:      #\u003cHEX\u003e\n*.color11:      #\u003cHEX\u003e\n*.color12:      #\u003cHEX\u003e\n*.color13:      #\u003cHEX\u003e\n*.color14:      #\u003cHEX\u003e\n*.color15:      #\u003cHEX\u003e\n*.background:   #\u003cHEX\u003e\n*.foreground:   #\u003cHEX\u003e\n*.cursorColor:  #\u003cHEX\u003e\n*.alpha:        \u003cFLOAT\u003e\n*.borderperc:   \u003cINTEGER\u003e\n*.termname:     \u003cSTRING\u003e\n*.shell:        \u003cSTRING\u003e\n*.minlatency:   \u003cINTEGER\u003e\n*.maxlatency:   \u003cINTEGER\u003e\n*.blinktimeout: \u003cINTEGER\u003e\n*.bellvolume:   \u003cINTEGER\u003e\n*.tabspaces:    \u003cINTEGER\u003e\n```\n\n```sh\nxrdb -load ~/.config/X11/xresources\nkillall -USR1 'st'\n```\n\n## 💌 Credits\n\nSpecial thanks to:\n\n- [**ST**](https://st.suckless.org) by [`suckless.org`](https://suckless.org)\n- [**ST-flexipatch**](https://github.com/bakkeby/st-flexipatch) by [Stein Gunnar Bakkeby](https://github.com/bakkeby)\n\n\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\u003cbr\u003e\n\n---\n\n\u003e \u003ch1 align=\"center\"\u003eMade with ❤️ by \u003ca href=\"https://github.com/NNBnh\"\u003e\u003ci\u003eNNB\u003c/i\u003e\u003c/a\u003e\u003c/h1\u003e\n\u003e\n\u003e \u003cp align=\"center\"\u003e\u003ca href=\"https://www.buymeacoffee.com/nnbnh\"\u003e\u003cimg src=\"https://img.shields.io/badge/buy_me_a_coffee%20-%23FFC387.svg?logo=buy-me-a-coffee\u0026logoColor=333333\u0026style=for-the-badge\" alt=\"Buy Me a Coffee\"\u003e\u003c/a\u003e\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNNBnh%2Fsuperb-st","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNNBnh%2Fsuperb-st","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNNBnh%2Fsuperb-st/lists"}