Docs / Rendering
Pure Rust, one GPU pipeline.
The whole stack is Rust: winit for the window, wgpu for the GPU, cosmic-text for shaping and rasterization, and the battle-tested wezterm-term model underneath. No FreeType, no HarfBuzz, no Electron, no C build steps — verified by CI on the dependency graph.
The pipeline
One textured-quad wgpu pipeline draws everything: background cells, glyphs from a shelf-packed atlas, cursor, dividers, sidebar, and overlays. Text is shaped by rustybuzz and rasterized by swash (both via cosmic-text), with per-row shaping caches so cross-cell ligatures work without re-shaping every frame. JetBrains Mono Nerd Font ships in the binary; system fonts resolve through pure-Rust fontdb.
Text fidelity
- Truecolor foreground/background, reverse video, bold, italic, and dim/half-intensity
- Underline styles: single, double, curly, dotted, dashed — plus strikethrough
- Cursor shapes (block / bar / underline) with blink and a hollow cursor on unfocused panes
- Procedural box-drawing, block, shade, and Powerline glyphs (U+2500–2593, U+E0B0–E0B3) rasterized for seamless tiling, bypassing the font
- IME composition, and live DPI changes rebuild metrics on the fly
Graphics & links
Inline terminal graphics work across all three protocols — sixel, iTerm, and kitty. The model decodes to RGBA and the renderer uploads each image (cached by content hash) to its own texture, drawn as per-cell scissored quads. OSC 8 hyperlinks are live: ⌘-click opens the URI.
Scrollback & input
- 10,000-line scrollback (configurable) with wheel scrolling
- Mouse selection with copy-on-select, ⌘C/⌘V with bracketed paste; selection defers when the app grabs the mouse
- Full keyboard encoding: printables, Ctrl/Alt chords, arrows, Home/End/PgUp/PgDn, function keys