TUI Mode
TUI mode turns ros2 launch into a full-screen log viewer. The output is the same as in classic mode, with the same colors, badges, crash alerts and highlights, but you can scroll back through it, search it, filter it and copy from it while the launch keeps running.
It is the default since DendROS 1.1. To go back to plain scrolling output, set the launch mode to classic:
# ~/.config/dendROS/defaults.yaml
launch_mode: tui # tui (default) | classic
tui_scrollback_lines: 5000 # how many lines the TUI keeps
Or change Launch mode in the Output tab of dendros config.
What it looks like
The screen has three parts:
- Header (top row): the DendROS title and version, the crash and parameter-change banners (pinned, so they can't scroll away), any active filters and searches, and a hint for the keys that are useful right now.
- Log body: the launch output, wrapped to the terminal width, with a scrollbar on the right.
- Console bar (bottom row, only while open): where you type console commands.
When a node dies, the crash banner stays pinned in the header, however far the log scrolls:
When TUI mode is used
TUI mode applies to ros2 launch only. ros2 run and every other subcommand always use classic output.
DendROS falls back to classic output automatically, before printing anything, when:
- stdout is not a terminal (for example
ros2 launch … | tee log.txtor> file) - curses can't start in the current terminal
So scripts, CI jobs and redirected output keep working exactly as before.
Scrolling
| Key / action | Effect |
|---|---|
| Mouse wheel, Up / Down | Scroll a few lines |
| Page Up / Page Down | Scroll one page |
| Home | Jump to the oldest line |
| End | Jump back to the live tail and follow new output |
While you're scrolled up, new output keeps arriving below without moving your view. Scrolling back to the bottom (or pressing End) resumes following the tail.
Long lines are wrapped at the terminal width. Resizing the terminal re-wraps everything, including the scrollback.
The TUI keeps the last tui_scrollback_lines lines (default 5000). Older lines are dropped.
Selecting and copying
Click and drag with the mouse to select text. Releasing the button copies the selection to the clipboard, and a Copied toast flashes in the header. The selection stays in place while new output arrives and while you scroll.
DendROS tries two ways to reach the clipboard at the same time:
- OSC 52, an escape sequence the terminal handles. Works over SSH and inside tmux when the terminal supports it.
xclip,xselorwl-copy, if one is installed. Reaches the local clipboard directly.
Some terminals ignore OSC 52
Several VTE-based terminals (Terminator, for example) don't support OSC 52. On those, install xclip (X11) or wl-clipboard (Wayland) so copying works. When neither OSC 52 nor a clipboard tool can be relied on, the header shows -- copy needs xclip/xsel/wl-copy (none found) --.
Stopping the launch
Ctrl+C stops the launch as usual. Nodes that die during shutdown don't trigger crash alerts.
The TUI stays open after the launch exits, so you can keep reading, searching and copying. The header shows -- process finished --; press Q to quit. Pressing Ctrl+C a second time closes the viewer right away.
Closed it too early? dendros reopen brings the last run back.
Disabling mid-run
dendros disable from any terminal closes the TUI within about a second and switches the launch to plain passthrough output. dendros enable reopens the TUI with the full scrollback, including whatever was printed while it was disabled.
Configuring via dendros config
Both settings are in the Output tab:
| Setting | Values | Description |
|---|---|---|
| Launch mode | classic / tui |
tui (default) opens ros2 launch in the full-screen viewer; classic prints to the terminal. |
| TUI scrollback lines | integer | How many lines the TUI keeps. Default 5000. |
Notes
- TUI mode is a global setting only. There's no per-package or per-invocation override.
- Colors are approximated to the nearest of the terminal's 256 colors, so hex and extended colors can look slightly different than in classic mode.
- Lines are wrapped by character, not by word, like
less. - Exit codes are preserved, as in classic mode.
- Everything that works in classic mode (crash alert, traceback highlighting, parameter change alert, keyword highlighting) works the same in the TUI.