gitmyhub

shitty

Python ★ 36 updated 7h ago

new terminal emulator

Shitty is a lightweight terminal emulator that renders text using Vulkan graphics. It is a fast, small rewrite of Zutty with features like colors, mouse support, hyperlinks, and emoji.

C++23PythonVulkanPerlncursessetup: hardcomplexity 4/5

Shitty is a terminal emulator, which means it is the program that draws the text window where you type commands on a computer. It is a rewrite of an earlier project called Zutty, created by Tom Szilagyi. Despite the name, the project aims to be small, quick to start, and predictable in how it uses computer resources.

The program keeps track of what should appear on screen in the processor, then draws only the parts that changed using a graphics technology called Vulkan. It supports a wide range of terminal features, including color options, mouse protocols, clickable hyperlinks, scrollback history, and text reflow when you resize the window. It also handles complex text like emoji and combined characters.

To build it, you need a C++23 compiler and several supporting tools. The build process relies on a Python script, a graphics shader tool, and various libraries for fonts, compression, and window display. At runtime, you need a working graphics driver and a window system. The repository notes that building the full test suite also requires Perl and ncurses.

Running the terminal is straightforward. You start it with a simple command, and it opens your default shell. You can pass options to change the starting window size, pick a different font, set the scrollback length, or run a specific program inside it. By default, it restricts certain abilities like reading your clipboard, but you can enable those for applications you trust.

The project is currently changing its license. It started under a GPLv3 license inherited from Zutty, but the goal is to eventually become an MIT-only project. New contributions are accepted under both licenses during this transition. The project notes some features are missing, such as right-to-left text layout and inline graphics.

Where it fits