mirror of
https://github.com/socatlolmeow/softty.git
synced 2026-11-03 11:20:21 +00:00
A minimal, fast Wayland terminal emulator
- Rust 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
cursor: - add blink support (blink, blink_interval config options; defaults: enabled, 500ms) - reset blink phase on keypress so the cursor is always visible right after typing - integrate blink deadline into the poll timeout alongside repeat and sync keyboard: - add XKB compose (dead key) support using the system locale - wire up zwp_text_input_v3 for IME commit-string events mouse: - add copy_on_select option (default: true) — auto-copies selection to clipboard - add right_click_paste option (default: true) — paste on right click - Ctrl+click now also opens OSC 8 hyperlinks in addition to URL-regex matches rendering: - implement distinct underline styles: single (1), double (2), curly (3), dotted (4), dashed (5) - support underline color (SGR 58/59, colon sub-parameter on SGR 4) - auto-underline cells with an active hyperlink when no explicit underline is set term: - OSC 8 hyperlink parsing and per-cell link index tracking - desktop notifications via OSC 9 and OSC 777 (notify-send) - track SGR parameter separators (;/:) to correctly handle colon sub-parameters config: - derive Clone on all config structs - wrap global CONFIG in Mutex to allow live reload - expose config::path() publicly - live config reload on mtime change (cursor blink settings, font size) |
||
| src | ||
| Cargo.lock | ||
| Cargo.toml | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| README.md | ||
softty
A minimal, fast Wayland terminal emulator written in Rust.
Features
- Native Wayland client, no X11 or XWayland
- Fast startup (10-15ms) and low memory usage
- Software rendering with shared-memory buffers, no GPU or OpenGL required
- Unicode-aware, including correct width for wide characters
- Full keyboard layout support through xkbcommon
- Configurable through a TOML config file
Benchmark
Startup time and memory usage, compared against foot:
Benchmark 1: foot true (40 runs)
mean ± σ min … max
Wall Time [ms] 79.0 ± 7.0 74.3 … 108.6
Memory [MiB] 31.6 ± 0.1 31.4 … 31.8
Benchmark 2: softty -e true (183 runs)
mean ± σ min … max
Wall Time [ms] 13.1 ± 1.1 11.9 … 17.1 -83.4% (6.0x faster)
Memory [MiB] 9.3 ± 0.1 9.0 … 9.4 -70.7% (3.4x less)
Installation
Arch Linux
yay -S softty-git
Other
Softty is not available on other repositories yet, please build it from source.
Building
Requires Rust 1.70 or newer.
git clone https://github.com/socatlolmeow/softty
cd softty
cargo build --release
The binary ends up in target/release/softty.
Usage
softty
softty -e <command>
Contributing
See CONTRIBUTING.md.