Slide 1

Slide 1 text

ターミナルマルチ プレクサのtmuxで Sixel Kenichiro Matohara(matoken) 1

Slide 2

Slide 2 text

matoken 南隅から参加(鹿児島の右下) 好きなLinuxディストリビューションはDebian map: © OpenStreetMap contributors Kenichiro Matohara(matoken) https://matoken.org https://inari.opencocon.org/@matoken 2

Slide 3

Slide 3 text

follow up 1 の でOBS Studio のDraft 版WHIP plugin を利用. 先週リリースの でサポート 🎉 「鹿児島Linux勉強会 2023.06(オンライン開催)」 「WHIP を試 す」 OBS Studio 30.0 Added WHIP/WebRTC output [Sean- Der / kc5nra / DDRBoxman / tt2468] With the introduction of WHIP, FTL is slated for removal in a release after May 2024 3

Slide 4

Slide 4 text

follow up 2 で を発表 scrcpy v2.2 でカメラサポート 🎥 v2.0 でマイクサポートしていたので合わせてAndroid端末を WebCamとして使えるように DroidCam などの類似アプリと比べると手動でAndroidアプリ を導入する必要がないのがメリット? 「鹿児島Linux勉強会 2023.05(オンライン開催)」 「Scrcpyで Android画面転送&操作」 Release scrcpy v2.2 · Genymobile/scrcpy 4

Slide 5

Slide 5 text

tmux でもSixel tmux GNU screen などのターミナルマルチプレクサの一つ(おそらく いま一番メジャー) デタッチ,アタッチ機能で作業の続きを別の端末,回線, 画面縦横分 割, ステータス表示等々 Byobu や mosh/ssh と組み合わせるととても便利 Sixel DEC発の端末でグラフックを表示する形式 最近?様々な環境にサポートされていっている https://github.com/tmux/tmux 5

Slide 6

Slide 6 text

tmux 例 — (左)nvim でスライド編集,(右上)w3m でプレビュー,(右下)コマン ド操作 6

Slide 7

Slide 7 text

tmux 設定 初期設定はちょっと面倒,みんなのblog などから設定を引用して秘 伝のタレ的な…… Canonical発のByobu を使うとGNU screnn/tmux が即実用的 な構成に → https://www.byobu.org 7

Slide 8

Slide 8 text

端末でのグラフック 基本的にascii art と色 8

Slide 9

Slide 9 text

画像をascii art に変換 $ ascii-image-converter ./2023_logo_rectangle_tran.png 9

Slide 10

Slide 10 text

動画をasciiart で視聴(mplayer+caca) 10

Slide 11

Slide 11 text

地図表示(MapSCII) 11

Slide 12

Slide 12 text

Sixel を利用すると $ convert ./2023_logo_rectangle_tran.png sixel: $ img2sixel ./2023_logo_rectangle_tran.png 12

Slide 13

Slide 13 text

🦊 13

Slide 14

Slide 14 text

tmux + Sixel — tmux で画面分割している.(左)LiveCamの最新画像を定期的に取 得して表示,(右上)雨雲レーダーのWebを定期的に表示,(右 下)sayakaでMisskeyのローカルタイムラインをストリーミング 14

Slide 15

Slide 15 text

Zellij  ターミナルマルチプレクサ機能のあるターミナルワークスペースのZell Sixel に対応している "Zellij" "ターミナルワークスペースのZellij - Speaker Deck" https://zellij.dev/ https://speakerdeck.com/matoken/taminaruwakusup 15

Slide 16

Slide 16 text

