Term.Everything Đưa Ứng Dụng GUI Vào Terminal Thông Qua Wayland Compositor Tùy Chỉnh

Nhóm Cộng đồng BigGo
Term.Everything Đưa Ứng Dụng GUI Vào Terminal Thông Qua Wayland Compositor Tùy Chỉnh

Một dự án mã nguồn mở mới có tên Term.Everything đã thu hút sự chú ý của các nhà phát triển bằng cách cho phép các ứng dụng GUI chạy trực tiếp bên trong cửa sổ terminal. Được xây dựng từ đầu như một Wayland compositor xuất ra terminal thay vì màn hình, công cụ này cho phép người dùng chạy mọi thứ từ trình duyệt web đến trò chơi video thông qua kết nối SSH.

Kiến trúc Kỹ thuật:

  • Công nghệ Cốt lõi: Trình soạn thảo Wayland được xây dựng tùy chỉnh
  • Ngôn ngữ Lập trình: TypeScript với engine Bun , tối thiểu C++
  • Phương pháp Hiển thị: Ký tự giống ASCII (terminal cơ bản), hình ảnh độ phân giải đầy đủ ( Kitty , iTerm2 )
  • Phụ thuộc: Không yêu cầu phụ thuộc libwayland
  • Trạng thái Hiện tại: Phiên bản Beta (phiên bản 0.5.1 có sẵn)

Cách Tiếp Cận Cách Mạng Cho Điện Toán Từ Xa

Term.Everything áp dụng một cách tiếp cận hoàn toàn khác biệt so với các giải pháp remote desktop truyền thống. Thay vì chuyển tiếp toàn bộ phiên desktop, nó render các ứng dụng GUI riêng lẻ thành đầu ra terminal sử dụng nhiều phương pháp hiển thị khác nhau. Đối với các terminal cơ bản, nó chuyển đổi đồ họa thành các ký tự giống ASCII, trong khi các terminal tiên tiến hỗ trợ giao thức hình ảnh có thể hiển thị ứng dụng ở độ phân giải đầy đủ. Tính linh hoạt này làm cho nó đặc biệt có giá trị cho việc quản lý máy chủ từ xa và môi trường container hóa nơi mà việc chuyển tiếp GUI truyền thống có thể không khả thi.

Cộng đồng đã thể hiện sự nhiệt tình đáng kể cho các ứng dụng sáng tạo. Người dùng đã thành công trong việc chứng minh chạy Firefox, trình phát video, và thậm chí các trò chơi cổ điển như Doom trong các phiên terminal. Một showcase đặc biệt ấn tượng bao gồm việc chạy toàn bộ toolchain qua SSH đến một iPad, mở ra những khả năng mới cho quy trình phát triển di động.

Các Ứng Dụng Được Hỗ Trợ:

  • Trình duyệt web ( Firefox đã được thử nghiệm)
  • Trình phát video và các ứng dụng đa phương tiện
  • Các trò chơi cổ điển (tập shareware của Doom đã được xác nhận hoạt động)
  • Trình quản lý tệp và các tiện ích hệ thống
  • Công cụ phát triển (tính tương thích với VS Code đang trong quá trình hoàn thiện)
  • Bất kỳ ứng dụng GUI nào hỗ trợ giao thức Wayland

Đổi Mới Kỹ Thuật và Cân Nhắc Hiệu Suất

Nền tảng kỹ thuật của dự án như một Wayland compositor tùy chỉnh làm cho nó khác biệt so với các giải pháp dành riêng cho trình duyệt như Carbonyl hoặc Browsh. Phạm vi rộng hơn này cho phép hầu như bất kỳ ứng dụng GUI nào hoạt động, mặc dù có một số hạn chế. Xử lý đầu vào đặt ra những thách thức độc đáo vì các terminal chỉ cung cấp sự kiện keydown mà không có tín hiệu keyup tương ứng, đòi hỏi các giải pháp sáng tạo cho các ứng dụng phụ thuộc vào việc nhấn phím liên tục.

Hiệu suất tỷ lệ thuận trực tiếp với cài đặt độ phân giải terminal. Ở độ phân giải thấp hơn như 640x480, hệ thống chạy mượt mà, nhưng đầu ra 4K có thể tác động đáng kể đến tài nguyên hệ thống. Nhà phát triển lưu ý rằng tiếng ồn quạt trở nên đáng chú ý ở độ phân giải cao hơn, cho thấy việc sử dụng CPU đáng kể cho quá trình rendering.

Thông số hiệu suất:

  • Hiệu suất tối ưu: độ phân giải 640x480
  • Sử dụng tài nguyên cao: độ phân giải 4K (gây ra tiếng ồn quạt đáng kể)
  • Hỗ trợ nền tảng: Linux với hệ thống máy chủ X11 và Wayland
  • Truy cập từ xa: Hoạt động qua kết nối SSH
  • Hạn chế đầu vào: Không có sự kiện keyup, yêu cầu các giải pháp thay thế cho việc nhấn phím liên tục

Ứng Dụng Thực Tế và Phát Triển Tương Lai

Ngoài yếu tố mới lạ, Term.Everything giải quyết các tình huống thực tế nơi các giải pháp remote desktop truyền thống không đáp ứng được. Người dùng đã xác định các ứng dụng trong quản lý Docker container, quản trị máy chủ từ xa, và các tình huống chỉ có thể truy cập SSH. Công cụ này đặc biệt hữu ích để truy cập các giao diện quản trị dựa trên web trên các hệ thống từ xa mà không cần thiết lập VPN phức tạp hoặc chuyển tiếp cổng.

Tôi thực sự đã từng tunnel Netscape Navigator qua SSH đến desktop Commodore Amiga của mình thông qua máy chủ Xorg từ thời Internet dial-up 56K.

Lộ trình dự án cho thấy những kế hoạch đầy tham vọng, tiến triển từ Term some things qua Term most things để cuối cùng đạt được Term everything. Phát triển hiện tại tập trung vào việc mở rộng khả năng tương thích ứng dụng và triển khai các giao thức Wayland còn thiếu như hỗ trợ clipboard. Nhà phát triển đã bày tỏ sự quan tâm trong việc tạo ra các phiên bản macOS, mặc dù điều này sẽ đòi hỏi các cách tiếp cận khác nhau sử dụng API màn hình ảo hoặc framework accessibility.

Dự án đại diện cho một giao điểm thú vị giữa tiện ích thực tế và nghệ thuật kỹ thuật, chứng minh cách các cách tiếp cận sáng tạo đối với các giao thức đã được thiết lập có thể giải quyết các thách thức điện toán hiện đại trong khi cung cấp một trải nghiệm không thể phủ nhận là thú vị.

Tham khảo: Term.Everything