Trình duyệt web TUI Chawan 0.2.0
(chawan.net)- Trình duyệt web chạy trên terminal Chawan 0.2.0 đã được phát hành và có thể cài đặt bằng source tarball, binary tĩnh cho Linux amd64 và gói
.deb - Vào ngày 25 tháng 6 năm 2025, bản phát hành vá 0.2.1 cũng được cung cấp thêm để sửa một số vấn đề theo từng nền tảng quan trọng của phiên bản này
- Người bảo trì gói chỉ cần sắp xếp các phụ thuộc runtime bắt buộc xoay quanh libssh2, libbrotli và OpenSSL hoặc LibreSSL
- zlib, libseccomp, termcap/ncurses và libcurl không còn cần thiết nữa; nếu có vấn đề khi đóng gói thì nên liên hệ upstream thay vì dùng bản vá tạm thời
- Nhánh v0.2 chỉ nhận sửa lỗi, còn tính năng mới sẽ tiếp tục trên master; bản phát hành tiếp theo sẽ hướng đến cải thiện hiệu năng, độ chính xác của layout và tính tiện dụng của UI
Tệp phát hành Chawan 0.2.0
- Chawan 0.2.0 đã được phát hành
- Source tree tarball được cung cấp tại v0.2.0.tar.gz
- Cách biên dịch cần tham khảo tệp README
- Bản phân phối binary tĩnh cho Linux amd64 cũng được cung cấp
- Bản phân phối binary tĩnh
- Để cài đặt, giải nén archive vào vị trí mong muốn rồi chạy
make installvới quyền root - Gỡ bỏ bằng
make uninstall
- Cùng bản phân phối đó cũng có thể tải dưới dạng gói .deb
Bản phát hành vá 0.2.1
- Trong thông báo bổ sung ngày 25 tháng 6 năm 2025, một bản phát hành vá đã được cung cấp để sửa một số vấn đề theo từng nền tảng quan trọng của 0.2.0
- Có thể xem bản phát hành vá tại chawan-0-2-1.html
Phụ thuộc dành cho người bảo trì gói
- Các phụ thuộc runtime bắt buộc hiện tại như sau
- libssh2
- libbrotli
- Chính xác hơn là libbrotlicommon và libbrotlidec
- OpenSSL hoặc LibreSSL
- Khuyến nghị OpenSSL 3.0 trở lên
- LibreSSL đã được thử nghiệm với phiên bản đi kèm OpenBSD 7.7
- Các phụ thuộc từng có ở bản phát triển trước đó nay không còn áp dụng và có thể loại bỏ
- zlib
- libseccomp
- termcap/ncurses
- libcurl
- Nếu phát sinh vấn đề khi đóng gói Chawan, nên liên hệ trước khi áp dụng bản vá tạm thời
- Có khả năng vấn đề có thể được giải quyết ở upstream
Vận hành nhánh và công việc tiếp theo
- 0.2.0 được gắn phiên bản trong trạng thái đã bao gồm mọi tính năng mong muốn cho MVP và không có lỗi nghiêm trọng nào đã biết
- Nhánh v0.2 trên git chỉ nhận sửa lỗi
- Công việc phát triển tính năng mới tiếp tục trên nhánh master
- Bản phát hành tiếp theo đặt mục tiêu cải thiện hiệu năng và độ chính xác của mô-đun layout, đồng thời làm UI thân thiện hơn với người dùng
1 bình luận
Ý kiến trên Hacker News
Luôn rất vui khi có một cách để không phải dùng thêm một engine Blink khác cho những cuộc “side quest” điều tra ngắn. Dự định sẽ thử sau giờ học ;)
Nếu chưa ai nhắc đến, có carbonyl, bản port Chromium cho terminal, là một mẹo đặc biệt hay cho các môi trường không có sixel: https://github.com/fathyb/carbonyl
Tuy nhiên vì tác giả gốc không còn thời gian quay lại chăm chút nên nó vẫn ở trạng thái rất cơ bản, thiếu nhiều tính năng như phím tắt bàn phím hay lưu tệp. Dù vậy, việc mang lại khả năng tương thích web đầy đủ thật sự rất tuyệt, và mong có ai đó biết Rust tiếp quản lại. Khi tôi xem vài tháng trước thì không thấy fork nào có đà phát triển cả
Mong tác giả vẫn bình an. Tôi muốn nói rằng sản phẩm của anh ấy thật sự rất tốt. Nói chung tôi thật sự ghét chiến tranh
@shiomiru
Tôi tò mò bạn nghĩ tài liệu nào là tốt nhất để học các khái niệm liên quan đến TTY kiểu này. Trả phí hay miễn phí đều được
Ví dụ tôi biết https://www.linusakesson.net/programming/tty/index.php, nhưng nó không đi đến termcap/terminfo/curses
Một bình luận có nhắc đến http://www.amazon.com/termcap-terminfo-OReilly-Nutshell-Lind..., và cũng thấy có bản online tại https://www.scribd.com/document/831486848/Termcap-and-Termin...
Với các escape sequence thực tế, ctlseqs.ms[1] của XTerm là tài liệu cực kỳ quý giá. Tôi cũng lấy được nhiều ý tưởng từ notcurses[2] của nick black, và đặc biệt khuyên đọc ghi chú về “sprixels”[3]
[1]: https://invisible-island.net/xterm/ctlseqs/ctlseqs.html
[2]: https://nick-black.com/dankwiki/index.php/Notcurses
[3]: https://nick-black.com/dankwiki/index.php/Theory_and_Practic...
Làm thật sự tốt. Tôi định dùng thử cho một phần công việc hằng ngày để xem có thể đi xa đến đâu. Hiển thị HN trông đặc biệt ổn
Cực kỳ hay! Việc nó được viết bằng Nim cũng rất thú vị
Khi chạy
cha example.com, tôi không biết dùng các lệnh như hjkl như thế nào. Các phím duy nhất có tác dụng là số, và số được hiển thị ở góc dưới bên trái. Tôi cũng chưa biết dùng chúng để làm gì. Không rõ tôi đã bỏ sót điều hiển nhiên nào trong hướng dẫn sử dụng, hay đây có thể là lỗiTôi build từ source bằng Nim 2.24 trên MacOS Sequoia 15.5 Apple Silicon. Trang tải đúng, nhưng các phím lệnh không hoạt động
Tôi đã biên dịch từ source trên Lenovo M8 thế hệ 4 chạy Termux, và chỉ cần cài Nim. Việc cài đặt diễn ra gọn gàng dù không có người dùng
rootTìm hiểu thêm một chút thì có vẻ Chrome và Safari giờ cũng không còn vượt qua hoàn toàn Acid2 và Acid3 nữa
Tôi luôn chú ý để website của mình hiển thị đẹp cả trong Links, và giờ có vẻ đã có thêm một ứng viên mới
Khi hỗ trợ một phần CSS thì ngược lại còn khó hơn một chút. Trước đây links bỏ qua toàn bộ margin và padding, nên có thể dùng việc đó để hiển thị các phần tử danh sách inline như menu gọn gàng hơn, nhưng giờ khoảng cách giữa các phần tử lại trở thành vấn đề
Dù vậy nếu thật sự cần CSS tùy chỉnh cho hiển thị dạng lưới, chawan hỗ trợ tính năng media
gridtiêu chuẩn: https://developer.mozilla.org/en-US/docs/Web/CSS/@media/gridTôi là người dùng w3m lâu năm. Thử qua thì thấy có thể sẽ thích nó. Rất ổn
Tôi tò mò việc không có chức năng “mở URL”, tức thanh địa chỉ, có phải là lựa chọn thiết kế có chủ ý không
Tuyệt vời
Giờ có vẻ không dùng termcap/ncurses nữa, tôi tò mò liệu có đang tự xử lý terminal không
Ban đầu tôi bắt đầu với termcap vì đã quen qua w3m. Nhưng termcap là một giao diện cũ, và không thể mô tả truecolor, thuộc tính duy nhất hữu ích trong terminal hiện đại. Ưu điểm của nó chỉ kiểu “biết đâu lại hoạt động trên terminal phần cứng thập niên 80”, nghe thì hay nhưng không đáng để chấp nhận thêm các chế độ lỗi
Vì vậy thay vì chuyển sang terminfo, tôi đã đổi hẳn sang dựa trên truy vấn terminal, thứ vốn cũng cần vì các lý do khác. Vẫn còn cơ sở dữ liệu terminal tích hợp để phát hiện các giá trị TERM được biết là không tương thích với XTerm. Nhưng nếu terminal trả lời truy vấn đúng, nó sẽ hoạt động ngay cả khi giá trị TERM không được biết đến
Tôi há hốc khi thấy HN tải ngay lần đầu trên Termux. Công trình rất tuyệt
https://lists.sr.ht/~bptato/chawan-devel/%3CD9S40OS2QWHL.PXQ...
Chủ yếu là để sửa mũi tên vote. Hiện tại background-image chỉ render placeholder