その他の端末で画像を表示する 実装 Kitty, iTerm2 等独自?実装で画像を表示できるよう(未検証) w3m には以前からX やframebuffer を利用した画像表示が可能 だった.現在はSixel もサポート( $ w3m -sixel http://.. ) 前者はtmux の画面分割を無視した場所に画像が配置される,後 者はtmux 上だとうまく描画されない? 16

Slide 17

Slide 17 text

tmux でSixel を使うには 17

Slide 18

Slide 18 text

Sixel に対応した端末が必要 今回はmlterm,Microsoft Visual Studio Code でも設定変更 で対応可能(らしい) "Are We Sixel Yet?" などが参考になる X無しの場合は やmterm-fb( ./configure --with- gui=fb ) がある https://www.arewesixelyet.com/ yaft 18

Slide 19

Slide 19 text

Codiumでの設定例 Must be enabled with “terminal.integrated.experimentalImageSupport”: true. 19

Slide 20

Slide 20 text

tmux のSixel 対応 8月の Git commit 以降で ./configure --enable- sixel することで対応 まだリリースはされていない( 2022-06-22 の tmux 3.3a が最 新リリース ) dfbc6b1 20

Slide 21

Slide 21 text

Debian のtmux パッケージバージョン unstable(sid) 以前は非対応バージョン experimental は対応バージョン $ rmadison tmux tmux | 2.8-3 | oldoldstable | source, amd64, arm64, armel, armhf tmux | 3.1c-1~bpo10+1 | buster-backports | source, amd64, arm64, armel, armhf tmux | 3.1c-1~bpo10+1 | buster-backports-debug | source tmux | 3.1c-1+deb11u1 | oldstable | source, amd64, arm64, armel, armhf tmux | 3.1c-1+deb11u1 | oldstable-debug | source tmux | 3.3a-3~bpo11+1 | bullseye-backports | source, amd64, arm64, armel, armhf tmux | 3.3a-3~bpo11+1 | bullseye-backports-debug | source tmux | 3.3a-3 | stable | source, amd64, arm64, armel, armhf tmux | 3.3a-5 | testing | source, amd64, arm64, armel, armhf tmux | 3.3a-5 | unstable | source, amd64, arm64, armel, armhf tmux | 3.3a-5 | unstable-debug | source tmux | 3.4~git20230924-1 | experimental | source, amd64, arm64, armel, armhf tmux | 3.4~git20230924-1 | experimental-debug | source 21

Slide 22

Slide 22 text

Debian experimental のtmux はSixel 対応 $ wget http://deb.debian.org/debian/pool/main/t/tmux/tmux_3.4~git20230924-1.debian.tar.xz $ tar xvf ./tmux_3.4~git20230924-1.debian.tar.xz $ grep sixel debian/rules dh_auto_configure -- --enable-utempter --enable-systemd --enable-sixel $ grep -A5 3.4~git20230924-1 debian/changelog tmux (3.4~git20230924-1) experimental; urgency=medium * New upstream snapshot, from Git commit b777780720. * Enable Sixel support. -- Romain Francoise Sun, 24 Sep 2023 13:12:42 +0200 1 2 22

Slide 23

Slide 23 text

Debian 12 bookworm / sid でのSixel 対応tmux build 例 1 tmux build 依存パッケージ導入 2 関連パッケージ導入 3 tmux source 入手 4 sixel を有効にして( --enable-sixel ) configure && make $ sudo apt build-dep tmux $ sudo apt install vlock build-essential git $ git clone https://github.com/tmux/tmux $ cd tmux $ ./configure --enable-sixel $ make 1 2 3 4 23

Slide 24

Slide 24 text

tmux でSixel が使えるのを確認  Sixel 非対応の場合lsix で Error: Your terminal does not report having sixel graphics support. $ ./tmux -V tmux next-3.4 $ ./tmux $ echo ${TERM_PROGRAM} tmux $ sudo apt install imagemagick $ wget https://github.com/hackerb9/lsix//releases/latest/download/lsix $ chmod u+x ./lsix $ ./lsix 24

Slide 25

Slide 25 text

いくつかのアプリでSixel で遊ぶ 25

Slide 26

Slide 26 text

lsix hackerb9/lsix: Like "ls", but for images. Shows thumbnails in terminal using sixel graphics. $ wget https://github.com/hackerb9/lsix//releases/latest/download/lsix $ chmod u+x ./lsix $ lsix 26

Slide 27

Slide 27 text

Imagemagick "ImageMagick – Convert, Edit, or Compose Digital Images" https://imagemagick.org/ 27

Slide 28

Slide 28 text

img2sixel( libsixel-bin package) $ img2sixel IMAGEFILE $ img2sixel IMAGEFILE > SIXELFILE $ cat SIXELFILE $ curl -s https://upload.wikimedia.org/wikipedia/commons/thumb/8/80/Wikipedia-logo-v2.svg/103px img2sixel 28

Slide 29

Slide 29 text

監視カメラを定期的に監視 10分+動作時間毎に河川監視カメラの最新1コマSixel で表示し続ける $ while true ; do curl -s 'http://118.22.32.241/snap/k-camera20.jpg' | img2sixel ; sleep 600 ;d 29

Slide 30

Slide 30 text

YoutubeLiveを定期的に監視 1分+動作時間毎にYoutubeLiveの最新1コマを画像に変換,Sixel で 表示し続ける $ while true; do ffmpeg -i "$(yt-dlp --quiet -f 'bestvideo[height<=480]' -g IWPSU_aXdIE | head 30

Slide 31

Slide 31 text

ウェブサイトのスクリーンショ ットを表示 川の防災情報の雨雲レーダーを定期的に表示 $ while true; do chromium --headless --hide-scrollbars --window-size=800,500 --screenshot=/tmp 'https://www.river.go.jp/kawabou/mb?zm=11&fld=0&clat=31.24891059083941&clon=130.67756652832034 2>/dev/null ;img2sixel /tmp/myscreenshot.png ;sleep 600; done 31

Slide 32

Slide 32 text

misskey クライアント sayaka ちゃん Misskey のLHT を垂れ流しできる $ git clone https://github.com/isaki68k/sayaka $ cd sayaka $ sudo apt install libbsd-dev libwebp-dev libgif-dev libwslay1 libwslay-dev libmbedtls-dev lib $ ./configure $ bmake -DRELEASE sayaka $ ./src/sayaka --local misskey.io $ ./src/sayaka --show-nsfw --show-cw --local misskey.io 32

Slide 33

Slide 33 text

tui mastoton クライアントのtoot 現時点では画像非対応 image branch でAsciiArt で画像表示可能 Kitty, iTerm2 向けの画像表示PR あり(未検証) Sixel 対応は検討中?(POC) https://github.com/ihabunek/toot/pull/319 33

Slide 34

Slide 34 text

画面分割などはGUIでもいいので は? 画面分割機能のあるターミナルやタイル型WMなどを使えば mlterm だと shift+F1/F2 で分割,shift+F3/F4 で移動 速度も速い tmumx ならリモートでも行ける 慣れてる 34

Slide 35

Slide 35 text

まとめ tmux がグラフックを扱えるSixel に対応 Sixel が使えると端末上で画像確認ができて便利 リモートの画像をコピーせずに端末で表示して確認したり(サーバリ ソースに気をつけよう) Sixel 対応tmux で端末で画面分割したりしながら画像を扱えて楽し い 実用度もそこそこある……と思う 見たい情報をリモートでtmux 経由で表示しておいて,回線や電源 が不安定な災害時や外出時にattach して閲覧など( ssh -C / ssh_config → Compression はしておきたい) 35

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

No content