Terminal
DR-Terminal ships its own VT100/xterm emulator written from scratch in Kotlin — no WebView. It supports xterm-256color, the alt buffer (vim/less/nano), OSC 52 clipboard, focus events, and mouse tracking (mc, htop).
Keyboard and shortcuts
| Shortcut | Action |
|---|---|
| Ctrl+C — when text is selected | Copy selection to clipboard. With no selection the normal SIGINT reaches the remote process. |
| Enter — when text is selected | Alternate copy shortcut (handy on keyboards without Ctrl). |
| Right-click / Copy menu | Context menu after selection — always available. |
| Ctrl+V | Paste. Multi-line clipboard content opens a Paste multi-line confirmation dialog. |
| Shortcut bar | ESC, Tab, Ctrl, arrows, F1–F10, Home/End, PgUp/PgDn, Insert — useful on mobile. |
| Font size | A+ / A- buttons (mobile) or dropdown in the toolbar (desktop) — no keyboard shortcut. |
Select, copy, paste
Desktop: drag with the mouse to select. Double-click selects a word, triple-click a line. Release copies via the shortcuts above; right-click opens a menu.
Android & iOS: long-press anywhere in the terminal to start a selection, then drag to extend and release to copy — the text lands in the system clipboard. A short touch still taps through to the shell; a swipe still scrolls history, so the usual gestures keep working.
- Paste icon in the terminal top bar — one tap pastes the clipboard at the cursor. Nothing in the clipboard shows a neutral Nothing to paste snackbar.
- Long-press on the prompt row (the row the cursor is on, and only when you are not scrolled into history) pastes instead of starting a selection — natural when you just want to drop the clipboard where you are typing.
OSC 52 lets remote programs (tmux, vim, fzf) copy to your system clipboard through an escape sequence — bidirectional.
Multi-line paste: when your clipboard contains newlines you see a Paste multi-line preview dialog — protects against pasting commands you didn't inspect.
Scrollback and history
The scrollback buffer holds up to 1000 lines. Wheel or touch-drag scrolls; the cursor correctly leaves the viewport (xterm behaviour) and any selection scrolls with the text.
Clear history (terminal menu) wipes the buffer without dropping the session.
A scrollbar appears at the right edge of the terminal — grab it with the mouse to scroll through the history. Wheel scroll speed is configurable in Settings → Terminal (lines per single wheel tick).
Alt buffer (full-screen apps)
Programs like vim, less, nano, htop, mc switch into the alt buffer — a separate screen that disappears on exit without polluting the main scrollback.
Find in output
The find bar searches the scrollback live, highlighting every match and stepping between them. Highlighting is a render-time overlay — it never injects anything into the SSH stream.
Font, theme, highlighting
- Font size — A+/A- buttons in the terminal bar or the dropdown in the toolbar; range 6–72 pt.
- UI theme — light / dark / system (the whole app, not the terminal).
- Terminal theme — see the Theme section below; theme is per alias.
- Highlight rules — Settings → Terminal → Output highlighting. Add regex + colour, e.g. paint
ERRORred.
Command history and autocomplete
Each saved connection remembers its command history (if Save history is on). Up-arrow recalls earlier commands, and the autocomplete field suggests from the server-side history.
Sidebar (right panel) — History / Complete / Theme
To the right of the terminal (Desktop / tablet) sits a collapsible panel with three tabs. Open it with the arrow on the right edge; resize by dragging the left edge. State is per alias — each saved connection remembers its tab and width.
- History — recently typed commands. Clicking types the command into the terminal; the toggle next to it decides whether to auto-submit with Enter.
- Complete — live autocomplete suggestions (based on server-side history). Can be muted per alias (bell icon).
- Theme — terminal appearance. See the section below.
Theme — terminal themes (435 schemes)
Theme is per alias — each connection has its own background, foreground and 16-colour ANSI palette (the same indexes ls --color uses: standard 0–7 + bright 8–15).
- Built-in catalogue of 435 themes — the Search… field filters by name. Each row shows background, foreground and a 16-swatch strip. Click applies the theme instantly.
- Custom (this alias) — on desktop the sidebar also exposes manual edit of font, background, foreground and the 16 ANSI slots. Every slot has its own reset (⟲); the whole palette has a separate reset.
- Blue directories in
ls --colorare ANSI 4 (BLUE) or 12 (BRIGHT_BLUE) — to change them, pick another theme or edit those two swatches.
Android & iOS: the whole desktop sidebar is replaced by a single palette icon in the terminal top bar. Tap it for a bottom sheet with the same 435-theme catalogue, searchable and with live swatch previews. Tapping a row applies the theme and closes the sheet so you see the result immediately; the Reset button at the top drops any overrides so the alias falls back to its defaults.
The 435 built-in themes come from the open-source edcet/terminal-themes collection (MIT).