Skip to content

Docs / Rendering

Terminal rendering

Raven uses Makepad for its native window and GPU rendering, with the wezterm terminal model underneath. This guide covers text, graphics, scrollback, and input in the terminal.

The pipeline

One pipeline draws everything: background cells, glyphs from a shelf-packed atlas, cursor, dividers, sidebar, and overlays — through Makepad, which targets Metal on macOS. Text is shaped by Makepad’s rustybuzz, with per-row shaping caches so cross-cell ligatures work without re-shaping every frame. JetBrains Mono Nerd Font, Fira Code, IBM Plex Mono, Inter and Noto Sans Symbols 2 ship with the app.

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

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
Something missing? Help improve these docs