Terminal
O DR-Terminal inclui o seu próprio emulador VT100/xterm, escrito do zero em Kotlin — sem WebView. Suporta xterm-256color, o buffer alternativo (vim/less/nano), a área de transferência OSC 52, eventos de foco e monitorização do rato (mc, htop).
Teclado e atalhos
| Atalho | Ação |
|---|---|
| Ctrl+C — quando há texto selecionado | Copia a seleção para a área de transferência. Sem seleção, o SIGINT normal chega ao processo remoto. |
| Enter — quando há texto selecionado | Atalho de cópia alternativo (útil em teclados sem Ctrl). |
| Clique direito / menu Copiar | Menu de contexto após a seleção — sempre disponível. |
| Ctrl+V | Colar. Conteúdo de várias linhas na área de transferência abre uma caixa de diálogo de confirmação de colagem multilinha. |
| Shift+Insert | Colar — memória muscular clássica do X11/Windows. Insert isolado ainda chega ao shell. |
| Shift+Delete | Copia a seleção e limpa-a (estilo recortar). |
| Ctrl+F | Abre a barra de pesquisa (ver Pesquisar na saída). O shell nunca vê a tecla. |
| Ctrl+Shift+S | Abre o seletor de snippets (ver Snippets). Ctrl+S isolado ainda chega ao shell. |
| Barra de atalhos | esc, ctrl, tab, setas, símbolos comuns de shell, a tecla snip e o alternador ⌨ — úteis no telemóvel. As teclas de função e navegação vivem na camada fn do teclado DevOps e na fileira opcional de teclas F. |
| Tamanho da fonte | Seletor A- / A+ no menu do terminal; intervalo de 8–32 pt. |
No macOS, Cmd funciona onde quer que Ctrl esteja listado acima: Cmd+C, Cmd+V, Cmd+F e Cmd+Shift+S comportam-se como os respetivos equivalentes com Ctrl.
Teclado DevOps (Android e iOS)
Os teclados do sistema trabalham contra o utilizador no terminal: a autocorreção estraga sudo -rf, os símbolos de shell ficam duas camadas adiante e os layouts não latinos muitas vezes nem têm ASCII. O DR-Terminal inclui o seu próprio teclado DevOps sempre-ASCII, desenhado pela aplicação, que envia as teclas diretamente ao terminal — o IME do sistema nunca as vê.
- Retrato — um dock clássico na parte inferior do ecrã.
- Paisagem — modo split: dois grupos ao alcance dos polegares, nas bordas esquerda e direita, desenhados como vidro translúcido sobre o terminal, pelo que a largura inteira continua a mostrar a sessão.
Camadas: minúsculas, maiúsculas (Shift), números, símbolos de shell (| ~ $ & ' " \ …`) e uma camada fn/nav (F1–F12, setas, Home/End, PgUp/PgDn). Ctrl/Alt/Shift são aderentes: um toque arma-os para a próxima tecla, um toque duplo bloqueia-os. Mantenha premida a tecla ⌫, as setas ou a barra de espaço para obter repetição; um toque prolongado em teclas com uma pequena marca no canto dá o carácter alternativo.
- A pega (pílula) no topo alterna FULL ↔ MINI — MINI mantém só o essencial (Esc, Tab, Ctrl, setas, ⌫, ↵) para sessões de htop/logs. O modo paisagem memoriza o próprio estado e começa em MINI.
- Arraste a pega para mover um grupo; este fixa-se à borda mais próxima. Solte um grupo sobre o outro para fundi-los num único teclado flutuante; a pílula de divisão volta a separá-los.
- Deslize para baixo sobre as teclas para ocultar o teclado; um botão ⌨ flutuante volta a mostrá-lo. A tecla ⌨ muda para o teclado do sistema quando são necessários acentos ou emojis.
Definições → Teclado (mobile): Teclado predefinido — Auto escolhe o teclado DevOps quando o idioma do sistema é não latino (árabe, hebraico, CJK…), caso contrário usa o IME do sistema; Layout — Auto/QWERTY/QWERTZ/AZERTY; controlos de Opacidade e Tamanho das teclas; Mostrar teclas F — uma fileira F1–F10 sempre visível acima do teclado, útil para fluxos com mc/htop. Todas as preferências do teclado viajam no backup encriptado exportado de um telemóvel ou tablet.
Selecionar, copiar, colar
Desktop: arraste com o rato para selecionar. Clique duplo seleciona uma palavra; clique triplo, uma linha. Soltar copia através dos atalhos acima; o clique direito abre um menu.
Android e iOS: mantenha premido em qualquer ponto do terminal para iniciar uma seleção, depois arraste para estender e solte para copiar — o texto vai para a área de transferência do sistema. Um toque curto continua a passar diretamente para o shell; um deslize continua a percorrer o histórico, pelo que os gestos habituais continuam a funcionar.
- Ícone de colar na barra superior do terminal — um toque cola a área de transferência na posição do cursor. Se não houver nada na área de transferência, é apresentado um snackbar neutro Nada para colar.
- Selecionar texto no menu do terminal — uma caixa de verificação que mantém o modo de seleção ativo até ser desativada, de modo que cada arrasto seleciona, em vez de deslocar ou deixar passar o toque.
- Manter premido na linha do prompt (a linha em que o cursor está, e apenas quando não se está a percorrer o histórico) cola em vez de iniciar uma seleção — natural quando só se quer largar a área de transferência no local onde se está a escrever.
O OSC 52 permite que programas remotos (tmux, vim, fzf) copiem para a área de transferência do sistema local através de uma sequência de escape — é bidirecional.
Colagem multilinha: quando a área de transferência contém quebras de linha, é apresentada uma caixa de diálogo de pré-visualização de colagem multilinha — protege contra a colagem de comandos que não foram inspecionados.
Deslocamento e histórico
O buffer de deslocamento comporta até 1000 linhas. A roda ou o arrasto por toque desloca o conteúdo; o cursor sai corretamente da área visível (comportamento do xterm) e qualquer seleção desloca-se junto com o texto.
Limpar histórico encontra-se no separador Histórico da barra lateral e apaga o histórico de comandos guardado daquela ligação — não afeta o conteúdo apresentado no ecrã.
Uma barra de deslocamento aparece na borda direita do terminal (Desktop) — arraste-a com o rato para percorrer o histórico; no Android e iOS o deslocamento é feito por toque. A velocidade de deslocamento da roda é configurável em Definições → Terminal (linhas por cada clique da roda).
Buffer alternativo (aplicações em ecrã inteiro)
Programas como vim, less, nano, htop, mc mudam para o buffer alternativo — um ecrã separado que desaparece ao saírem, sem afetar o histórico principal.
Pesquisar na saída
Prima Ctrl+F (Cmd+F no macOS) para abrir a barra de pesquisa. A pesquisa percorre o histórico em tempo real, destacando cada ocorrência e permitindo navegar entre elas. O destaque é uma sobreposição em tempo de renderização — nunca injeta nada no fluxo SSH.
Fonte, tema, destaque
- Tamanho da fonte — o seletor A-/A+ no menu do terminal ou o controlo deslizante em Definições → Aparência; intervalo de 8–32 pt. A fonte Personalizada no separador Tema da barra lateral permite adicionalmente 6–72 pt por apelido.
- Tema da interface — claro / escuro / sistema (toda a aplicação, não apenas o terminal).
- Tema do terminal — ver a secção Tema abaixo; o tema é por apelido.
- Regras de destaque — Definições → Terminal → Destaque de saída. Adicione regex + cor, por exemplo, pinte
ERRORde vermelho.
Snippets
Os Snippets são modelos de comandos reutilizáveis que podem ser acionados em qualquer sessão. Um modelo pode conter marcadores tipados — ping -c {count:int=4} {host:ip} — e a execução de um snippet desses abre uma pequena caixa de diálogo a pedir os valores (os marcadores int, ip, bool e enum recebem campos e validação correspondentes). Um snippet sem marcadores é executado de imediato. Executar imediatamente (enviar Enter) decide se o Enter é enviado automaticamente ou se o comando apenas aparece no prompt para edição.
Formas de executar um:
- Ctrl+Shift+S (Cmd+Shift+S no macOS) — um seletor com pesquisa instantânea à medida que se escreve; Enter executa a primeira correspondência.
- Snippets no menu do terminal — o mesmo seletor, sem teclado.
- O separador Snippets na barra lateral do terminal — usados recentemente em primeiro lugar, um clique para executar, além de um atalho para o editor.
- A tecla snip fixada na barra de atalhos do telemóvel e no teclado DevOps, cujo modo acoplado também oferece uma camada de blocos de snippets — uma grelha amigável ao toque com os snippets recentes bem visíveis.
Cada snippet tem um âmbito (Visível para): Todos os hosts, um Grupo ou um único Host. Um filtro opcional de Sistemas (Debian, RHEL, Arch, macOS…) restringe-o ainda mais, de modo que os snippets de apt só apareçam em hosts detetados como pertencentes à família Debian — a deteção vem da sonda de login (ver Informações do host abaixo). Mostrar apenas se disponível oculta adicionalmente um snippet quando se confirma que o respetivo comando não existe no host. Sessões sem um host SSH (local, série, Telnet) veem apenas os snippets globais.
Faça a gestão dos snippets em Definições → Terminal → Snippets: adicione, edite, duplique e elimine, defina o âmbito, os sistemas e a opção de execução imediata. Um catálogo integrado com mais de cem snippets prontos — por sistema (Debian, RHEL, Arch, Alpine, SUSE, BSD, macOS), além de conjuntos de Docker, rede, armazenamento e ferramentas — vem pré-carregado na primeira execução; podem ser editados ou eliminados livremente.
Histórico de comandos e autocompletar
Cada ligação guardada memoriza o respetivo histórico de comandos (se Guardar histórico estiver ativado). A seta para cima recupera comandos anteriores, e o campo de autocompletar sugere nomes de comandos disponíveis no servidor — completamento ao vivo do shell, distinto do histórico do que foi escrito.
Informações do host (sinais vitais ao vivo)
Após o login numa sessão SSH, a aplicação sonda discretamente o host — nome do SO, modelo da CPU e número de núcleos — e começa a recolher sinais vitais ao vivo: carga média, memória, swap e utilização de disco por ponto de montagem, cada um representado por uma barra de utilização que fica âmbar acima de 75% e vermelha acima de 90%.
- O separador Host da barra lateral do terminal (o separador mais à esquerda, e o predefinido para sessões SSH) mostra tudo de imediato.
- As mesmas linhas aparecem na caixa de diálogo Informação da ligação.
- Definições → Terminal → Monitorização de recursos (CPU/RAM/disco) ativa ou desativa a recolha globalmente e define o intervalo de atualização (5–300 s). O formulário de ligação pode substituir o intervalo por host, e o respetivo menu Verificação do sistema ao iniciar sessão escolhe com que frequência a sonda completa é executada: cada ligação, uma vez por dia, uma vez por semana ou desativada.
Separadores de sessão
Cada sessão — SSH, SFTP, local, série, Telnet — vive num separador. Mantenha premido (telemóvel) ou clique com o botão direito (desktop) num separador, ou num cartão da lista de Sessões ativas, para abrir o respetivo menu: Renomear, Informação da ligação, Reiniciar sessão e Fechar separador. Reiniciar sessão termina a ligação e volta a ligar do zero, mantendo o separador — útil depois de reiniciar um servidor. Quando uma sessão remota cai, o menu do terminal também passa a ter uma entrada Reconectar que restabelece a ligação no mesmo local (os terminais locais não a oferecem — abra um novo em vez disso).
Barra lateral (painel direito) — Host / Histórico / Completar / Snippets / Tema
À direita do terminal (Desktop / tablet) há um painel recolhível com cinco separadores. Abra-o com a seta na borda direita; redimensione-o arrastando a borda esquerda. O estado é por apelido — cada ligação guardada memoriza o respetivo separador e largura.
- Host — o separador predefinido para sessões SSH: sistema detetado, CPU e sinais vitais ao vivo. Ver Informações do host acima.
- Histórico — comandos introduzidos recentemente. Clicar escreve o comando no terminal; o botão ao lado decide se deve ser enviado automaticamente com Enter. Limpar histórico também se encontra aqui.
- Completar — sugestões ao vivo de nomes de comandos vindas do completamento do shell do servidor. Pode ser silenciado por apelido (ícone de sino).
- Snippets — os snippets deste host, usados recentemente em primeiro lugar. Ver Snippets acima.
- Tema — aparência do terminal. Ver a secção abaixo.
Tema — temas de terminal (435 esquemas)
O tema é por apelido — cada ligação tem o seu próprio fundo, primeiro plano e paleta ANSI de 16 cores (os mesmos índices que o ls --color utiliza: padrão 0–7 + claros 8–15).
- Catálogo integrado de 435 temas — o campo Pesquisar… filtra por nome. Cada linha mostra fundo, primeiro plano e uma faixa de 16 amostras. Clicar aplica o tema instantaneamente.
- Personalizado (este apelido) — no desktop, a barra lateral também expõe a edição manual de fonte, fundo, primeiro plano e os 16 slots ANSI. Cada slot tem o seu próprio reset (⟲); a paleta inteira tem um reset separado.
- Diretórios em azul no
ls --colorsão ANSI 4 (BLUE) ou 12 (BRIGHT_BLUE) — para alterá-los, escolha outro tema ou edite essas duas amostras.
Android e iOS: toda a barra lateral do desktop é substituída por um único ícone de paleta na barra superior do terminal. Toque nele para abrir uma folha inferior com o mesmo catálogo de 435 temas, pesquisável e com pré-visualizações de amostras ao vivo. Tocar numa linha aplica o tema e fecha a folha, para que o resultado seja visto imediatamente; o botão Repor no topo descarta quaisquer substituições, fazendo o apelido voltar às predefinições.
Os 435 temas integrados vêm da coleção de código aberto edcet/terminal-themes (MIT).