グラフックターミナルウェブブラウザのBrow6elをリモートのVPSで動かしてみました.
タグ: Web browser
ターミナルグラフックウェブブラウザのbrow6el
バックエンドとしてChromium Embedded Framework (CEF)を使い,JavaScriptなども解釈してSixel/Kittyのターミナルグラフックプロトコルを使いターミナル上にウェブページを表示するもののようです.
気になったので試してみました.
画像,JavaScript/CSSなどに対応するターミナルウェブブラウザのChawanを試す
Chawanというターミナルウェブブラウザを知りました.
メモリセーフなNimで実装されていてライセンスはパブリックドメインです.
同じようにターミナル上で動作するw3mやLynx系との大きな違いはJavaScriptやCSSに対応している辺りでしょうか.SixelやKittyのターミナル画像形式にも対応しています.
少し試してみました.
Google検索をJavaScript無しで-Whoogle Search利用-
先日USER-AGENTによりJavaScript無しでGoogle検索が出来る記事を書きました.
自分だけならこれでいいのですが,他の人にこれをやってもらうのは大変.Startpageなんかを使ってもらえばとか思いましたが自分の環境では現在エラーが出て利用できません.
久々にGoogle検索のプロキシサーバ的なWoogle Searchを試してみました.
Google検索をJavaScript無しで
Google検索がJavaScript offで動かなくなったと聞いてFirefox+NoScript環境で試してみると確かに駄目.
更に http://www.google.com/httpservice/retry/enablejs にリダイレクトされて検索キーワードが消えてとても不便.
Chromium Browser をベースにパフォーマンス向上を目指す Thorium Browser
Thorium という Chromium をコンパイラの最適化などを使い,通常の Chromium に比べて 8〜38% のパフォーマンスの向上が実現できるものを知りました.
サブプロジェクトが多数あり,各種環境向けのThorium やThoriumOS, Codium などもあります.
モバイル端末の電池持ちが良くなったり,古い端末での動作が軽くなるのではないかと期待が持てます.
軽量ウェブブラウザの Raphael を試す
最近のウェブブラウザはとてもリソース食いです.特にメモリ.いくらあっても足りません><
軽量ウェブブラウザもありますが,機能が足りず動かないサイトが多いです.
- Dillo (最近reboot)
- NetSurf
- Midori(WebKit版)
- :
Midori はWebKit版の頃は軽量だけど大抵のsite は動いていた記憶があります.しかしその後 Electron(Blink)ベース(Midori 10),Firefox(Gekko)ベースの Floorp ベース(Midori 11) となり重量級に.
今回 Midori WebKit版時代からのフォークのRaphael を知ったので試してみました.
軽量ウェブブラウザの Dillo が約9年ぶりにリリース
とても小さく軽いグラフィカルウェブブラウザの Dillo が新しいメンテナに引き継がれ 2015年から約9年ぶりのリリースされたらしいです.
試しに手元で build してみました.
コンソールでモダンなウェブが閲覧できる Browsh を試す

