#Overview
Zutty is a fast, lightweight terminal emulator for X Window System, optimized for low-end systems. It uses OpenGL ES 3.1 for rendering, offering high throughput and low latency.
Key Features:
- GPU-accelerated rendering using Compute Shaders
- Accurate VT emulation (VT52, VT100, VT102, VT220, VT320, VT420, VT520, xterm)
- Supports bitmap and TrueType fonts, including CJK characters
- True color support (24-bit)
- X clipboard/primary selection/copy-paste, including rectangular selection
#Installation (Debian/Ubuntu)
- Dependencies:
sudo apt-get install build-essential pkg-config python3 libegl-dev libfreetype-dev libgles-dev libxmu-dev
- Source:
git clone https://git.hq.sig7.se/zutty.git cd zutty
- Configure:
./waf configure
- Compile:
./waf
- Install:
sudo ./waf install
#Usage
#Launching
zutty [options] [shell]
zutty -e [command]
#Options
Option | Description | Default |
---|---|---|
-altScroll |
Alternate scroll mode (arrow keys on alt screen) | false |
-autoCopy |
Sync primary selection to clipboard | false |
-bg <color> |
Background color | #000 |
-boldColors |
Use bright colors for bold text | true |
-border <n> |
Border width (pixels) | 2 |
-cr <color> |
Cursor color | foreground color |
-display |
X display | $DISPLAY |
-dwfont |
Double-width font | 18x18ja |
-fg <color> |
Foreground color | #fff |
-font |
Font name | 9x18 |
-fontsize |
Font size (scaled fonts) | 16 |
-fontpath |
Font search path | /usr/share/fonts |
-geometry |
Terminal size (chars) | 80x24 |
-glinfo |
Print OpenGL info | false |
-help |
Print usage | |
-listres |
Print resource listing | |
-login |
Start shell as login shell | false |
-name |
Instance name for Xrdb and WM_CLASS | Zutty |
-rv |
Reverse video | false |
-saveLines |
Scrollback history (lines) | 500 |
-shell |
Shell to run | bash |
-showWraps |
Show wrap marks | false |
-title /-T |
Window title | Zutty |
-quiet |
Silence logging | false |
-verbose |
Verbose logging | false |
-e |
Command to execute |
#User Actions
Action | Trigger |
---|---|
Scroll half page | Shift+PageUp/Down |
Scroll 5 lines / 1 line | Scroll wheel / (alt screen with -altScroll ) |
Start/Adjust selection | Left/Right mouse button press & hold |
Cycle selection snapping | Double-click left/right mouse button |
Toggle rectangular select | Space (while selecting) |
Paste primary selection | Middle mouse button, Shift+Insert |
Copy selection to clipboard | Ctrl+Shift+C |
Paste clipboard | Ctrl+Shift+V |
#Configuration
Zutty can be configured via command-line options, X resources, and environment variables. Command-line options override X resources, which override defaults.
#X Resources
Edit ~/.Xresources
and add entries like:
Zutty.title: My Terminal
Zutty.geometry: 100x30
Zutty.font: LiberationMono
Zutty.fontsize: 14
Zutty.fg: #eee
Zutty.bg: #222
Merge changes: xrdb -merge ~/.Xresources
#Environment Variables
Zutty sets/uses:
DISPLAY
: X displaySHELL
: Shell pathTERM
: xterm-256colorCOLORTERM
: truecolorWINDOWID
: X window IDZUTTY_VERSION
: Zutty versionRESOURCE_NAME
: Instance name for Xrdb (if-name
option not used)
#Development
#Debug Build
./waf configure --debug
./waf
Run: build/src/zutty.dbg -v
#Step Debugger
Activate with PrintScreen key (in debug build). Cycles through step counts (1, 10, 100, off). Resume with kill -CONT <pid>
or fg
.
#Testing
See the test/
directory for automated tests. Run individual tests (e.g., test/vttest.sh
) or all tests with test/run_ci.sh
.
#Resources
- Homepage: https://tomscii.sig7.se/zutty
- Source: https://git.hq.sig7.se/zutty.git
- User Guide: https://tomscii.sig7.se/zutty/doc/USAGE.html
- Developer Guide: https://tomscii.sig7.se/zutty/doc/HACKING.html
- Key Mapping Sequences: https://tomscii.sig7.se/zutty/doc/KEYS.html
- Vttest Results: https://tomscii.sig7.se/zutty/doc/VTTEST.html
- FAQ: https://tomscii.sig7.se/zutty/wiki/FAQ.html