เว็บเบราว์เซอร์ TUI Chawan 0.2.0
(chawan.net)- เว็บเบราว์เซอร์แบบเทอร์มินัล Chawan 0.2.0 เปิดตัวแล้ว และสามารถติดตั้งได้จากซอร์ส tarball, ไบนารีแบบสแตติกสำหรับ amd64 Linux และแพ็กเกจ
.deb - เมื่อวันที่ 25 มิถุนายน 2025 มีแพตช์รีลีส 0.2.1 เพิ่มเติม ซึ่งแก้ไข ปัญหาเฉพาะแพลตฟอร์ม สำคัญบางส่วนของเวอร์ชันนี้
- ผู้ดูแลแพ็กเกจสามารถจัดระเบียบ dependency ที่จำเป็นตอนรันไทม์ให้เน้นที่ libssh2, libbrotli, OpenSSL หรือ LibreSSL ได้
- ไม่จำเป็นต้องใช้ zlib, libseccomp, termcap/ncurses และ libcurl อีกต่อไป และหากมีปัญหาเรื่องการแพ็กเกจ แนะนำให้ติดต่อ upstream แทนการใส่แพตช์ชั่วคราว
- สาขา v0.2 จะรับเฉพาะ การแก้บั๊ก เท่านั้น ส่วนฟีเจอร์ใหม่จะพัฒนาต่อบน master และรีลีสถัดไปตั้งเป้าปรับปรุงประสิทธิภาพ·ความถูกต้องของเลย์เอาต์ และความใช้งานง่ายของ UI
ไฟล์เผยแพร่ของ Chawan 0.2.0
- Chawan 0.2.0 ถูกรีลีสแล้ว
- ซอร์สทรี tarball มีให้ในรูปแบบ v0.2.0.tar.gz
- วิธีคอมไพล์ให้ดูที่ไฟล์ README
- มีดิสทริบิวชันไบนารีแบบสแตติกสำหรับ amd64 Linux ให้ด้วย
- ดิสทริบิวชันไบนารีแบบสแตติก
- หากต้องการติดตั้ง ให้แตก archive ไปยังตำแหน่งที่ต้องการ แล้วรัน
make installด้วยสิทธิ์ root - ถอนการติดตั้งด้วย
make uninstall
- ดิสทริบิวชันเดียวกันสามารถรับได้ในรูปแบบ แพ็กเกจ .deb เช่นกัน
แพตช์รีลีส 0.2.1
- ในประกาศเพิ่มเติมเมื่อวันที่ 25 มิถุนายน 2025 มีแพตช์รีลีสที่แก้ไข ปัญหาเฉพาะแพลตฟอร์ม สำคัญบางส่วนของ 0.2.0
- ดูแพตช์รีลีสได้ที่ chawan-0-2-1.html
Dependency สำหรับผู้ดูแลแพ็กเกจ
- dependency ตอนรันไทม์ ที่จำเป็นในปัจจุบันมีดังนี้
- libssh2
- libbrotli
- ถ้าระบุให้แม่นยำคือ libbrotlicommon และ libbrotlidec
- OpenSSL หรือ LibreSSL
- แนะนำให้ใช้ OpenSSL 3.0 ขึ้นไป
- LibreSSL ได้ทดสอบกับเวอร์ชันที่รวมอยู่ใน OpenBSD 7.7
- dependency ที่มีในเวอร์ชันพัฒนาก่อนหน้านี้ไม่เกี่ยวข้องแล้วและสามารถเอาออกได้
- zlib
- libseccomp
- termcap/ncurses
- libcurl
- หากเกิดปัญหาระหว่างการแพ็กเกจ Chawan แนะนำให้ติดต่อก่อน ก่อนที่จะใช้แพตช์ชั่วคราว
- มีความเป็นไปได้ที่จะสามารถแก้ปัญหาได้ที่ upstream
การดูแลสาขาและงานถัดไป
- 0.2.0 รวมฟีเจอร์ทั้งหมดที่ต้องการสำหรับ MVP และได้รับการกำหนดเวอร์ชันในสภาพที่ไม่มีบั๊กร้ายแรงที่ทราบอยู่
- สาขา v0.2 ใน git จะรับเฉพาะการแก้บั๊กเท่านั้น
- งานฟีเจอร์ใหม่จะดำเนินต่อบน สาขา master
- รีลีสถัดไปตั้งเป้าปรับปรุงประสิทธิภาพและความถูกต้องของโมดูลเลย์เอาต์ และทำให้ UI เป็นมิตรกับผู้ใช้มากขึ้นอีกเล็กน้อย
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
ยินดีเสมอที่มีวิธีไม่ต้องใช้เอนจิน Blink อีกตัวสำหรับไซด์เควสต์สั้น ๆ เพื่อสำรวจอะไรบางอย่าง ว่าจะลองทดสอบหลังเลิกเรียน ;)
ถ้ายังไม่มีใครพูดถึง มีแฮ็กที่ดีเป็นพิเศษสำหรับสภาพแวดล้อมที่ไม่มี sixel คือ carbonyl ซึ่งเป็นพอร์ตเทอร์มินัลของ Chromium: https://github.com/fathyb/carbonyl
แต่ผู้สร้างดั้งเดิมไม่มีเวลากลับมาดูแลต่อแล้ว จึงยังอยู่ในสภาพพื้นฐานมาก และขาดฟีเจอร์จำนวนมาก เช่น คีย์ลัดและการบันทึกไฟล์ ถึงอย่างนั้น การที่มันนำ ความเข้ากันได้กับเว็บแบบเต็มรูปแบบ มาให้ก็เจ๋งจริง ๆ และหวังว่าจะมีใครที่ทำ Rust เป็นมารับช่วงต่อ ตอนที่ผมดูเมื่อไม่กี่เดือนก่อน ยังไม่เห็น fork ไหนที่มีแรงขับเคลื่อนจริงจัง
หวังว่าเขาจะปลอดภัย อยากบอกว่างานของเขาดีมากจริง ๆ โดยรวมแล้วเกลียดสงครามมาก
@shiomiru
อยากรู้ว่าคุณคิดว่าแหล่งข้อมูลไหนดีที่สุดสำหรับเรียนรู้ คอนเซปต์เกี่ยวกับ TTY แบบนี้ จะเสียเงินหรือฟรีก็ได้
เช่น ผมรู้จัก https://www.linusakesson.net/programming/tty/index.php แต่ไม่ได้ครอบคลุมถึง termcap/terminfo/curses
มีคอมเมนต์หนึ่งพูดถึง http://www.amazon.com/termcap-terminfo-OReilly-Nutshell-Lind... และเห็นว่ามีฉบับออนไลน์ที่ https://www.scribd.com/document/831486848/Termcap-and-Termin... ด้วย
สำหรับ escape sequence จริง ๆ แล้ว ctlseqs.ms[1] ของ XTerm เป็นแหล่งข้อมูลที่ล้ำค่ามาก ผมยังได้ไอเดียจำนวนมากจาก notcurses[2] ของ nick black และขอแนะนำโน้ตเกี่ยวกับ “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...
ทำได้ดีมาก ตั้งใจจะลองใช้กับงานประจำวันบางส่วนเพื่อดูว่าไปได้ไกลแค่ไหน การแสดงผล HN ดูดีเป็นพิเศษ
เจ๋งมาก! ดีใจที่เห็นว่าเขียนด้วย Nim
พอรัน
cha example.comแล้วผมไม่รู้ว่าจะใช้คำสั่งอย่าง hjkl ยังไง ปุ่มที่มีผลมีแค่ตัวเลข และตัวเลขจะแสดงที่มุมซ้ายล่าง ยังไม่รู้เหมือนกันว่ามันเอาไว้ทำอะไร สงสัยว่าผมพลาดอะไรที่ชัดเจนในคู่มือการใช้งาน หรืออาจเป็นบั๊กผม build จากซอร์สด้วย Nim 2.24 บน MacOS Sequoia 15.5 Apple Silicon หน้าโหลดได้ถูกต้อง แต่ ปุ่มคำสั่ง ไม่ทำงาน
ลองคอมไพล์จากซอร์สบน Lenovo M8 รุ่นที่ 4 ที่รัน Termux อยู่ และต้องติดตั้งแค่ Nim เท่านั้น การติดตั้งเป็นไปอย่างเรียบร้อยดี แม้จะไม่มีผู้ใช้
rootลองขุดดูนิดหน่อย ดูเหมือนตอนนี้ Chrome กับ Safari ก็ผ่าน Acid2 และ Acid3 ได้ไม่สมบูรณ์แล้วเหมือนกัน
ผมคอยใส่ใจเสมอให้เว็บไซต์ของตัวเองแสดงผลดีใน Links ด้วย ตอนนี้เหมือนจะมีผู้ท้าชิงใหม่แล้ว
พอรองรับ CSS บางส่วน กลับทำให้ยากขึ้นเล็กน้อย เมื่อก่อน links จะเมิน margin และ padding ทั้งหมด จึงใช้แสดง องค์ประกอบรายการแบบอินไลน์ อย่างเมนูให้ดูสะอาดขึ้นได้ แต่ตอนนี้ช่องว่างระหว่างองค์ประกอบกลายเป็นปัญหา
แต่ถ้าต้องการ CSS แบบกำหนดเองสำหรับการแสดงผลแบบกริดจริง ๆ chawan รองรับ media feature มาตรฐาน
grid: https://developer.mozilla.org/en-US/docs/Web/CSS/@media/gridเป็นผู้ใช้ w3m มานาน ลองใช้แล้วคิดว่าน่าจะชอบได้ ดีมากทีเดียว
สงสัยว่าการไม่มีฟีเจอร์ “เปิด URL” หรือก็คือ แถบที่อยู่ เป็นการออกแบบโดยตั้งใจหรือเปล่า
ยอดเยี่ยม
ตอนนี้ดูเหมือนจะไม่ใช้ termcap/ncurses แล้ว เลยสงสัยว่ากำลังจัดการ เทอร์มินัล เองโดยตรงหรือเปล่า
ตอนแรกเริ่มด้วย termcap เพราะคุ้นเคยอยู่แล้วจาก w3m แต่ termcap เป็นอินเทอร์เฟซเก่า และอธิบาย true color ซึ่งเป็นคุณสมบัติเดียวที่มีประโยชน์ในเทอร์มินัลยุคใหม่ไม่ได้ ข้อดีมีแค่ประมาณว่า “อาจบังเอิญทำงานได้บนเทอร์มินัลฮาร์ดแวร์ยุค 80” ซึ่งแม้จะเท่ แต่ก็ไม่คุ้มกับ failure mode เพิ่มเติม
ดังนั้นแทนที่จะย้ายไป terminfo ผมเปลี่ยนทั้งหมดไปใช้ฐานของ การ query เทอร์มินัล ซึ่งจำเป็นอยู่แล้วด้วยเหตุผลอื่น ยังมีฐานข้อมูลเทอร์มินัลในตัวเพื่อใช้ตรวจจับค่า TERM ที่รู้ว่าไม่เข้ากันกับ XTerm แต่ถ้าเทอร์มินัลตอบ query ได้ถูกต้อง ก็จะทำงานได้ทันทีแม้ค่า TERM จะไม่เป็นที่รู้จัก
เห็น HN โหลดได้ตั้งแต่ครั้งแรกบน Termux แล้วอ้าปากค้างเลย งานยอดเยี่ยมมาก
https://lists.sr.ht/~bptato/chawan-devel/%3CD9S40OS2QWHL.PXQ...
หลัก ๆ เพื่อแก้ลูกศรโหวต เพราะตอนนี้ background-image เรนเดอร์แค่ placeholder เท่านั้น