Terminal
DR-Terminal đi kèm trình giả lập VT100/xterm riêng được viết từ đầu bằng Kotlin — không dùng WebView. Nó hỗ trợ xterm-256color, alt buffer (vim/less/nano), clipboard OSC 52, sự kiện focus, và theo dõi chuột (mc, htop).
Bàn phím và phím tắt
| Phím tắt | Hành động |
|---|---|
| Ctrl+C — khi văn bản đang được chọn | Sao chép vùng chọn vào clipboard. Khi không có vùng chọn, tín hiệu SIGINT bình thường tới tiến trình từ xa. |
| Enter — khi văn bản đang được chọn | Phím tắt sao chép thay thế (tiện trên bàn phím không có Ctrl). |
| Nhấp chuột phải / menu Copy | Menu ngữ cảnh sau khi chọn — luôn sẵn có. |
| Ctrl+V | Dán. Nội dung clipboard nhiều dòng sẽ mở một hộp thoại xác nhận dán nhiều dòng. |
| Shift+Insert | Dán — thói quen cổ điển của X11/Windows. Phím Insert đơn vẫn tới được shell. |
| Shift+Delete | Sao chép vùng chọn rồi xóa nó (kiểu cắt). |
| Ctrl+F | Mở thanh tìm kiếm (xem Tìm trong output). Shell không bao giờ thấy lần nhấn phím này. |
| Ctrl+Shift+S | Mở bộ chọn đoạn lệnh (xem Đoạn lệnh). Phím Ctrl+S đơn vẫn tới được shell. |
| Thanh phím tắt | esc, ctrl, tab, các phím mũi tên, các ký hiệu shell thông dụng, phím snip và nút chuyển ⌨ — hữu ích trên di động. Các phím chức năng và điều hướng nằm ở lớp fn của bàn phím DevOps và hàng phím F tùy chọn. |
| Cỡ chữ | Bộ tăng giảm A- / A+ trong menu terminal; phạm vi 8–32 pt. |
Trên macOS, Cmd hoạt động ở mọi nơi có Ctrl được liệt kê ở trên: Cmd+C, Cmd+V, Cmd+F và Cmd+Shift+S hành xử như các phím tắt Ctrl tương ứng.
Bàn phím DevOps (Android & iOS)
Bàn phím hệ thống chống lại bạn trong terminal: tự động sửa lỗi làm hỏng sudo -rf, các ký hiệu shell nằm sâu hai lớp, còn các bố cục phi Latinh thường không có ASCII. DR-Terminal có bàn phím DevOps luôn-ASCII của riêng mình, do ứng dụng vẽ và gửi phím thẳng vào terminal — IME hệ thống không bao giờ thấy chúng.
- Dọc — một dock cổ điển ở đáy màn hình.
- Ngang — chế độ tách: hai cụm phím vừa ngón cái ở mép trái và phải, vẽ như kính mờ phủ lên terminal, nên toàn bộ chiều rộng vẫn hiển thị phiên làm việc.
Các lớp: chữ thường, chữ hoa (Shift), số, ký hiệu shell (| ~ $ & ' " \ …`) và lớp fn/nav (F1–F12, mũi tên, Home/End, PgUp/PgDn). Ctrl/Alt/Shift có tính dính: chạm một lần kích hoạt cho phím kế tiếp, chạm đúp để khóa. Giữ ⌫, mũi tên hoặc phím cách để lặp phím; nhấn giữ các phím có dấu nhỏ ở góc để nhập ký tự thay thế.
- Tay nắm (viên thuốc) ở trên cùng chuyển FULL ↔ MINI — MINI chỉ giữ phần thiết yếu (Esc, Tab, Ctrl, mũi tên, ⌫, ↵) cho các phiên htop/log. Chế độ ngang nhớ trạng thái riêng và khởi động ở MINI.
- Kéo tay nắm để di chuyển một cụm; nó hít vào mép gần nhất. Thả cụm này lên cụm kia để gộp thành một bàn phím nổi duy nhất; viên thuốc tách sẽ chia chúng ra lại.
- Vuốt xuống trên các phím để ẩn bàn phím; nút ⌨ nổi đưa nó trở lại. Phím ⌨ chuyển sang bàn phím hệ thống khi bạn cần dấu thanh hoặc emoji.
Cài đặt → Bàn phím (di động): Bàn phím mặc định — Auto chọn bàn phím DevOps khi ngôn ngữ hệ thống phi Latinh (Ả Rập, Do Thái, CJK…), ngược lại dùng IME hệ thống; Bố cục — Auto/QWERTY/QWERTZ/AZERTY; thanh trượt Độ mờ và Cỡ phím; Hiện phím F — một hàng F1–F10 luôn hiển thị phía trên bàn phím, tiện cho các luồng làm việc với mc/htop. Mọi tùy chọn bàn phím đều đi theo bản sao lưu cấu hình mã hóa khi xuất từ điện thoại hoặc máy tính bảng.
Chọn, sao chép, dán
Desktop: kéo chuột để chọn. Nhấp đúp chọn một từ, nhấp ba lần chọn một dòng. Thả ra sẽ sao chép qua các phím tắt ở trên; nhấp chuột phải mở một menu.
Android & iOS: nhấn giữ bất kỳ đâu trong terminal để bắt đầu một vùng chọn, sau đó kéo để mở rộng và thả để sao chép — văn bản nằm trong clipboard hệ thống. Một lần chạm ngắn vẫn truyền tới shell; một cú vuốt vẫn cuộn lịch sử, nên các cử chỉ thông thường vẫn hoạt động.
- Biểu tượng dán trên thanh trên cùng của terminal — một lần chạm dán clipboard tại vị trí con trỏ. Nếu clipboard trống, một snackbar trung tính Nothing to paste sẽ hiện ra.
- Chọn văn bản trong menu terminal — một hộp kiểm giữ chế độ chọn luôn bật cho đến khi bạn tắt nó, nên mọi thao tác kéo đều chọn văn bản thay vì cuộn hay chạm xuyên xuống shell.
- Nhấn giữ trên dòng dấu nhắc (dòng mà con trỏ đang ở, và chỉ khi bạn không cuộn vào lịch sử) sẽ dán thay vì bắt đầu một vùng chọn — tự nhiên khi bạn chỉ muốn thả clipboard vào nơi đang gõ.
OSC 52 cho phép các chương trình từ xa (tmux, vim, fzf) sao chép vào clipboard hệ thống của bạn qua một chuỗi escape — hai chiều.
Dán nhiều dòng: khi clipboard của bạn chứa các ký tự xuống dòng, bạn sẽ thấy một hộp thoại xem trước dán nhiều dòng — bảo vệ khỏi việc dán các lệnh mà bạn chưa kiểm tra.
Cuộn ngược và lịch sử
Bộ đệm cuộn ngược chứa tối đa 1000 dòng. Bánh xe chuột hoặc kéo chạm để cuộn; con trỏ rời khung nhìn đúng cách (hành vi xterm) và mọi vùng chọn cuộn theo văn bản.
Clear history nằm trong tab History của thanh bên và xóa lịch sử lệnh đã lưu của kết nối đó — nó không đụng tới vùng cuộn ngược trên màn hình.
Một thanh cuộn xuất hiện ở mép phải của terminal (Desktop) — nắm nó bằng chuột để cuộn qua lịch sử; Android và iOS cuộn bằng cảm ứng. Tốc độ cuộn bánh xe có thể cấu hình trong Settings → Terminal (số dòng trên một nấc bánh xe).
Alt buffer (ứng dụng toàn màn hình)
Các chương trình như vim, less, nano, htop, mc chuyển sang alt buffer — một màn hình riêng biến mất khi thoát mà không làm bẩn vùng cuộn ngược chính.
Tìm trong output
Nhấn Ctrl+F (Cmd+F trên macOS) để mở thanh tìm kiếm. Nó tìm trong vùng cuộn ngược theo thời gian thực, làm nổi bật mọi kết quả khớp và di chuyển giữa chúng. Việc làm nổi bật là một lớp phủ tại thời điểm render — nó không bao giờ chèn bất cứ thứ gì vào luồng SSH.
Phông chữ, chủ đề, làm nổi bật
- Cỡ chữ — bộ tăng giảm A-/A+ trong menu terminal hoặc thanh trượt trong Settings → Appearance; phạm vi 8–32 pt. Phông Custom trong tab Theme của thanh bên còn cho phép 6–72 pt theo từng bí danh.
- Chủ đề giao diện — sáng / tối / theo hệ thống (toàn ứng dụng, không phải terminal).
- Chủ đề terminal — xem phần Theme bên dưới; chủ đề là theo từng bí danh.
- Quy tắc làm nổi bật — Settings → Terminal → Output highlighting. Thêm regex + màu, ví dụ tô
ERRORmàu đỏ.
Đoạn lệnh
Đoạn lệnh là các mẫu lệnh dùng lại được mà bạn có thể gửi vào bất kỳ phiên nào. Một mẫu có thể chứa các chỗ giữ có kiểu — ping -c {count:int=4} {host:ip} — và chạy một đoạn lệnh như vậy sẽ mở một hộp thoại nhỏ hỏi các giá trị (các chỗ giữ int, ip, bool và enum nhận được ô nhập và kiểm tra hợp lệ tương ứng). Một đoạn lệnh không có chỗ giữ sẽ chạy ngay lập tức. Chạy ngay (gửi Enter) quyết định Enter có được gửi giúp bạn hay lệnh chỉ nằm ở dấu nhắc để bạn chỉnh sửa.
Các cách chạy một đoạn lệnh:
- Ctrl+Shift+S (Cmd+Shift+S trên macOS) — một bộ chọn tìm-khi-gõ; Enter chạy kết quả khớp đầu tiên.
- Đoạn lệnh trong menu terminal — cùng bộ chọn đó nhưng không cần bàn phím.
- Tab Snippets trong thanh bên terminal — dùng gần đây xếp trước, một cú nhấp để chạy, cùng một lối tắt tới trình chỉnh sửa.
- Phím snip được ghim trên thanh phím tắt di động và trên bàn phím DevOps, mà ở chế độ dock còn cung cấp một lớp ô đoạn lệnh — một lưới thân thiện với thao tác chạm, đưa các đoạn lệnh gần đây lên ngay trước mắt.
Mỗi đoạn lệnh có một phạm vi: hiển thị cho Tất cả máy chủ, một Nhóm, hoặc một Máy chủ duy nhất. Bộ lọc Hệ thống tùy chọn (Debian, RHEL, Arch, macOS…) thu hẹp thêm nữa, nên các đoạn lệnh apt chỉ xuất hiện trên những máy chủ được phát hiện thuộc họ Debian — việc phát hiện đến từ phép dò khi đăng nhập (xem Thông tin máy chủ bên dưới). Chỉ hiện khi khả dụng còn ẩn một đoạn lệnh khi lệnh của nó được xác nhận là không có trên máy chủ. Các phiên không có máy chủ SSH (cục bộ, serial, Telnet) chỉ thấy các đoạn lệnh toàn cục.
Quản lý đoạn lệnh trong Cài đặt → Terminal → Đoạn lệnh: thêm, sửa, nhân bản và xóa, đặt phạm vi, hệ thống và cờ chạy-ngay. Một danh mục dựng sẵn với hơn một trăm đoạn lệnh làm sẵn — theo hệ thống (Debian, RHEL, Arch, Alpine, SUSE, BSD, macOS) cùng các bộ Docker, mạng, lưu trữ và công cụ — được nạp trong lần chạy đầu tiên; hãy sửa hoặc xóa chúng như của chính bạn.
Lịch sử lệnh và tự động hoàn thành
Mỗi kết nối đã lưu ghi nhớ lịch sử lệnh của nó (nếu Save history đang bật). Phím mũi tên lên gọi lại các lệnh trước đó, và trường tự động hoàn thành gợi ý các tên lệnh có sẵn trên máy chủ — hoàn thành trực tiếp từ shell, khác với lịch sử những gì bạn đã gõ.
Thông tin máy chủ (chỉ số trực tiếp)
Sau khi đăng nhập trên một phiên SSH, ứng dụng lặng lẽ dò máy chủ — tên hệ điều hành, kiểu CPU và số lõi — rồi bắt đầu lấy các chỉ số trực tiếp: load average, bộ nhớ, swap và mức dùng đĩa theo từng điểm gắn kết, mỗi mục được vẽ bằng một thanh mức dùng chuyển sang màu hổ phách khi vượt 75% và màu đỏ khi vượt 90%.
- Tab Host của thanh bên terminal (tab ngoài cùng bên trái, và là tab mặc định cho các phiên SSH) cho bạn thấy mọi thứ chỉ trong một cái nhìn.
- Cùng những dòng đó xuất hiện trong hộp thoại Thông tin kết nối.
- Cài đặt → Terminal → Giám sát tài nguyên (CPU/RAM/đĩa) bật hoặc tắt việc lấy chỉ số trên toàn ứng dụng và đặt khoảng thời gian làm mới (5–300 giây). Biểu mẫu kết nối có thể ghi đè khoảng thời gian đó theo từng máy chủ, và danh sách thả xuống Kiểm tra hệ thống khi đăng nhập của nó chọn tần suất chạy phép dò đầy đủ: mỗi lần kết nối, mỗi ngày một lần, mỗi tuần một lần, hoặc đã tắt.
Tab phiên
Mỗi phiên — SSH, SFTP, cục bộ, serial, Telnet — sống trong một tab. Nhấn giữ (di động) hoặc nhấp chuột phải (desktop) vào một tab, hoặc vào một ô trong danh sách Active Sessions, để mở menu của nó: Đổi tên, Thông tin kết nối, Khởi động lại phiên và Đóng thẻ. Khởi động lại phiên ngắt kết nối rồi kết nối lại từ đầu trong khi vẫn giữ tab — tiện sau khi máy chủ khởi động lại. Khi một phiên từ xa bị rớt, menu terminal cũng có thêm mục Kết nối lại để thiết lập lại kết nối ngay tại chỗ (terminal cục bộ không có mục này — hãy mở một cái mới).
Thanh bên (khung phải) — Host / History / Complete / Snippets / Theme
Bên phải terminal (Desktop / tablet) có một khung có thể thu gọn với năm tab. Mở nó bằng mũi tên ở mép phải; thay đổi kích thước bằng cách kéo mép trái. Trạng thái là theo từng bí danh — mỗi kết nối đã lưu ghi nhớ tab và chiều rộng của nó.
- Host — tab mặc định cho các phiên SSH: hệ thống được phát hiện, CPU và các chỉ số trực tiếp. Xem Thông tin máy chủ ở trên.
- History — các lệnh được gõ gần đây. Nhấp sẽ gõ lệnh vào terminal; nút bật/tắt bên cạnh nó quyết định có tự động gửi bằng Enter hay không. Clear history cũng nằm ở đây.
- Complete — các gợi ý tên lệnh trực tiếp từ tính năng hoàn thành của shell trên máy chủ. Có thể tắt tiếng theo từng bí danh (biểu tượng chuông).
- Snippets — các đoạn lệnh của bạn cho máy chủ này, dùng gần đây xếp trước. Xem Đoạn lệnh ở trên.
- Theme — giao diện terminal. Xem phần bên dưới.
Theme — chủ đề terminal (435 bộ)
Chủ đề là theo từng bí danh — mỗi kết nối có nền, tiền cảnh và bảng màu ANSI 16 màu riêng (cùng các chỉ số mà ls --color dùng: chuẩn 0–7 + sáng 8–15).
- Danh mục tích hợp gồm 435 chủ đề — trường Search… lọc theo tên. Mỗi dòng hiển thị nền, tiền cảnh và một dải 16 ô màu. Nhấp để áp dụng chủ đề ngay lập tức.
- Tùy chỉnh (bí danh này) — trên desktop, thanh bên còn cho phép chỉnh sửa thủ công phông chữ, nền, tiền cảnh và 16 ô ANSI. Mỗi ô có nút đặt lại riêng (⟲); toàn bộ bảng màu có một nút đặt lại riêng.
- Các thư mục màu xanh trong
ls --colorlà ANSI 4 (BLUE) hoặc 12 (BRIGHT_BLUE) — để đổi chúng, hãy chọn chủ đề khác hoặc chỉnh hai ô màu đó.
Android & iOS: toàn bộ thanh bên desktop được thay bằng một biểu tượng bảng màu trên thanh trên cùng của terminal. Chạm vào nó để mở một bottom sheet với cùng danh mục 435 chủ đề, có thể tìm kiếm và có xem trước ô màu trực tiếp. Chạm một dòng sẽ áp dụng chủ đề và đóng sheet để bạn thấy kết quả ngay lập tức; nút Reset ở trên cùng bỏ mọi tùy chỉnh ghi đè để bí danh quay về các giá trị mặc định của nó.
435 chủ đề tích hợp đến từ bộ sưu tập mã nguồn mở edcet/terminal-themes (MIT).