Terminal
DR-Terminal include propriul emulator VT100/xterm scris de la zero în Kotlin — fără WebView. Acceptă xterm-256color, bufferul alternativ (vim/less/nano), clipboard OSC 52, evenimente de focus și urmărirea mouse-ului (mc, htop).
Tastatură și scurtături
| Scurtătură | Acțiune |
|---|---|
| Ctrl+C — când textul este selectat | Copiază selecția în clipboard. Fără selecție, SIGINT-ul obișnuit ajunge la procesul de la distanță. |
| Enter — când textul este selectat | Scurtătură alternativă de copiere (utilă pe tastaturi fără Ctrl). |
| Clic dreapta / meniul Copiere | Meniu contextual după selecție — mereu disponibil. |
| Ctrl+V | Lipire. Conținutul de clipboard pe mai multe rânduri deschide un dialog de confirmare a lipirii pe mai multe rânduri. |
| Shift+Insert | Lipire — reflexul clasic din X11/Windows. Insert simplu ajunge în continuare la shell. |
| Shift+Delete | Copiază selecția și o șterge (în stil decupare). |
| Ctrl+F | Deschide bara de căutare (vezi Căutare în ieșire). Shell-ul nu vede niciodată apăsarea. |
| Ctrl+Shift+S | Deschide selectorul de snippeturi (vezi Snippeturi). Ctrl+S simplu ajunge în continuare la shell. |
| Bara de scurtături | esc, ctrl, tab, săgeți, simboluri de shell uzuale, tasta snip și comutatorul ⌨ — utile pe mobil. Tastele de funcții și de navigare stau pe stratul fn al tastaturii DevOps și pe rândul opțional de taste F. |
| Dimensiunea fontului | Selectorul A- / A+ din meniul terminalului; interval 8–32 pt. |
Pe macOS, Cmd funcționează oriunde apare Ctrl mai sus: Cmd+C, Cmd+V, Cmd+F și Cmd+Shift+S se comportă ca echivalentele lor cu Ctrl.
Tastatura DevOps (Android și iOS)
Tastaturile de sistem îți stau împotrivă în terminal: autocorectarea strică sudo -rf, simbolurile de shell stau două straturi mai adânc, iar aranjamentele nelatine adesea nu au deloc ASCII. DR-Terminal vine cu propria tastatură DevOps mereu-ASCII, desenată de aplicație și care trimite tastele direct în terminal — IME-ul de sistem nu le vede niciodată.
- Portret — un doc clasic în partea de jos a ecranului.
- Peisaj — mod split: două grupuri la îndemâna degetelor mari pe marginile stângă și dreaptă, desenate ca sticlă translucidă peste terminal, astfel încât lățimea întreagă continuă să arate sesiunea.
Straturi: minuscule, majuscule (Shift), cifre, simboluri de shell (| ~ $ & ' " \ …`) și un strat fn/nav (F1–F12, săgeți, Home/End, PgUp/PgDn). Ctrl/Alt/Shift sunt lipicioase: o atingere le armează pentru tasta următoare, o atingere dublă le blochează. Ține apăsat ⌫, săgețile sau spațiul pentru repetare; apăsarea lungă pe tastele cu un mic semn în colț dă caracterul alternativ.
- Mânerul (pastila) de sus comută FULL ↔ MINI — MINI păstrează doar esențialul (Esc, Tab, Ctrl, săgeți, ⌫, ↵) pentru sesiuni cu htop/loguri. Peisajul își amintește propria stare și pornește în MINI.
- Trage mânerul pentru a muta un grup; se lipește de marginea cea mai apropiată. Lasă un grup peste celălalt pentru a le uni într-o singură tastatură plutitoare; pastila de despărțire le separă la loc.
- Glisează în jos peste taste pentru a ascunde tastatura; un buton ⌨ plutitor o aduce înapoi. Tasta ⌨ comută pe tastatura de sistem când ai nevoie de diacritice sau emoji.
Setări → Tastatură (mobil): Tastatura implicită — Auto alege tastatura DevOps când limba de sistem este nelatină (arabă, ebraică, CJK…), altfel IME-ul de sistem; Aranjament — Auto/QWERTY/QWERTZ/AZERTY; glisoare pentru Opacitate și Mărimea tastelor; Afișează tastele F — un rând F1–F10 mereu vizibil deasupra tastaturii, util pentru fluxurile cu mc/htop. Toate preferințele tastaturii călătoresc în backupul criptat al configurației exportat de pe telefon sau tabletă.
Selectare, copiere, lipire
Desktop: trage cu mouse-ul pentru a selecta. Dublu-clic selectează un cuvânt, triplu-clic un rând. Eliberarea copiază prin scurtăturile de mai sus; clic dreapta deschide un meniu.
Android și iOS: apasă lung oriunde în terminal pentru a începe o selecție, apoi trage pentru a extinde și eliberează pentru a copia — textul ajunge în clipboardul sistemului. O atingere scurtă tot trece la shell; o glisare tot derulează istoricul, deci gesturile obișnuite continuă să funcționeze.
- Pictograma de lipire din bara de sus a terminalului — o atingere lipește clipboardul la cursor. Dacă nu e nimic în clipboard, apare un snackbar neutru Nimic de lipit.
- Selectează text din meniul terminalului — o casetă de bifat care menține modul de selecție activ până îl oprești, astfel încât fiecare tragere selectează în loc să deruleze sau să treacă la shell.
- Apăsarea lungă pe rândul promptului (rândul pe care se află cursorul, și doar când nu ești derulat în istoric) lipește în loc să înceapă o selecție — natural atunci când vrei doar să arunci clipboardul acolo unde tastezi.
OSC 52 permite programelor de la distanță (tmux, vim, fzf) să copieze în clipboardul sistemului tău printr-o secvență de evadare — bidirecțional.
Lipire pe mai multe rânduri: când clipboardul tău conține rânduri noi, vezi un dialog de previzualizare a lipirii pe mai multe rânduri — te protejează de lipirea unor comenzi pe care nu le-ai inspectat.
Scrollback și istoric
Bufferul de scrollback reține până la 1000 de rânduri. Rotița sau glisarea cu degetul derulează; cursorul părăsește corect zona vizibilă (comportament xterm), iar orice selecție derulează împreună cu textul.
Șterge istoricul stă în fila Istoric a barei laterale și șterge istoricul de comenzi salvat pentru acea conexiune — nu atinge scrollback-ul de pe ecran.
O bară de derulare apare la marginea dreaptă a terminalului (Desktop) — prinde-o cu mouse-ul pentru a parcurge istoricul; Android și iOS derulează prin atingere. Viteza de derulare cu rotița se poate configura în Setări → Terminal (rânduri per fiecare clic al rotiței).
Buffer alternativ (aplicații pe tot ecranul)
Programe precum vim, less, nano, htop, mc comută în bufferul alternativ — un ecran separat care dispare la ieșire fără a polua scrollback-ul principal.
Căutare în ieșire
Apasă Ctrl+F (Cmd+F pe macOS) pentru a deschide bara de căutare. Aceasta caută în scrollback în timp real, evidențiind fiecare potrivire și parcurgându-le una câte una. Evidențierea este un strat aplicat la randare — nu injectează niciodată nimic în fluxul SSH.
Font, temă, evidențiere
- Dimensiunea fontului — selectorul A-/A+ din meniul terminalului sau glisorul din Setări → Aspect; interval 8–32 pt. Fontul Personalizat din fila Temă a barei laterale permite în plus 6–72 pt per alias.
- Tema interfeței — luminos / întunecat / sistem (întreaga aplicație, nu terminalul).
- Tema terminalului — vezi secțiunea Temă de mai jos; tema este per alias.
- Reguli de evidențiere — Setări → Terminal → Evidențiere ieșire. Adaugă regex + culoare, de ex. colorează
ERRORcu roșu.
Snippeturi
Snippeturile sunt șabloane de comenzi reutilizabile pe care le poți lansa în orice sesiune. Un șablon poate îngloba substituenți tipizați — ping -c {count:int=4} {host:ip} — iar rularea unui astfel de snippet deschide un mic dialog care cere valorile (substituenții int, ip, bool și enum primesc câmpuri și validare potrivite). Un snippet fără substituenți rulează imediat. Rulează imediat decide dacă Enter este trimis pentru tine sau comanda doar ajunge la prompt pentru editare.
Moduri de a rula unul:
- Ctrl+Shift+S (Cmd+Shift+S pe macOS) — un selector cu căutare pe măsură ce tastezi; Enter rulează prima potrivire.
- Snippeturi din meniul terminalului — același selector fără tastatură.
- Fila Snippeturi din bara laterală a terminalului — cele folosite recent primele, un clic pentru a rula, plus o scurtătură către editor.
- Tasta fixată snip de pe bara de scurtături mobilă și de pe tastatura DevOps, al cărei mod andocat oferă și un strat de plăci cu snippeturi — o grilă ușor de atins, cu snippeturile tale recente la vedere.
Fiecare snippet are un domeniu de vizibilitate: vizibil pentru Toate gazdele, un Grup sau o singură Gazdă. Un filtru opțional Sisteme (Debian, RHEL, Arch, macOS…) îl restrânge mai departe, astfel încât snippeturile apt apar doar pe gazdele detectate ca fiind din familia Debian — detectarea vine din sonda de la autentificare (vezi Detalii despre gazdă mai jos). Afișează doar dacă este disponibil ascunde în plus un snippet când comanda lui este confirmată ca lipsă pe gazdă. Sesiunile fără o gazdă SSH (local, serial, Telnet) văd doar snippeturile globale.
Gestionează snippeturile în Setări → Terminal → Snippeturi: adaugă, editează, duplică și șterge, setează domeniul, sistemele și marcajul de rulare imediată. Un catalog inclus cu peste o sută de snippeturi gata făcute — per sistem (Debian, RHEL, Arch, Alpine, SUSE, BSD, macOS) plus seturi pentru Docker, rețea, stocare și unelte — este preinstalat la prima rulare; editează-le sau șterge-le ca pe ale tale.
Istoric comenzi și autocompletare
Fiecare conexiune salvată reține istoricul propriu de comenzi (dacă Salvează istoricul este activat). Săgeata sus reapelează comenzi anterioare, iar câmpul de autocompletare sugerează nume de comenzi disponibile pe server — completare de shell în timp real, distinctă de istoricul a ceea ce ai tastat.
Detalii despre gazdă (date vitale live)
După autentificarea într-o sesiune SSH, aplicația sondează discret gazda — numele OS-ului, modelul CPU și numărul de nuclee — și începe să interogheze datele vitale live: load average, memorie, swap și utilizarea discului per punct de montare, fiecare desenată cu o bară de utilizare care devine portocalie peste 75% și roșie peste 90%.
- Fila Host din bara laterală a terminalului (fila cea mai din stânga și cea implicită pentru sesiunile SSH) arată totul dintr-o privire.
- Aceleași rânduri apar în dialogul Informații conexiune.
- Setări → Terminal → Monitorizarea resurselor (CPU/RAM/disc) pornește sau oprește interogarea la nivel global și setează intervalul de reîmprospătare (5–300 s). Formularul conexiunii poate suprascrie intervalul per gazdă, iar lista sa derulantă Verificarea sistemului la autentificare alege cât de des rulează sonda completă: la fiecare conexiune, o dată pe zi, o dată pe săptămână sau dezactivat.
File de sesiune
Fiecare sesiune — SSH, SFTP, locală, serială, Telnet — trăiește într-o filă. Apasă lung (mobil) sau clic dreapta (desktop) pe o filă, sau pe un card din lista Sesiuni active, pentru meniul ei: Redenumește, Informații conexiune, Repornește sesiunea și Închide fila. Repornește sesiunea închide conexiunea și se reconectează de la zero păstrând fila — util după repornirea unui server. Când o sesiune la distanță cade, meniul terminalului primește și o intrare Reconectează care restabilește conexiunea pe loc (terminalele locale nu o oferă — deschide unul nou în schimb).
Bară laterală (panoul din dreapta) — Host / Istoric / Completare / Snippeturi / Temă
La dreapta terminalului (Desktop / tabletă) se află un panou pliabil cu cinci file. Deschide-l cu săgeata de pe marginea dreaptă; redimensionează-l trăgând de marginea stângă. Starea este per alias — fiecare conexiune salvată reține fila și lățimea ei.
- Host — fila implicită pentru sesiunile SSH: sistemul detectat, CPU și datele vitale live. Vezi Detalii despre gazdă mai sus.
- Istoric — comenzi tastate recent. Clicul tastează comanda în terminal; comutatorul de lângă ea decide dacă se trimite automat cu Enter. Șterge istoricul se află tot aici.
- Completare — sugestii de nume de comenzi în timp real din completarea shell-ului de pe server. Pot fi amuțite per alias (pictograma clopoțel).
- Snippeturi — snippeturile tale pentru această gazdă, cele folosite recent primele. Vezi Snippeturi mai sus.
- Temă — aspectul terminalului. Vezi secțiunea de mai jos.
Temă — teme de terminal (435 de scheme)
Tema este per alias — fiecare conexiune are propriul fundal, prim-plan și paletă ANSI de 16 culori (aceleași indici pe care îi folosește ls --color: standard 0–7 + luminoase 8–15).
- Catalog încorporat de 435 de teme — câmpul Caută… filtrează după nume. Fiecare rând afișează fundalul, prim-planul și o fâșie de 16 mostre. Clicul aplică tema instantaneu.
- Personalizat (acest alias) — pe desktop, bara laterală expune și editarea manuală a fontului, fundalului, prim-planului și a celor 16 sloturi ANSI. Fiecare slot are propria resetare (⟲); întreaga paletă are o resetare separată.
- Directoarele albastre în
ls --colorsunt ANSI 4 (BLUE) sau 12 (BRIGHT_BLUE) — pentru a le schimba, alege altă temă sau editează acele două mostre.
Android și iOS: întreaga bară laterală desktop este înlocuită de o singură pictogramă de paletă în bara de sus a terminalului. Atinge-o pentru o foaie de jos cu același catalog de 435 de teme, cu căutare și previzualizări live ale mostrelor. Atingerea unui rând aplică tema și închide foaia, astfel încât vezi rezultatul imediat; butonul Resetare din partea de sus elimină orice suprascrieri, astfel încât aliasul revine la valorile sale implicite.
Cele 435 de teme încorporate provin din colecția open-source edcet/terminal-themes (MIT).