Chawan TUIウェブブラウザ 0.2.0
(chawan.net)- ターミナルベースのウェブブラウザ 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件のコメント
Hacker News のコメント
ちょっとした調査用のサイドクエストに、また別の Blink エンジンを使わずに済む方法はいつでも歓迎。放課後に試してみるつもり ;)
まだ触れられていないなら、sixel がない環境で特に有用なハックとして、Chromium のターミナル移植版である carbonyl がある: https://github.com/fathyb/carbonyl
ただ、元の作者が再び手を入れる時間がなく、ごく基本的な状態で、キーボードショートカットやファイル保存など多くの機能が欠けている。それでも 完全な Web 互換性をもたらす点は本当に素晴らしく、Rust ができる誰かが引き継いでくれたらと思う。数か月前に見たときは、勢いのあるフォークはなかった
作者が無事であることを願う。作品は本当に良かったと言いたい。戦争全般が本当に嫌いだ
@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... も見つかる
実際のエスケープシーケンスについては、XTerm の ctlseqs.ms[1] が非常に貴重な資料。nick black の notcurses[2] からも多くのアイデアを得ており、特に “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 のようなコマンドをどう使うのか分からない。効果があったキーは数字だけで、数字は左下に表示される。それで何をするのかもまだ分からない。使い方で明らかなことを見落としているのか、それともバグの可能性があるのか気になるMacOS Sequoia 15.5 Apple Silicon 上で Nim 2.24 を使ってソースからビルドした。ページは正しく読み込まれるが、コマンドキーが動作しない
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 を開く」、つまり アドレスバー機能がないのは意図した設計上の選択なのか気になる
素晴らしい
今は termcap/ncurses を使っていないように見えるが、ターミナル処理を自前で行っているのか気になる
最初は w3m を通じてすでに慣れていたので termcap から始めた。しかし termcap は古いインターフェースで、現代のターミナルで唯一有用な属性である True Color を説明できない。利点といえば「80年代のハードウェア端末で偶然動くかもしれない」程度で、それは格好いいものの、追加の失敗モードを受け入れるほどではなかった
そこで terminfo に移る代わりに、すでに別の理由でも必要だった ターミナル照会ベースへ完全に切り替えた。XTerm と互換性がないことが分かっている TERM 値を検出するために、内蔵のターミナルデータベースはまだある。だが、照会に正しく応答するターミナルなら、TERM 値が未知でもすぐに動く
Termux で HN が一回目で読み込まれるのを見て、あぜんとした。素晴らしい仕事だ
https://lists.sr.ht/~bptato/chawan-devel/%3CD9S40OS2QWHL.PXQ...
主に投票矢印を直すためのもの。現状では background-image がプレースホルダーだけをレンダリングするため