最近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
Vivaldi 1.14にしたらARM64環境で動かなくなる
Vivaldi 1.14がリリースされました.
Note機能のMarkdown対応とか便利かもと以前の手順で導入しました.
依存関係が増えていたのでこんな感じで.
$ sudo dpkg -i ./vivaldi-stable_1.14.1077.41-1_armhf.deb $ sudo apt install -f $ apt show vivaldi-stable Package: vivaldi-stable:armhf Version: 1.14.1077.41-1 Status: install ok installed Priority: optional Section: web Maintainer: Vivaldi Package Composer <packager@vivaldi.com> Installed-Size: 136 MB Provides: www-browser Pre-Depends: dpkg (>= 1.14.0) Depends: ca-certificates, fonts-liberation, gconf-service, libappindicator1, libasound2 (>= 1.0.16), libatk-bridge2.0-0 (>= 2.5.3), libatk1.0-0 (>= 1.12.4), libc6 (>= 2.16), libcairo2 (>= 1.6.0), libcups2 (>= 1.4.0), libdbus-1-3 (>= 1.2.14), libexpat1 (>= 2.0.1), libfontconfig1 (>= 2.11), libgcc1 (>= 1:3.5), libgconf-2-4 (>= 3.2.5), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.31.8), libgtk-3-0 (>= 3.9.10), libnspr4 (>= 2:4.9-2~), libnss3 (>= 2:3.22), libpango-1.0-0 (>= 1.14.0), libpangocairo-1.0-0 (>= 1.14.0), libx11-6 (>= 2:1.4.99.1), libx11-xcb1, libxcb1 (>= 1.6), libxcomposite1 (>= 1:0.3-1), libxcursor1 (>> 1.1.2), libxdamage1 (>= 1:1.1), libxext6, libxfixes3, libxi6 (>= 2:1.2.99.4), libxrandr2 (>= 2:1.2.99.3), libxrender1, libxss1, libxtst6, wget, xdg-utils (>= 1.0.2) Recommends: adobe-flashplugin, chromium-codecs-ffmpeg-extra Homepage: https://vivaldi.com Download-Size: 不明 APT-Manual-Installed: yes APT-Sources: /var/lib/dpkg/status Description: A new browser for our friends Vivaldi browser is made with power users in mind by people who love the Web. N: 追加レコードが 2 件あります。表示するには '-a' スイッチを付けてください。
早速起動しましたが動きません.
$ vivaldi ERROR: ld.so: object '/usr/lib/chromium-browser/libffmpeg.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. /usr/bin/vivaldi: error while loading shared libraries: libffmpeg.so: cannot open shared object file: No such file or directory
Vivaldiはarmhfですが,aarch64の/usr/lib/chromium-browser/libffmpeg.soを読み込もうとしてコケているようです.
libffmpeg.soはVivaldiにもいるよう?
$ dpkg-query -S libffmpeg.so chromium-codecs-ffmpeg-extra: /usr/lib/chromium-browser/libffmpeg.so vivaldi-stable:armhf: /opt/vivaldi/lib/libffmpeg.so $ ls -l /usr/lib/chromium-browser/libffmpeg.so /opt/vivaldi/lib/libffmpeg.so -rw-r--r-- 1 root root 1098444 1月 30 17:37 /opt/vivaldi/lib/libffmpeg.so -rw-r--r-- 1 root root 2428128 1月 27 19:51 /usr/lib/chromium-browser/libffmpeg.so $ file /opt/vivaldi/lib/libffmpeg.so /opt/vivaldi/lib/libffmpeg.so: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, BuildID[sha1]=a0c7e5c04798cdb9469a869e0b87dfe80fa85f30, stripped
LD_LIBRARY_PATHに指定してみましたがダメでした.
$ LD_LIBRARY_PATH=/opt/vivaldi/lib:$LD_LIBRARY_PATH vivaldi
chromium-codecs-ffmpeg-extra:armhfを入れればいいのではと思ったけど排他でaarch64版が消されるのでやめました.
$ sudo apt install chromium-codecs-ffmpeg-extra:armhf パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下のパッケージが自動でインストールされましたが、もう必要とされていません: libido-0.1-0 これを削除するには 'sudo apt autoremove' を利用してください。 以下のパッケージは「削除」されます: chromium-browser chromium-browser-l10n chromium-codecs-ffmpeg-extra 以下のパッケージが新たにインストールされます: chromium-codecs-ffmpeg-extra:armhf アップグレード: 0 個、新規インストール: 1 個、 削除: 3 個、保留: 0 個。 891 kB のアーカイブを取得する必要があります。 この操作後に 192 MB のディスク容量が解放されます。 続行しますか? [Y/n]
/opt/vivaldi/vivaldiの中を見るとファイルの存在チェックをしているのだけど,/usr/lib/$DEBARCH/oxide-qt/libffmpeg.soとかも見ている.
これのarmhf版(oxideqt-codecs-extra:armhf)を入れてLD_LIBRARY_PATHに指定したら警告が出るけど起動した.(Youtubeを試すと動画を再生しようとするとエラーとなった.1.13の頃はYoutubeが見られていたのは何を使っていたのだろう?)
$ sudo apt install oxideqt-codecs-extra:armhf $ LD_LIBRARY_PATH=/usr/lib/arm-linux-gnueabihf/oxide-qt:$LD_LIBRARY_PATH vivaldi No suitable library for HTML5 MP4 (H.264/AAC) video and MP3 audio was found, therefore only open codecs will play. For assistance on how to enable proprietary media, visit: https://help.vivaldi.com/article/html5-mp4-h-264aac-video-and-mp3-audio-support-under-linux/ [32501:32501:0201/063045.261665:ERROR:gl_implementation.cc(292)] Failed to load libGL.so.1: libGL.so.1: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません :
後ろのFailed to load libGL.so.1も気になるので,libgl1-mesa-glx:armhfを入れてとりあえず解消.
$ dpkg-query -S libGL.so.1 libgl1-mesa-glx:arm64: /usr/lib/aarch64-linux-gnu/mesa/libGL.so.1 libgl1-mesa-glx:arm64: /usr/lib/aarch64-linux-gnu/mesa/libGL.so.1.2.0 $ sudo apt install libgl1-mesa-glx:armhf
なんか1.13より動作が重くなったような気がしますがとりあえず動くようになりました.




