2 ポイント 投稿者 GN⁺ 2025-06-17 | 1件のコメント | WhatsAppで共有
  • ターミナルベースのウェブブラウザ Chawan 0.2.0 が公開され、ソース tarball、amd64 Linux向け静的バイナリ、.deb パッケージでインストール可能
  • 2025年6月25日には、このバージョンの主要な プラットフォーム固有の問題 の一部を修正した 0.2.1 パッチリリースも追加で提供された
  • パッケージメンテナーは必須ランタイム依存関係を 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向け静的バイナリ配布版も提供される
    • 静的バイナリ配布版
    • インストールするにはアーカイブを任意の場所に展開した後、root 権限で make install を実行
    • 削除は make uninstall で行う
  • 同じ配布版は .deb パッケージ としても入手可能

0.2.1 パッチリリース

  • 2025年6月25日の追加告知で、0.2.0 の一部の主要な プラットフォーム固有の問題 を修正したパッチリリースが提供された
  • パッチリリースは chawan-0-2-1.html で確認できる

パッケージメンテナー向け依存関係

  • 現在の必須 ランタイム依存関係 は以下の通り
    • libssh2
    • libbrotli
      • より正確には libbrotlicommon と libbrotlidec
    • OpenSSL または LibreSSL
      • OpenSSL は 3.0 以上が推奨される
      • LibreSSL は OpenBSD 7.7 に含まれるバージョンでテスト済み
  • 以前の開発バージョンにあった依存関係はもはや適用されず、削除できる
    • zlib
    • libseccomp
    • termcap/ncurses
    • libcurl
  • Chawan のパッケージング中に問題が発生した場合は、暫定パッチを適用する前にまず連絡することが推奨される
    • 問題を upstream 側で解決できる可能性がある

ブランチ運用と次の作業

  • 0.2.0 は MVP で望んでいた機能をすべて含み、既知の致命的バグがない状態でバージョンが付けられた
  • git の v0.2 ブランチ はバグ修正のみを受け付ける
  • 新機能の作業は master ブランチ で継続される
  • 次のリリースはレイアウトモジュールの性能と正確性を改善し、UI をもう少しユーザーフレンドリーにすることを目標とする

1件のコメント

 
GN⁺ 2025-06-17
Hacker News のコメント
  • ちょっとした調査用のサイドクエストに、また別の Blink エンジンを使わずに済む方法はいつでも歓迎。放課後に試してみるつもり ;)
    まだ触れられていないなら、sixel がない環境で特に有用なハックとして、Chromium のターミナル移植版である carbonyl がある: https://github.com/fathyb/carbonyl
    ただ、元の作者が再び手を入れる時間がなく、ごく基本的な状態で、キーボードショートカットやファイル保存など多くの機能が欠けている。それでも 完全な Web 互換性をもたらす点は本当に素晴らしく、Rust ができる誰かが引き継いでくれたらと思う。数か月前に見たときは、勢いのあるフォークはなかった

    • carbonyl の GitHub の投稿では、元作者がパレスチナ人だからか、人々がずっと健康と安全を尋ねている
      作者が無事であることを願う。作品は本当に良かったと言いたい。戦争全般が本当に嫌いだ
  • @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 のようなコマンドをどう使うのか分からない。効果があったキーは数字だけで、数字は左下に表示される。それで何をするのかもまだ分からない。使い方で明らかなことを見落としているのか、それともバグの可能性があるのか気になる
    MacOS Sequoia 15.5 Apple Silicon 上で Nim 2.24 を使ってソースからビルドした。ページは正しく読み込まれるが、コマンドキーが動作しない

    • Ghostty、iTerm2、Terminal.app のすべてで試したが、同じ挙動だった
  • Termux が動く Lenovo M8 第4世代でソースからコンパイルしてみたが、Nim だけ入れればよかった。root ユーザーがいないにもかかわらず、インストールはきれいにうまくいった

  • 少し掘ってみると、Chrome と Safari も今では Acid2 と Acid3 を完全には通過しないようだ

  • いつも自分の Web サイトが Links でもきれいに表示されるよう気を配ってきたが、新しい候補が現れたようだ
    一部の CSS をサポートすると、かえって少し難しくなる。以前は links がマージンとパディングを丸ごと無視してくれたので、メニューのような インラインのリスト要素をよりすっきり表示するのに使えたが、今度は要素間の間隔が問題になる

    • 意図としては単に「動くべき」という方向。たまにそうならないのは分かっていて、それは バグと見なしてよい :)
      それでもグリッド表示用のカスタム CSS が本当に必要なら、chawan は標準の grid メディア特性をサポートしている: https://developer.mozilla.org/en-US/docs/Web/CSS/@media/grid
  • 長年の w3m ユーザー。使ってみたところ、気に入りそうだ。とてもよい
    「URL を開く」、つまり アドレスバー機能がないのは意図した設計上の選択なのか気になる

    • アドレスバーは C-l、つまり control + L を押すと開くはず
  • 素晴らしい
    今は termcap/ncurses を使っていないように見えるが、ターミナル処理を自前で行っているのか気になる

    • Chawan は実は ncurses を使ったことはなく、termcap だけを使っていた。ncurses が termcap も実装しているだけ
      最初は w3m を通じてすでに慣れていたので termcap から始めた。しかし termcap は古いインターフェースで、現代のターミナルで唯一有用な属性である True Color を説明できない。利点といえば「80年代のハードウェア端末で偶然動くかもしれない」程度で、それは格好いいものの、追加の失敗モードを受け入れるほどではなかった
      そこで terminfo に移る代わりに、すでに別の理由でも必要だった ターミナル照会ベースへ完全に切り替えた。XTerm と互換性がないことが分かっている TERM 値を検出するために、内蔵のターミナルデータベースはまだある。だが、照会に正しく応答するターミナルなら、TERM 値が未知でもすぐに動く
  • Termux で HN が一回目で読み込まれるのを見て、あぜんとした。素晴らしい仕事だ