Terminal
DR-Terminal dilengkapi emulator VT100/xterm buatan sendiri yang ditulis dari nol dalam Kotlin — tanpa WebView. Emulator ini mendukung xterm-256color, buffer alternatif (vim/less/nano), clipboard OSC 52, event fokus, dan pelacakan mouse (mc, htop).
Keyboard dan pintasan
| Pintasan | Tindakan |
|---|---|
| Ctrl+C — saat teks dipilih | Menyalin pilihan ke clipboard. Tanpa pilihan, SIGINT normal diteruskan ke proses jarak jauh. |
| Enter — saat teks dipilih | Pintasan salin alternatif (praktis di keyboard tanpa Ctrl). |
| Klik kanan / menu Salin | Menu konteks setelah memilih — selalu tersedia. |
| Ctrl+V | Tempel. Konten clipboard multi-baris membuka dialog konfirmasi Tempel Multi-baris. |
| Shift+Insert | Tempel — kebiasaan klasik X11/Windows. Tombol Insert biasa tetap diteruskan ke shell. |
| Shift+Delete | Menyalin pilihan lalu menghapusnya (gaya potong). |
| Ctrl+F | Membuka bilah pencarian (lihat Cari di output). Shell tidak pernah menerima penekanan tombol ini. |
| Ctrl+Shift+S | Membuka pemilih snippet (lihat Snippet). Ctrl+S biasa tetap diteruskan ke shell. |
| Bilah pintasan | esc, ctrl, tab, tombol panah, simbol shell umum, tombol snip, dan tombol ⌨ — berguna di perangkat seluler. Tombol fungsi dan navigasi berada di lapisan fn keyboard DevOps dan di baris tombol F opsional. |
| Ukuran font | Stepper A- / A+ di menu terminal; rentang 8–32 pt. |
Di macOS, Cmd berfungsi di mana pun Ctrl disebutkan di atas: Cmd+C, Cmd+V, Cmd+F, dan Cmd+Shift+S berperilaku sama seperti padanan Ctrl-nya.
Keyboard DevOps (Android & iOS)
Keyboard sistem menyulitkan Anda di terminal: koreksi otomatis merusak sudo -rf, simbol shell tersembunyi dua lapis ke dalam, dan tata letak non-Latin sering kali tidak punya ASCII sama sekali. DR-Terminal menyertakan keyboard DevOps sendiri yang selalu ASCII, digambar oleh aplikasi dan mengirim tombol langsung ke terminal — IME sistem tidak pernah melihatnya.
- Potret — dok klasik di bagian bawah layar.
- Lanskap — mode terpisah: dua kelompok tombol seukuran ibu jari di tepi kiri dan kanan, digambar sebagai kaca tembus pandang di atas terminal, sehingga seluruh lebar layar tetap menampilkan sesi Anda.
Lapisan: huruf kecil, huruf besar (Shift), angka, simbol shell (| ~ $ & ' " \ …`) dan lapisan fn/nav (F1–F12, tombol panah, Home/End, PgUp/PgDn). Ctrl/Alt/Shift bersifat lengket: satu ketukan mengaktifkannya untuk tombol berikutnya, ketukan ganda menguncinya. Tahan ⌫, tombol panah, atau spasi untuk pengulangan tombol; tekan lama tombol dengan tanda kecil di sudutnya untuk karakter alternatifnya.
- Pegangan (pil) di bagian atas mengalihkan FULL ↔ MINI — MINI hanya menyisakan yang penting (Esc, Tab, Ctrl, tombol panah, ⌫, ↵) untuk sesi htop/log. Mode lanskap mengingat statusnya sendiri dan dimulai dalam MINI.
- Seret pegangan untuk memindahkan kelompok tombol terpisah; kelompok itu akan menempel ke tepi terdekat. Jatuhkan satu kelompok ke kelompok lainnya untuk menggabungkannya menjadi satu keyboard mengambang; pil pemisah memisahkannya kembali.
- Geser ke bawah di atas tombol-tombol untuk menyembunyikan keyboard; tombol ⌨ mengambang memunculkannya kembali. Tombol ⌨ beralih ke keyboard sistem saat Anda membutuhkan diakritik atau emoji.
Pengaturan → Keyboard (seluler): Keyboard bawaan — Otomatis memilih keyboard DevOps saat lokal sistem Anda non-Latin (Arab, Ibrani, CJK…), dan IME sistem jika sebaliknya; Tata letak keyboard — Otomatis/QWERTY/QWERTZ/AZERTY; penggeser Opasitas keyboard dan Ukuran tombol keyboard; Tampilkan tombol F — baris F1–F10 yang selalu terlihat di atas keyboard, praktis untuk alur kerja mc/htop. Semua preferensi keyboard ikut serta dalam cadangan konfigurasi terenkripsi saat diekspor dari ponsel atau tablet.
Pilih, salin, tempel
Desktop: seret dengan mouse untuk memilih. Klik ganda memilih satu kata, klik tiga kali memilih satu baris. Lepaskan, lalu salin dengan pintasan di atas; klik kanan membuka menu.
Android & iOS: tekan lama di mana saja dalam terminal untuk memulai pemilihan, lalu seret untuk memperluas dan lepaskan untuk menyalin — teks masuk ke clipboard sistem. Sentuhan singkat tetap diteruskan sebagai ketukan ke shell; gesekan tetap menggulir riwayat, sehingga gestur biasa tetap berfungsi.
- Ikon tempel di bilah atas terminal — satu ketukan menempelkan clipboard di posisi kursor. Jika clipboard kosong, muncul snackbar netral Tidak ada yang bisa ditempel.
- Pilih teks di menu terminal — kotak centang yang mempertahankan mode pemilihan sampai Anda mematikannya, sehingga setiap seretan memilih teks alih-alih menggulir atau mengetuk ke shell.
- Tekan lama pada baris prompt (baris tempat kursor berada, dan hanya saat Anda tidak sedang menggulir ke riwayat) akan menempel alih-alih memulai pemilihan — alami saat Anda hanya ingin meletakkan isi clipboard di tempat Anda mengetik.
OSC 52 memungkinkan program jarak jauh (tmux, vim, fzf) menyalin ke clipboard sistem Anda melalui escape sequence — dua arah.
Tempel Multi-baris: saat clipboard Anda berisi baris baru, Anda akan melihat dialog pratinjau Tempel Multi-baris — melindungi dari menempelkan perintah yang belum Anda periksa. Pengaturan → Terminal → Tempel Multi-baris dapat mengingat mode yang Anda pilih (tempel sebagai satu blok, baris per baris, edit dulu) sehingga dialog berhenti bertanya.
Rekam ke file (serial & Telnet)
Pada sesi serial dan Telnet, menu sesi (⋮) menawarkan Rekam ke file… — semua yang diterima sesi sejak saat itu ditambahkan ke sebuah file, seperti minicom -C. Dialognya menampilkan nama file, memungkinkan Anda memilih folder tujuan (diingat untuk lain kali; di Android pemilih folder sistem memberi aplikasi akses ke folder tersebut), dan memiliki opsi Teks biasa (kode ANSI dihapus) untuk log yang ingin Anda baca tanpa escape sequence. Peringatan muncul saat ruang kosong di tujuan hampir habis. Entri menu yang sama berubah menjadi Hentikan perekaman selama perekaman berjalan, dan ikonnya berubah merah.
Scrollback dan riwayat
Buffer scrollback menampung 5000 baris secara default; atur kedalamannya di Pengaturan → Ukuran scrollback (1000–20000 — nilai baru berlaku untuk sesi yang dibuka setelahnya). Roda mouse atau seretan sentuh menggulir; kursor keluar dari viewport dengan benar (perilaku xterm) dan pilihan apa pun ikut bergulir bersama teks.
Pada sesi serial dan Telnet, scrollback dilindungi: sequence yang biasanya menghapusnya — clear, getty yang membersihkan layar sebelum prompt login, reset terminal penuh — justru menggulir layar ke riwayat alih-alih menghancurkannya. Mengamati perangkat melakukan boot melalui UART membuat seluruh log U-Boot → kernel → login tetap dapat digulir. SSH dan shell lokal mempertahankan perilaku xterm standar, di mana clear benar-benar membersihkan.
Hapus riwayat berada di tab Riwayat bilah samping dan menghapus riwayat perintah tersimpan untuk koneksi tersebut — tidak menyentuh scrollback di layar.
Bilah gulir muncul di tepi kanan terminal (Desktop) — tarik dengan mouse untuk menggulir riwayat; Android dan iOS menggulir dengan sentuhan. Kecepatan gulir roda mouse dapat dikonfigurasi di Pengaturan → Terminal (jumlah baris per satu klik roda).
Buffer alternatif (aplikasi layar penuh)
Program seperti vim, less, nano, htop, mc beralih ke buffer alternatif — layar terpisah yang hilang saat keluar tanpa mengotori scrollback utama.
Cari di output
Tekan Ctrl+F (Cmd+F di macOS) untuk membuka bilah pencarian. Pencarian berjalan langsung di scrollback, menyorot setiap kecocokan dan berpindah di antaranya. Penyorotan adalah overlay saat render — tidak pernah menyuntikkan apa pun ke aliran SSH.
Font, tema, penyorotan
- Ukuran Font — stepper A-/A+ di menu terminal atau penggeser di Pengaturan → Tampilan; rentang 8–32 pt. Font Kustom di tab Tema bilah samping juga memungkinkan 6–72 pt per alias.
- Tema aplikasi — terang / gelap / sistem (seluruh aplikasi, bukan terminal).
- Tema terminal — lihat bagian Tema di bawah; tema berlaku per alias.
- Aturan penyorotan — Pengaturan → Terminal → Penyorotan Output. Tambahkan regex + warna, mis. mewarnai
ERRORmerah.
Snippet
Snippet adalah templat perintah yang dapat digunakan kembali dan dikirim ke sesi mana pun. Templat dapat menyematkan placeholder bertipe — ping -c {count:int=4} {host:ip} — dan menjalankan snippet semacam itu membuka dialog kecil yang menanyakan nilainya (placeholder int, ip, bool, dan enum mendapat input dan validasi yang sesuai). Snippet tanpa placeholder langsung dijalankan. Jalankan segera menentukan apakah Enter dikirim untuk Anda atau perintah hanya diletakkan di prompt untuk diedit.
Cara menjalankannya:
- Ctrl+Shift+S (Cmd+Shift+S di macOS) — pemilih dengan pencarian saat mengetik; Enter menjalankan kecocokan pertama.
- Snippet di menu terminal — pemilih yang sama tanpa keyboard.
- Tab Snippet di bilah samping terminal — yang terakhir digunakan di urutan teratas, satu klik untuk menjalankan, plus pintasan ke editor.
- Tombol snip yang disematkan di bilah pintasan seluler dan di keyboard DevOps, yang mode tertambatnya juga menawarkan lapisan ubin snippet — kisi ramah ketukan dengan snippet terbaru Anda di bagian atas.
Setiap snippet memiliki cakupan: terlihat untuk Semua host, satu Grup, atau satu Host. Filter Sistem opsional (Debian, RHEL, Arch, macOS…) mempersempitnya lebih lanjut, sehingga snippet apt hanya muncul di host yang terdeteksi sebagai keluarga Debian — deteksi berasal dari pemeriksaan saat login (lihat Wawasan host di bawah). Tampilkan hanya saat tersedia juga menyembunyikan snippet jika perintahnya dipastikan tidak ada di host. Sesi tanpa host SSH (lokal, serial, Telnet) hanya melihat snippet global.
Kelola snippet di Pengaturan → Terminal → Snippet: tambah, edit, duplikasi, dan hapus, atur cakupan, sistem, dan tanda jalankan-segera. Katalog bawaan berisi lebih dari seratus snippet siap pakai — per sistem (Debian, RHEL, Arch, Alpine, SUSE, BSD, macOS) plus set Docker, jaringan, penyimpanan, dan alat — diisi saat pertama kali dijalankan; edit atau hapus seperti snippet Anda sendiri.
Riwayat perintah dan pelengkapan otomatis
Setiap koneksi tersimpan mengingat riwayat perintahnya (jika Simpan riwayat perintah aktif). Panah atas memanggil kembali perintah sebelumnya, dan bidang pelengkapan otomatis menyarankan nama perintah yang tersedia di server — pelengkapan shell langsung, berbeda dari riwayat apa yang Anda ketik.
Wawasan host (vital langsung)
Setelah login pada sesi SSH, aplikasi diam-diam memeriksa host — nama OS, model CPU, dan jumlah core — lalu mulai memantau vital langsung: load average, memori, swap, dan penggunaan disk per titik mount, masing-masing digambar dengan bilah penggunaan yang berubah kuning di atas 75% dan merah di atas 90%.
- Tab Host di bilah samping terminal (tab paling kiri, dan default untuk sesi SSH) menampilkan semuanya sekilas.
- Baris yang sama muncul di dialog Info Koneksi.
- Pengaturan → Terminal → Pemantauan sumber daya (CPU/RAM/disk) mengaktifkan atau menonaktifkan pemantauan secara global dan mengatur interval penyegaran (5–300 dtk). Formulir koneksi dapat mengganti interval per host, dan dropdown Pemeriksaan sistem saat login memilih seberapa sering pemeriksaan penuh dijalankan: setiap koneksi, sekali sehari, sekali seminggu, atau dinonaktifkan.
Tab sesi
Setiap sesi — SSH, SFTP, lokal, serial, Telnet — hidup di sebuah tab. Tekan lama (seluler) atau klik kanan (desktop) sebuah tab, atau kartu di daftar Sesi Aktif, untuk menunya: Ganti nama, Info Koneksi, Mulai ulang sesi, dan Tutup tab. Mulai ulang sesi memutus koneksi dan menghubungkan kembali dari awal sambil mempertahankan tab — praktis setelah server di-reboot. Saat sesi jarak jauh terputus, menu terminal juga mendapat entri Hubungkan ulang yang membangun kembali koneksi di tempat (terminal lokal tidak menawarkannya — buka yang baru saja).
Bilah samping (panel kanan) — Host / Riwayat / Pelengkapan / Snippet / Tema
Di sebelah kanan terminal (Desktop / tablet) terdapat panel yang dapat dilipat dengan lima tab. Buka dengan panah di tepi kanan; ubah ukurannya dengan menyeret tepi kiri. Statusnya per alias — setiap koneksi tersimpan mengingat tab dan lebarnya sendiri.
- Host — tab default untuk sesi SSH: sistem yang terdeteksi, CPU, dan vital langsung. Lihat Wawasan host di atas.
- Riwayat — perintah yang baru diketik. Mengklik akan mengetikkan perintah ke terminal; tombol di sebelahnya menentukan apakah dikirim otomatis dengan Enter. Hapus riwayat juga ada di sini.
- Pelengkapan — saran nama perintah langsung dari pelengkapan shell server. Dapat dibisukan per alias (ikon lonceng).
- Snippet — snippet Anda untuk host ini, yang terakhir digunakan di urutan teratas. Lihat Snippet di atas.
- Tema — tampilan terminal. Lihat bagian di bawah.
Tema — tema terminal (435 skema)
Tema berlaku per alias — setiap koneksi memiliki latar belakang, warna teks, dan palet ANSI 16 warna sendiri (indeks yang sama dengan yang digunakan ls --color: standar 0–7 + terang 8–15).
- Katalog bawaan 435 tema — bidang Cari… memfilter berdasarkan nama. Setiap baris menampilkan latar belakang, warna teks, dan strip 16 sampel warna. Klik langsung menerapkan tema.
- Kustom (alias ini) — di desktop, bilah samping juga menyediakan pengeditan manual font, latar belakang, warna teks, dan 16 slot ANSI. Setiap slot punya reset sendiri (⟲); seluruh palet punya reset terpisah.
- Direktori biru di
ls --coloradalah ANSI 4 (BLUE) atau 12 (BRIGHT_BLUE) — untuk mengubahnya, pilih tema lain atau edit kedua sampel warna tersebut.
Android & iOS: seluruh bilah samping desktop digantikan oleh satu ikon palet di bilah atas terminal. Ketuk untuk membuka bottom sheet dengan katalog 435 tema yang sama, dapat dicari dan dengan pratinjau sampel warna langsung. Mengetuk sebuah baris menerapkan tema dan menutup sheet sehingga Anda langsung melihat hasilnya; tombol Atur ulang di bagian atas membuang semua penggantian sehingga alias kembali ke default-nya.
435 tema bawaan berasal dari koleksi sumber terbuka edcet/terminal-themes (MIT).