Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ターミナルでモダンウェブブラウジング(Carbonyl) // Modern Web Browsing in Terminal (Carbonyl)

ターミナルでモダンウェブブラウジング(Carbonyl) // Modern Web Browsing in Terminal (Carbonyl)

発表: 「鹿児島Linux勉強会 2023.02(オンライン開催)」 https://kagolug.connpass.com/event/275404/
source: https://gitlab.com/matoken/kagolug-2023.02/-/blob/master/slide/slide.adoc

Kenichiro MATOHARA

February 19, 2023
Tweet

More Decks by Kenichiro MATOHARA

Other Decks in Technology

Transcript

  1. ターミナルでモダ
    ンウェブブラウジ
    ング(Carbonyl)
    Kenichiro Matohara(matoken)
    1

    View full-size slide

  2. 南隅から参加(鹿児島の右下)
    好きなLinuxディストリビューションはDebian
    お仕事募集 mailto:work@matohara.org
    Kenichiro Matohara(matoken)
    https://matoken.org
    2

    View full-size slide

  3. ターミナルでウェブブラウジン

    w3m, lynx, elinks 等
    タブやテーブル,画像なども使える
    JavaScriptが利用できず最近はTwitterなど閲覧不可の場合が
    多い(スマホ普及前はフューチャーフォン向けページでだいたい使
    えた)
    軽量なのでページャにも
    3

    View full-size slide

  4. ターミナルでモダンブラウザ
    以前紹介したもの
    通常のFirefox をバックエンドにしてターミナルで利用
    CJKなどの文字の対応が駄目だが,proxy機能を使うことで日本
    語などもokに(Browsh + w3m 等)
    Browsh https://www.brow.sh/
    コンソールでモダンなウェブが閲覧できる Browsh を試す –
    matoken’s meme
    4

    View full-size slide

  5. Carbonyl
    カスタマイズされたChromium をバックエンドにしてターミナルで利

    PulseAudioに対応
    Browshよりはマシだけど日本語などが崩れることがある
    Docker / npm(未確認) / Binary(Linux amd64, arm64 /
    macOS amd64, arm64)
     セルフビルドには100GB以上のディスクが必要らしい
    https://github.com/fathyb/carbonyl
    5

    View full-size slide

  6. build 済イメージを利用
    macOS amd64, macOS arm64, Linux amd64, Linux
    arm64 が用意されている
    Linux amd64
    Chromium もしくは Chromium の依存パッケージを導入する必要
    がある
    https://github.com/fathyb/carbonyl#download
    $ wget https://refloat.ci/artifact/fathyb/carbonyl/59/carbonyl.linux-amd64.zip
    $ mkdir carbonyl && cd carbonyl
    $ unzip ../carbonyl.linux-amd64.zip
    $ du -Hs .
    172432 .
    6

    View full-size slide

  7. Debian での確認例
    $ dpkg-query -f='${Depends}\n' -W chromium
    libasound2 (>= 1.0.17), libatk-bridge2.0-0 (>= 2.5.3), libatk1.0-0 (>= 2.2.0), libatomic1 (>= 4.8), libatspi2.0-0
    m2 (>= 2.4.75), libevent-2.1-7 (>= 2.1.8-stable), libexpat1 (>= 2.0.1), libflac12 (>= 1.3.0), libfontconfig1 (>= 2
    liblcms2-2 (>= 2.2+git20110628), libminizip1 (>= 1.1), libnspr4 (>= 2:4.9-2~), libnss3 (>= 2:3.22), libopenjp2-7 (
    libstdc++6 (>= 12), libwebp7 (>= 1.2.4), libwebpdemux2 (>= 1.2.4), libwebpmux3 (>= 1.2.4), libwoff1 (>= 1.0.0), l
    0, libxrandr2, libxslt1.1 (>= 1.1.27), zlib1g (>= 1:1.2.2), libgtk-3-0 | xdg-desktop-portal-backend, chromium-comm
    7

    View full-size slide

  8. 起動
    JavaScript が必須でw3m やdillo で直接閲覧できないTwitter
    やYouTube なんかも閲覧可能
    PulseAudio でオーディオも再生される
    日本語などのワイド文字の対応はいまいち
    $ ./carbonyl https://example.com
    8

    View full-size slide

  9. Wikipedia(ja)
    10

    View full-size slide

  10. Docker での利用例
     Docker での利用時はこのままではオーディオの利用が出来ない
    $ docker run -ti fathyb/carbonyl https://example.com
    $ docker image ls fathyb/carbonyl
    REPOSITORY TAG IMAGE ID CREATED SIZE
    fathyb/carbonyl latest 4aef4c651071 5 days ago 402MB
    fathyb/carbonyl 1cef5b7f04c3 9 days ago 407MB
    12

    View full-size slide

  11. Docker 経由でAudio 利用
    環境変数 PULSE_SERVER を指定してPulseAudo を利用するようにで
    きる
    PipeWire 環境の場合ローカルのpipewire-pulse にmodule-
    native-protocol-tcp モジュールを読み込んでネットワーク経由で繋
    げるようにしておく
    no sound on windows · Issue #44 · fathyb/carbonyl
    Audio through SSH · Issue #2 · fathyb/carbonyl
    $ pactl load-module module-native-protocol-tcp
    13

    View full-size slide

  12. Docker に環境変数を渡して起動
    音が出た :)
    $ docker run -e PULSE_SERVER=localhost --net=host -ti fathyb/carbonyl https://youtube.com
    14

    View full-size slide

  13. ssh 経由でのオーディオ利用
    リモートホストでCarbonyl を動かしてssh 経由でアクセスしたい
    ssh 経由でもオーディをが使えるか試す
    PulseAudio はtcp:4713 を利用するので,ssh でポート転送する
    ことでリモートサーバで再生したオーディオをローカルで聞ける
    binary
    Docker
    $ ssh -tt -C -R 4713:localhost:4713 ${REMOTE} carbonyl https://youtube.com
    $ ssh -tt -C -R 4713:localhost:4713 ${REMOTE} docker run -e PULSE_SERVER=localhost \
    --net=host -ti fathyb/carbonyl https://youtube.com
    15

    View full-size slide

  14. ssh経由でYouTube再生
    16

    View full-size slide

  15. ssh経由でのオーディオ
    音がブチブチ切れてしまう
    ADSL のせいもあると思うけどPulseAudio の設定変更が必要そう
    (ローカルのオーディオと併用は面倒そう?)

    PulseAudio の /etc/pulse/daemon.conf を参考に format な
    どを変更すれば良くなると思う
    PipeWire: PipeWire Module: Protocol Pulse
    17

    View full-size slide

  16. Browsh との比較
    Carbonyl Browsh
    バックエンド Chromium(カスタ
    ム)
    Firefox
    ウェブブラウザ 同梱 別途必要
    日本語対応 そこそこ いまいち(Proxy利
    用時はOK)
    オーディオ PulseAudio対応 無し
    HTTP Proxy 無し 有り
    18

    View full-size slide

  17. まとめ
    ChromiumベースのCarbonyl
    リモートで動かしてsshで接続することで低スペックや低帯域の端末
    でもモダンウェブブラウザが利用可能
    音も出るのは嬉しいがリモートだと難あり?
    動画も動くが帯域は通常の動画より食うので実用度は?
    実用度はBrowshのhttp proxy モード経由でw3m が良さそう
    Browshは素のFirefoxを使っているがCarbonylはChromiumに
    手を入れているのでメンテナンスが大変そう?
    19

    View full-size slide

  18. 奥付
    発表
    2023-02-
    19(sun)
    発表者
    利用ソフトウェア
    ライセンス
    鹿児島Linux勉強会 2023.02(オンライン開催)
    Kenichiro Matohara(matoken)
    Asciidoctor Reveal.js
    CC BY 4.0
    20

    View full-size slide