Skip to content

en Terminal

mizorewww edited this page Sep 23, 2026 · 10 revisions

Terminal integration

简体中文 · Guide

Yazi's pinned terminal crates own input parsing, terminal capabilities, the TTY writer, and restoration. Ratatui draws using that writer; Crossterm supplies its output backend, not a second input reader. Paste, focus, mouse, resize, enhanced key reports, and associated Unicode text enter one application event stream.

Shift-Enter requires a terminal that reports it separately. Ctrl-J is the newline fallback. Function keys or Alt combinations can also be intercepted by your terminal or desktop; choose another binding in Lua. Ctrl-L redraws the screen after graphical corruption.

Images

Yazi chooses the graphics protocol. ratatui-image renders multiple inline images and clips them while scrolling. Ghostty/Kitty can use Kitty graphics; iTerm2/WezTerm can use inline images; Sixel is used where detected. Other terminals fall back to Unicode half-blocks without an external image-overlay process. Actual selection depends on reported capabilities and any multiplexer in between.

Decoding applies EXIF orientation and retains upstream ICC-to-sRGB conversion. Image decoding/encoding runs away from the UI thread. Only visible encoded images are retained, and resizing or overlays clear affected image areas. Animated stickers use a static thumbnail. For downloads and retry behavior, see Attachments.

tmux

By default Termgram uses tmux's reported capabilities. To opt into Yazi's second-stage terminal probe, set this in the shell environment before launch:

TERMGRAM_TMUX_PASSTHROUGH=1 tg

This calls upstream tmux setup, setting the pane's allow-passthrough=all and the server's input-buffer-size=104857600. Those settings remain after Termgram exits. This option is read before the Telegram credentials .env is loaded.

The app restores terminal modes on normal exit, initialization failure and the panic hook. One owner coordinates text and graphics cleanup. Upstream revisions, licenses, and small adaptations are recorded in vendor provenance.

Clipboard

Cmd-V (when forwarded), Ctrl-V, Alt-V, Ctrl-Alt-V and :paste use arboard on a background thread locally. Over SSH they request the terminal clipboard when OSC 5522 is supported. Terminal MIME paste reuses Yazi’s parser and formatter, with request IDs and bounded transfers. The terminal owner enables and restores the negotiated mode. Disable it with attachments.terminal_clipboard = false. Ordinary text paste remains supported. Backend details, limits and WSL/SSH behavior: Attachments.


Documentation source / 文档来源

Clone this wiki locally