最近HTML5, CSS3, JS, videoなども閲覧可能な端末上でブラウジング出来るBrowsh
というものを知りました.
BrowshのバックエンドはFirefoxで,その画面を変換して表示しているようです.キーボード,マウスで操作できます.
Firefox -> VNC -> Browsh -> Termina/http
各種環境の単一のバイナリ(別途Firefoxが必要)や,docker imageが提供されています.arm版も用意されていますが,Firefox 57移行が必要なのでRaspberry PiのRaspbianではひと工夫要りそうです.
- Downloads – Browsh
※checksumは何も書かれていないけどsha256でした.
また,sshで体験できるようにもなっています.まずはこれで体験してみるのがお手軽で良いと思います.
$ ssh brow.sh
しかし,今日試したところ混んでいるようで繋がりませんでした(◞‸◟)
All of Browsh's servers are currently busy. Please try again soon.Shared connection to brow.sh closed.
導入
手元で試してみます.今回は Linux Static: x64 を試しました.ちなみにv1.2.3の時はうまく動作しませんでしたが,現在のv1.3.3では動作するようになりました :)
BroushにはFOrefox 57以降が必要です.もし導入していない場合はFirefoxを導入します.そして対応バイナリを入手してchecksumを確認,実行権を付与します.
$ sudo apt install firefox$ wget https://github.com/browsh-org/browsh/releases/download/v1.3.3/browsh_1.3.3_linux_amd64 https://github.com/browsh-org/browsh/releases/download/v1.3.3/browsh_1.3.3_checksums.txt$ sha256sum -c browsh_1.3.3_checksums.txt 2>/dev/null | grep -v 'FAILED open or read'browsh_1.3.3_linux_amd64: OK$ chmod u+x browsh_1.3.3_linux_amd64
実行(TTY)
端末上で実行します.ヘッドレスでFirefoxが起動してからBrowshが利用できるようになります.
$ ./browsh_1.3.3_linux_amd64
以下のショートカットとマウス操作が可能です.
- キーボード・ショートカット
F1 : ドキュメント( https://www.brow.sh/docs/introduction/ )の表示
カーソルキー,PgUp/PgDn : 画面スクロール
CTRL+q : Browshの終了
CTRL+l : URLバーにフォーカス
BACKSPACE : 前の画面に移動
CTRL+r : ページ再読込
CTRL+t : 新しいタブ
CTRL+w : タブを閉じる
CTRL+TAB : 次のタブに移動
ALT+SHIFT+p : スクリーンショットの取得(動作しない?)
ALT+m : モノクロモードトルグ
ALT+u : ユーザエージェントデスクトップ,モバイル切り替え
マウス操作はリンククリックだけだと思います.リンククリックもキーボードで出来ると良いのですが今のところ出来ません.issueで上がっているので出来るようになるかもしれません,
- Vim mode · Issue #31 · browsh-org/browsh
- Feature request: link hinting · Issue #85 · browsh-org/browsh
- escape key to open menu bar and some links-compatible key commands · Issue #119 · browsh-org/browsh
以下は手元で動かした時の表示例です.表示が崩れる場合は端末ソフトを変えるとましになったりします.
手元ではsakuraはしましまになってしまいました.以下のスクリーンショットはgnome-terminalのものです.
残念ながら現在日本語などのワイド文字には未対応です.Issueに上がっているのでそのうち直ると思います.
- UTF-8 characters input broken · Issue #93 · browsh-org/browsh
- Wide characters need to be CSS rendered as wide characters · Issue #25 · browsh-org/browsh
- Many Chinese characters are not rendered, or appear with blurred background · Issue #24 · browsh-org/browsh
http-server機能を使う
-http-server
オプションを使うとBrowshをhttp proxyのように他のウェブブラウザで表示結果を利用できます.この場合多少崩れますが日本語も表示できます.細い回線だけでなく古い機械のウェブブラウザや,性能の低いマシンでアクセスするのにも良さそうです.
$ ./browsh_1.3.3_linux_amd64 --help 2>&1 | grep http-server$ -A1-http-serverRun as an HTTP service$ ./browsh_1.3.3_linux_amd64 -http-server -http-server-bind 127.0.0.1
既定値では,4333ポートで利用できます.
http://127.0.0.1:4333/
任意のURLを開く場合はこのURLの後ろにアクセスしたいURLを付与します.
http://127.0.0.1:4333/https://duckduckgo.com/
2011年発売のAndroid端末のAndroidブラウザでアクセス
ちょっと崩れるけどいい感じです :)
ただ,何故かGoogle+にアクセスするとBrowshのページになってしまいます(TTYだとOK)
テキストブラウザはelinksやw3mなどありますが,最近のリッチな環境には追従できていません(JavaScript機能の入ったw3mは以前あった).フューチャーフォン時代はそちらのページを利用したりしていましたが最近はスマートフォン対応でそういったページも無くなってきています.ということでBroushのこれからに期待です.
余録
仕組みなどがやはり端末でリモートデスクトップが利用できるtexttopに似ているなと思ってGitHubにアクセスしてみるとBroushに転送されました.同じ人が作ったもので途中からBrowshに変わったようです.
- tombh/texttop: A fully interactive X Linux desktop rendered in TTY and streamable over SSH
- tombh/texttop – Docker Hub
- Change ‘texttop’ refs to ‘browsh’ · browsh-org/browsh@ba373e9
環境
Browsh : Linux Static: x64 v1.3.3
$ lsb_release -dDescription: Debian GNU/Linux unstable (sid)$ uname -mx86_64$ dpkg-query -W firefoxfirefox 61.0-2