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

ShortcutAction
Ctrl+C — when text is selectedCopy selection to clipboard. With no selection the normal SIGINT reaches the remote process.
Enter — when text is selectedAlternate copy shortcut (handy on keyboards without Ctrl).
Right-click / Copy menuContext menu after selection — always available.
Ctrl+VPaste. Multi-line clipboard content opens a Paste multi-line confirmation dialog.
Shift+InsertPaste — classic X11/Windows muscle memory. Plain Insert still reaches the shell.
Shift+DeleteCopy the selection and clear it (cut-style).
Ctrl+FOpen the find bar (see Find in output). The shell never sees the keypress.
Ctrl+Shift+SOpen the snippet picker (see Snippets). Plain Ctrl+S still reaches the shell.
Shortcut baresc, ctrl, tab, arrows, common shell symbols, the snip key and the ⌨ toggle — useful on mobile. Function and navigation keys live on the DevOps keyboard's fn layer and the optional F-keys row.
Font sizeA- / A+ stepper in the terminal menu; range 8–32 pt.

On macOS, Cmd works wherever Ctrl is listed above: Cmd+C, Cmd+V, Cmd+F and Cmd+Shift+S behave like their Ctrl counterparts.

DevOps keyboard (Android & iOS)

System keyboards fight you in a terminal: autocorrect mangles sudo -rf, shell symbols hide two layers deep, and non-Latin layouts often have no ASCII at all. DR-Terminal ships its own always-ASCII DevOps keyboard, drawn by the app and sending keys straight to the terminal — the system IME never sees them.

Layers: lowercase, uppercase (Shift), numbers, shell symbols (| ~ $ & ' " \ …`) and an fn/nav layer (F1–F12, arrows, Home/End, PgUp/PgDn). Ctrl/Alt/Shift are sticky: tap arms them for the next key, double-tap locks. Hold , arrows or space for key repeat; long-press keys with a small corner mark for their alternate character.

Settings → Keyboard (mobile): Default keyboardAuto picks the DevOps keyboard when your system locale is non-Latin (Arabic, Hebrew, CJK…), the system IME otherwise; Layout — Auto/QWERTY/QWERTZ/AZERTY; Key opacity and Key size sliders; Show F-keys — an always-visible F1–F10 row above the keyboard, handy for mc/htop workflows. All keyboard preferences travel in the encrypted config backup when exported from a phone or tablet.

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.

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 sits in the sidebar's History tab and erases the saved command history for that connection — it does not touch the scrollback on screen.

A scrollbar appears at the right edge of the terminal (Desktop) — grab it with the mouse to scroll through the history; Android and iOS scroll by touch. 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

Press Ctrl+F (Cmd+F on macOS) to open the find bar. It 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

Snippets

Snippets are reusable command templates you can fire into any session. A template may embed typed placeholders — ping -c {count:int=4} {host:ip} — and running such a snippet opens a small dialog asking for the values (int, ip, bool and enum placeholders get matching inputs and validation). A snippet without placeholders runs straight away. Run immediately decides whether Enter is sent for you or the command just lands at the prompt for editing.

Ways to run one:

Each snippet has a scope: visible for All hosts, one Group, or a single Host. An optional Systems filter (Debian, RHEL, Arch, macOS…) narrows it further, so apt snippets only show up on hosts detected as Debian-family — detection comes from the login probe (see Host insight below). Show only when available additionally hides a snippet when its command is confirmed missing on the host. Sessions without an SSH host (local, serial, Telnet) see global snippets only.

Manage snippets in Settings → Terminal → Snippets: add, edit, duplicate and delete, set scope, systems and the run-immediately flag. A bundled catalogue of over a hundred ready-made snippets — per system (Debian, RHEL, Arch, Alpine, SUSE, BSD, macOS) plus Docker, network, storage and tools sets — is seeded on first run; edit or delete them like your own.

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 command names available on the server — live shell completion, distinct from the history of what you typed.

Host insight (live vitals)

After login on an SSH session the app quietly probes the host — OS name, CPU model and core count — and starts polling live vitals: load average, memory, swap and per-mount disk usage, each drawn with a usage bar that turns amber above 75% and red above 90%.

Session tabs

Every session — SSH, SFTP, local, serial, Telnet — lives in a tab. Long-press (mobile) or right-click (desktop) a tab, or a card on the Active Sessions list, for its menu: Rename, Connection info, Restart session and Close tab. Restart session tears the connection down and reconnects from scratch while keeping the tab — handy after a server reboot. When a remote session drops, the terminal menu also gains a Reconnect entry that re-establishes the connection in place (local terminals don't offer it — open a new one instead).

Sidebar (right panel) — Host / History / Complete / Snippets / Theme

To the right of the terminal (Desktop / tablet) sits a collapsible panel with five 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.

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).

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).

Previous
Authentication
Next
SFTP