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 Slide

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

    View Slide

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

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

    View Slide

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

    View Slide

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

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

    View 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 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 Slide

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

    View Slide

  9. Twitter
    9

    View Slide

  10. Wikipedia(ja)
    10

    View Slide

  11. WordPress
    11

    View Slide

  12. 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 Slide

  13. 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 Slide

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

    View Slide

  15. 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 Slide

  16. ssh経由でYouTube再生
    16

    View Slide

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

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  21. View Slide