2 คะแนน โดย GN⁺ 2025-06-17 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เว็บเบราว์เซอร์แบบเทอร์มินัล 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 ให้ด้วย
  • ดิสทริบิวชันเดียวกันสามารถรับได้ในรูปแบบ แพ็กเกจ .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 ความคิดเห็น

 
GN⁺ 2025-06-17
ความคิดเห็นบน Hacker News
  • ยินดีเสมอที่มีวิธีไม่ต้องใช้เอนจิน Blink อีกตัวสำหรับไซด์เควสต์สั้น ๆ เพื่อสำรวจอะไรบางอย่าง ว่าจะลองทดสอบหลังเลิกเรียน ;)
    ถ้ายังไม่มีใครพูดถึง มีแฮ็กที่ดีเป็นพิเศษสำหรับสภาพแวดล้อมที่ไม่มี sixel คือ carbonyl ซึ่งเป็นพอร์ตเทอร์มินัลของ Chromium: https://github.com/fathyb/carbonyl
    แต่ผู้สร้างดั้งเดิมไม่มีเวลากลับมาดูแลต่อแล้ว จึงยังอยู่ในสภาพพื้นฐานมาก และขาดฟีเจอร์จำนวนมาก เช่น คีย์ลัดและการบันทึกไฟล์ ถึงอย่างนั้น การที่มันนำ ความเข้ากันได้กับเว็บแบบเต็มรูปแบบ มาให้ก็เจ๋งจริง ๆ และหวังว่าจะมีใครที่ทำ Rust เป็นมารับช่วงต่อ ตอนที่ผมดูเมื่อไม่กี่เดือนก่อน ยังไม่เห็น fork ไหนที่มีแรงขับเคลื่อนจริงจัง

    • ในโพสต์ GitHub ของ carbonyl ผู้เขียนต้นฉบับเป็นชาวปาเลสไตน์หรือเปล่าไม่แน่ใจ คนเลยถามถึงสุขภาพและความปลอดภัยของเขากันเรื่อย ๆ
      หวังว่าเขาจะปลอดภัย อยากบอกว่างานของเขาดีมากจริง ๆ โดยรวมแล้วเกลียดสงครามมาก
  • @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... ด้วย

  • ทำได้ดีมาก ตั้งใจจะลองใช้กับงานประจำวันบางส่วนเพื่อดูว่าไปได้ไกลแค่ไหน การแสดงผล HN ดูดีเป็นพิเศษ

    • ดีเลย อย่าลืมส่ง รายงานบั๊ก ที่เจอด้วยนะ
  • เจ๋งมาก! ดีใจที่เห็นว่าเขียนด้วย Nim
    พอรัน cha example.com แล้วผมไม่รู้ว่าจะใช้คำสั่งอย่าง hjkl ยังไง ปุ่มที่มีผลมีแค่ตัวเลข และตัวเลขจะแสดงที่มุมซ้ายล่าง ยังไม่รู้เหมือนกันว่ามันเอาไว้ทำอะไร สงสัยว่าผมพลาดอะไรที่ชัดเจนในคู่มือการใช้งาน หรืออาจเป็นบั๊ก
    ผม build จากซอร์สด้วย Nim 2.24 บน MacOS Sequoia 15.5 Apple Silicon หน้าโหลดได้ถูกต้อง แต่ ปุ่มคำสั่ง ไม่ทำงาน

    • ลองทั้ง Ghostty, iTerm2 และ Terminal.app แล้ว ทำงานเหมือนกันหมด
  • ลองคอมไพล์จากซอร์สบน 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” หรือก็คือ แถบที่อยู่ เป็นการออกแบบโดยตั้งใจหรือเปล่า

    • แถบที่อยู่ควรเปิดได้ด้วย C-l หรือ control + L
  • ยอดเยี่ยม
    ตอนนี้ดูเหมือนจะไม่ใช้ termcap/ncurses แล้ว เลยสงสัยว่ากำลังจัดการ เทอร์มินัล เองโดยตรงหรือเปล่า

    • จริง ๆ Chawan ไม่เคยใช้ ncurses ใช้แค่ termcap เท่านั้น แค่ ncurses เองก็ implement termcap ด้วย
      ตอนแรกเริ่มด้วย termcap เพราะคุ้นเคยอยู่แล้วจาก w3m แต่ termcap เป็นอินเทอร์เฟซเก่า และอธิบาย true color ซึ่งเป็นคุณสมบัติเดียวที่มีประโยชน์ในเทอร์มินัลยุคใหม่ไม่ได้ ข้อดีมีแค่ประมาณว่า “อาจบังเอิญทำงานได้บนเทอร์มินัลฮาร์ดแวร์ยุค 80” ซึ่งแม้จะเท่ แต่ก็ไม่คุ้มกับ failure mode เพิ่มเติม
      ดังนั้นแทนที่จะย้ายไป terminfo ผมเปลี่ยนทั้งหมดไปใช้ฐานของ การ query เทอร์มินัล ซึ่งจำเป็นอยู่แล้วด้วยเหตุผลอื่น ยังมีฐานข้อมูลเทอร์มินัลในตัวเพื่อใช้ตรวจจับค่า TERM ที่รู้ว่าไม่เข้ากันกับ XTerm แต่ถ้าเทอร์มินัลตอบ query ได้ถูกต้อง ก็จะทำงานได้ทันทีแม้ค่า TERM จะไม่เป็นที่รู้จัก
  • เห็น HN โหลดได้ตั้งแต่ครั้งแรกบน Termux แล้วอ้าปากค้างเลย งานยอดเยี่ยมมาก

    • ถ้าสนใจ ผมโพสต์ user style สำหรับ HN ไว้ที่นี่:
      https://lists.sr.ht/~bptato/chawan-devel/%3CD9S40OS2QWHL.PXQ...
      หลัก ๆ เพื่อแก้ลูกศรโหวต เพราะตอนนี้ background-image เรนเดอร์แค่ placeholder เท่านั้น