コンソールでモダンなウェブが閲覧できる Browsh を試す

browsh-header
最近HTML5, CSS3, JS, videoなども閲覧可能な端末上でブラウジング出来るBrowshというものを知りました.

BrowshのバックエンドはFirefoxで,その画面を変換して表示しているようです.キーボード,マウスで操作できます.

Firefox -> VNC -> Browsh -> Termina/http

各種環境の単一のバイナリ(別途Firefoxが必要)や,docker imageが提供されています.arm版も用意されていますが,Firefox 57移行が必要なのでRaspberry PiのRaspbianではひと工夫要りそうです.

また,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で上がっているので出来るようになるかもしれません,

以下は手元で動かした時の表示例です.表示が崩れる場合は端末ソフトを変えるとましになったりします.
手元ではsakuraはしましまになってしまいました.以下のスクリーンショットはgnome-terminalのものです.

20180714_21:07:42-1367220180714_21:07:50-13839

残念ながら現在日本語などのワイド文字には未対応です.Issueに上がっているのでそのうち直ると思います.

http-server機能を使う

-http-server オプションを使うとBrowshをhttp proxyのように他のウェブブラウザで表示結果を利用できます.この場合多少崩れますが日本語も表示できます.細い回線だけでなく古い機械のウェブブラウザや,性能の低いマシンでアクセスするのにも良さそうです.

$ ./browsh_1.3.3_linux_amd64 --help 2>&1 | grep http-server$ -A1
  -http-server
        Run 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/

Chromeでアクセス
20180714_21:07:35-18304
20180714_21:07:55-18562

w3mでアクセス
20180714_21:07:31-18905

2011年発売のAndroid端末のAndroidブラウザでアクセス
image%3A52713

ちょっと崩れるけどいい感じです :)
ただ,何故かGoogle+にアクセスするとBrowshのページになってしまいます(TTYだとOK)

テキストブラウザはelinksやw3mなどありますが,最近のリッチな環境には追従できていません(JavaScript機能の入ったw3mは以前あった).フューチャーフォン時代はそちらのページを利用したりしていましたが最近はスマートフォン対応でそういったページも無くなってきています.ということでBroushのこれからに期待です.

余録

仕組みなどがやはり端末でリモートデスクトップが利用できるtexttopに似ているなと思ってGitHubにアクセスしてみるとBroushに転送されました.同じ人が作ったもので途中からBrowshに変わったようです.

環境

Browsh : Linux Static: x64 v1.3.3

$ lsb_release -d
Description:    Debian GNU/Linux unstable (sid)
$ uname -m
x86_64
$ dpkg-query -W firefox
firefox    61.0-2