プログラミング
Brow6el: Chromiumを使用したターミナル向けフル機能ウェブブラウザ
Brow6el: A full-featured web browser for the terminal using Chromium (tangled.org)
要約
Brow6elは、Chromiumを基盤としたターミナル上で動作する高機能なウェブブラウザです。SixelやKittyグラフィックスプロトコルをサポートし、Vim風のキーバインディング、マウス操作、要素インスペクタ、JavaScriptコンソールなどの機能を備えています。SSH経由での利用や、特定のターミナルエミュレータでの動作に関する注意点も記載されています。
全文翻訳
このリポジトリ [https://tangled.org/janantos.tngl.sh/brow6el] が、現在唯一の真実の情報源です。以前のCodeberg [https://codeberg.org/janantos/brow6el] は参照用としてのみ保持されます。他のプロジェクトがそこで歓迎されなくなったため、Codebergから移行することを決定しました。プロジェクトを単一のプラットフォームにまとめたいと考えています。
Brow6el - グラフィックスサポート付きターミナルウェブブラウザ
Chromium (CEF) を使用した、SixelおよびKittyグラフィックスプロトコルをサポートするフル機能のターミナルウェブブラウザです。
警告: Kitty画像サポート(現在mainブランチビルドのみ)は、その設計上、リモートホストでBrow6elを実行するSSHではほとんど使用できません。この機能はBrow6elがローカルホストで実行される場合にのみ使用可能です。
SSHでは、各フレームレンダリングでの大量のデータ転送により、ブラウザの応答性が著しく低下します。
警告: Kitty画像サポート(現在mainブランチビルドのみ)。Ubuntu 24.04には非常に古いKittyバージョン0.32.2が付属しており、Brow6elが使用する新しい画像プロトコルを処理できません。BASE64データがレンダリングされる画面の代わりに印刷されます。ただし、footターミナルはUbuntuで完全に動作します。
警告: これはPOCコード品質です。ビルドプロセスはUbuntu 25.10、Debian 13、Arch Linuxでテストされました。ブラウザ自体は、footターミナル、wezterm、kitty、ghostty、yaftフレームバッファターミナル、およびWSL2を使用したsixelサポート付きのWindows 11ターミナルでテストされました。
スクリーンショット
デモ
ページビュー
JavaScriptコンソール
機能
グラフィックスプロトコル - SixelとKittyグラフィックスプロトコルの両方を自動検出でサポート
タイルレンダリング - 応答性向上のためのオプションのタイルベースSixelレンダリング(Sixelのみ)
マウスサポート - ウェブページをクリック、スクロール、操作
Vim風モーダルコントロール - 3つのモード(STANDARD、INSERT、MOUSE、VISUAL)による効率的なキーボードナビゲーション
グリッドジャンプモード - 再帰的なグリッドナビゲーションによる高速なマウス位置決め(ほぼすべての要素に3〜4回のキーストローク)
要素インスペクタ - MOUSEモードでのブラウザDevToolsライクな要素検査
JavaScriptコンソール - JSコマンドの実行とコンソールログの表示
ブックマーク - お気に入りのページを保存・整理
ユーザースクリプト - ページにカスタムJavaScriptを注入
ダウンロードマネージャー - 進捗状況を追跡してファイルを保存
ポップアップ処理 - ターミナルフレンドリーなポップアップダイアログ
マルチインスタンス - 複数のブラウザウィンドウを同時に実行
設定可能なプロファイル - 一時的(プライベート)または永続的(通常)なブラウジングを選択
DNS-over-HTTPS (DoH) - 設定可能なプロバイダとモードによるセキュアDNS
モダンウェブ - ChromiumによるフルHTML5/CSS3/JavaScriptサポート
Vim風モーダルコントロール
Brow6elは、3つのモードを備えたvim風のモーダルキーボードインターフェースを使用します。現在のモードは常にステータスバーに表示されます(例: タイルレンダリング付きStandardモードの場合は[S][T])。
STANDARDモード [S] - デフォルト
Vimライクなナビゲーションと単一キーコマンド(Ctrl不要):
ナビゲーション: h/j/k/l または矢印キー - 移動(左/下/上/右)
t/g - 上/下スクロール
p/n - ヒストリの戻る/進む
アクション:
r - ページ再読み込み
u - URLに移動
U - 現在のURLをクリップボードにコピー(Shift+U)
c - JavaScriptコンソールを切り替え
d - ブックマークを追加
b - ブックマークを開く
f - ヒントモード(キーボードリンクナビゲーション)
s - ユーザースクリプトメニューを開く
y - ユーザースクリプトの自動注入を切り替え
z - タイルレンダリングを切り替え(Sixelのみ、ちらつきを軽減)
Z - フルリドローを強制(Sixel: モノリシックレンダリング、Kitty: フルリフレッシュ)
m - ダウンロードマネージャーを開く
x - ブラウザを終了
ズームコントロール:
+ または = - ズームイン
- または _ - ズームアウト
0 - ズームを1.0xにリセット
モード切り替え:
i - INSERTモードに入る
e - MOUSEモードに入る
v - VISUALモードに入る(テキスト選択)
INSERTモード [I]
すべてのキー入力はウェブページに渡されます。フォームやテキストエリアへの入力に使用します。
終了: ESC - STANDARDモードに戻る
VISUALモード [V]
ページコンテンツをコピーするためのテキスト選択モードです。キャレットは最初の表示テキスト、またはMOUSEモードから来た場合はマウスカーソル位置から開始します。
キャレット位置決め(初期):
h - カーソルを1文字左に移動
l - カーソルを1文字右に移動
w - 単語単位でカーソルを前に移動
b - 単語単位でカーソルを後ろに移動
j - カーソルを1行下に移動
k - カーソルを1行上に移動
v - 現在位置から選択を開始
選択(vを押した後):
h - 選択範囲を1文字左に拡張
l - 選択範囲を1文字右に拡張
w - 選択範囲を単語単位で前に拡張
b - 選択範囲を単語単位で後ろに拡張
j - 選択範囲を1行下に拡張
k - 選択範囲を1行上に拡張
アクション:
y - 選択範囲をクリップボードにコピーし、VISUALモードを終了
ESC - 選択をキャンセルし、VISUALモードを終了
ヒント: MOUSEモード(e)を使用してカーソルを配置し、ESCを押してからvを押すと、その正確な位置からテキスト選択を開始できます!
MOUSEモード [M]
視覚的なカーソルを備えたキーボード駆動のマウスエミュレーション:
移動: h/j/k/l または矢印キー - マウスを移動(左/下/上/右)
q/f - 精密/高速モードを切り替え
r - ドラッグアンドドロップを切り替え
g - グリッドジャンプモードを切り替え(高速ナビゲーション)
アクション:
SPACE または ENTER - カーソル位置をクリックまたはドロップ
i - インスペクトモードを切り替え(ホバー中の要素情報を表示)
r - ドラッグアンドドロップアクティブ時にドロップ
終了: e または ESC - STANDARDモードに戻る
グリッドジャンプモード
キーボード駆動のグリッドナビゲーションによる高速なマウス位置決め。MOUSEモードでgを押してアクティブにします:
アダプティブグリッドオーバーレイ - ラベル付きセルを持つ3x3グリッドが表示されます(デフォルトキー: qweasdzxc)
クイックジャンプ - キー(q/w/e/a/s/d/z/x/c)を押してそのグリッドセルにジャンプします
再帰的ズーム - 選択されたセルにサブグリッドが自動的に表示され、精度を高めます
視覚的フィードバック - 緑色のグリッドはより多くのズームレベルが利用可能であることを示し、赤色は最大ズームを示します
自動精度移動 - 最大ズーム時、グリッドは高精度なカーソル移動モードに切り替わります
ナビゲーション - Backspaceでズームアウト、ESCでグリッドモードを終了
設定可能なキー - ~/.brow6el/browser.conf(grid_keys設定)でグリッドキーをカスタマイズできます
グリッドモードは、わずか3〜4回のキーストロークで要素を正確に選択でき、速度と精度を兼ね備えています。
インスペクトモード
MOUSEモード中にiキーを押すとインスペクトモードが切り替わります。この機能はブラウザのDevToolsインスペクタと同様に機能します:
要素ハイライト - カーソル下の要素の周りにシアン色の境界線が表示されます
情報パネル - 要素の詳細(タグ名、ID、クラス、主要な属性(href、src、type、nameなど)、寸法と位置、テキストコンテンツプレビュー)が表示されます
リアルタイム更新 - カーソルを移動すると情報が更新されます
オフにする - 再度iキーを押すと終了します
これはウェブページのデバッグ、ページ構造の理解、または特定の要素の検索に役立ちます。
スマートモード切り替え
ブラウザはコンテキストに基づいて自動的にモードを切り替えます:
MOUSEモードで入力フィールドをクリック → 自動的にINSERTモードに切り替え
MOUSEモードでセレクトボックスをクリック → 自動的にSTANDARDモードに切り替え
ページナビゲーション → 自動的にSTANDARDモードにリセット
高度なナビゲーションモード
ヒントモード(fキー)
fキーを押すと、すべてのリンクに黄色のヒントラベルが表示されます。ヒントラベル(例: "a"、"ab")を入力してEnterキーを押すとナビゲートできます。これにより、マウスなしでキーボードのみのナビゲーションが可能になります。ESCまたは再度fキーを押すと終了します。
マウスエミュレーションモード(eキー)
eキーを押すと、黄色のマウスカーソルオーバーレイがアクティブになります。h/j/k/lまたは矢印キーを使用してページ上でカーソルを移動し、SPACE/Enterキーを押すとその位置をクリックします。qは精度モードを切り替え、fは高速モードを切り替えます。iキーを押すと、ホバー中の要素の詳細情報を表示するインスペクトモードが切り替わります。これは、iframeや同意ダイアログを含むすべての要素で機能します。ESCまたは再度eキーを押すと終了します。
クイックスタート
1. CEFバイナリをダウンロード(約670MB、一度だけ)
./download_cef.sh
2. ビルド
./build.sh
3. 実行
./build/run_brow6el.sh https://example.com
複数のインスタンスをサポートしています!
追加のターミナルを開いて、さらにインスタンスを実行してください。
例
examples/ディレクトリには以下が含まれています:
userscripts/ - 例のユーザースクリプト(ダークモード、Googleカスタマイズなど)
詳細はexamples/README.mdを参照してください。
高度な機能
ブックマーク
STANDARDモードでdキーを押して現在のページをブックマークします。
STANDARDモードでbキーを押してブックマークを表示・管理します。
↑/↓またはj/kでナビゲートし、Enterキーで開き、'd'で削除します。
ブックマークは~/.brow6el/bookmarksに保存されます。
ユーザースクリプト
Greasemonkey/TのようなカスタムJavaScript注入システム