$30 off During Our Annual Pro Sale. View Details »

ターミナルワークスペースのZellij

 ターミナルワークスペースのZellij

Kenichiro MATOHARA

August 21, 2022
Tweet

More Decks by Kenichiro MATOHARA

Other Decks in Technology

Transcript

  1. ターミナルワーク ターミナルワーク スペースのZellij スペースのZellij Kenichiro Matohara(matoken) <maroken@kagolug.org> 1 / 31

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

    2 / 31
  3. ターミナルマルチプレクサとタ ターミナルマルチプレクサとタ ーミナルデスクトップ ーミナルデスクトップ 「鹿児島Linux勉強会 2022.02」ターミナルマルチプレクサとターミ ナルデスクトップ」として「Monotty Desktopio | vtm」を紹介.

    vtmはウィンドウシステムに慣れていればとっつきやすそう趣味性が 高い? Zellijを知る とっつきやすそうで実用度も高そうなので試してみた 3 / 31
  4. ターミナルマルチプレクサ ターミナルマルチプレクサ / (やその派生)が有名 複数端末をキーボード・ショートカットで切り替えたり キーボードでコピー&ペーストしたり 設定すればマウス操作も可能 縦横分割で効率的に使ったり デタッチ,アタッチで席を移動しても同じ環境を使い続けられたり 他の人にネットワーク経由でターミナルを見せたり共同で操作したり

    とても便利で手放せない GNU screen tmux 4 / 31
  5. スライド作成中の画面 スライド作成中の画面 5 / 31

  6. 反面環境構築や操作を覚えるの 反面環境構築や操作を覚えるの が大変 が大変 設定をを作るのが大変. 秘伝のタレ的な .screnrc 環境構築については でほぼ問題ない感じに 操作を覚えるのは頑張るしか?

    とりあえずターミナル作成,切り替え,スクロール,検索あたりを覚 えればどうにか? byobu 6 / 31
  7. 大量のキーバインド 大量のキーバインド 7 / 31

  8. Redditの を見ていて見つけたもの ターミナルの中の仮想デスクトップ環境でウィンドウを複数作成してマ ウスで操作 マウス操作なので直感的,反面マウス必須 グループ化やビューでウィドウ配置など 軽量で安定度も◦ POSIX系だけでなくWindows環境でも動くよう(未確認) Monotty Desktopio

    | vtm Monotty Desktopio | vtm Command Line 8 / 31
  9. Demo環境有り Demo環境有り いろいろなアプリケー ションが開かれていて にぎやか ssh vtm@netxs.online 9 / 31

  10. Zellij Zellij About Zellij Zellij is a terminal workspace. It

    has the base functionality of a terminal multiplexer (similar to tmux or screen) but includes many built-in features that would allow users to extend it and create their own personalized environment. Zellij 10 / 31
  11. 導入 導入 シングルバイナリで導入できるのでお手軽 Linux x86_64, aarch64 / macOS x86_64, aarch64

    ディストリビューションパッケージも cargo install では手元の環境では約30分 cargo install --locked zellij armhfでは動かない…… https://github.com/zellij- org/zellij/blob/main/docs/THIRD_PARTY_INSTALL.md 11 / 31
  12. 実行 実行 $ zellij 12 / 31

  13. 最上部にタブバー(プラグイン) 中央にターミナルペイン 下部にステータスバー(プラグイン) ステータスバーにキーバインドのヒントが表示される 13 / 31

  14. 操作例 操作例 Ctrl + t n タブが開かれる 14 / 31

  15. Ctrl + p n 15 / 31

  16. 16 / 31

  17. Ctrl + p d 17 / 31

  18. 18 / 31

  19. Ctrl + p w 19 / 31

  20. 20 / 31

  21. マウス操作例 マウス操作例 スクロールアップでヒストリー ドラッグでクリップボードにコピー  TmuxやGNU screemも同じようなことは可能だが,要設定 21 / 31

  22. Zellijセッションとデタッチ,ア Zellijセッションとデタッチ,ア タッチ タッチ 1 新しいセッションが開かれる(Ctrl + o d でデタッチ)

    2 セッション一覧確認 3 2nd-session という名前を付けたセッションを新しく開く 4 2nd-session という名前のセッションをアタッチする $ zellij $ zellij list-sessions cold-seat $ zellij -s 2nd-session $ zellij list-sessions 2nd-session cold-seat $ zellij attach 2nd-session 1 2 3 4 22 / 31
  23. Sixelで画像表示 Sixelで画像表示  Sixel対応端末で実行すること 23 / 31

  24. その他 その他 設定ファイル 画面レイアウトテンプレート テーマ プラグイン機能 24 / 31

  25. 各種比較 各種比較 25 / 31

  26. とっつきやすさ とっつきやすさ vtm > Zelliju > Tmux > GNU screen

     vtmはウィンドウシステムに慣れていれば直感的に,Zellijはヒン トが表示される,Tmux, GNU screenはキーバインドを覚えな いと使えない 26 / 31
  27. 動作OS環境比較 動作OS環境比較 GNU screen, Tmux 多くの環境で動作する vtm Linux amd64, FreeBSD

    amd64, NetBSD amd64, OpenBSD amd64, macos, Windowsのバイナリが提供, Linux arm64, armhfでもbuildすると動作した Zellij Linux x86_64/aarch64, macOS x86_64/aarch64バイナ リが提供,armhfではビルドできない  Zellijは多少環境を選ぶ.issueにarmhfなどでも動作するバー ジョンを求めるものがあったりする 27 / 31
  28. 動作端末比較 動作端末比較 GNU screen, Tmux 多くの環境で動作する vtm 多くの環境で動作するが端末によって問題が発生するので動作確 認済端末を確認したほうが良い Zellij

    端末によって問題がある場合がある,Sixelを使いたい場合は Sixel対応端末が必要 https://github.com/netxs- group/vtm/discussions/72 28 / 31
  29. 導入のしやすさ 導入のしやすさ GNU screen, Tmux パッケージマネージャなどで導入可能 vtm シングルバイナリ Zellij パッケージマネージャもしくはシングルバイナリ

     vtmやZellijはシングルバイナリなのでパッケージマネージャの 使えない一般ユーザでも導入しやすい 29 / 31
  30. まとめ まとめ ターミナルマルチプレクサ便利だけど覚えるのが大変 Zellijはステータスバーに操作のヒントが表示されるのでキーバインド を覚えなくてもある程度使えるので学習コストが低そう Tmuxモード(Ctrl + b) を使えばTmuxからの移行者もスムーズ? 少しもたつくことも(issueにもいくつか上がっているのでうちだけの

    問題では無さそう) 少し環境を選ぶ(armhfでも動かしたい)が最近の大抵のLinux(と macOS)なら動作する 端末を選ぶほうが面倒かも? シングルバイナリで導入しやすいのでぜひ試してみてください 30 / 31
  31. 奥付 奥付 発表 発表者 利用ソフトウェア ライセンス CC BY-NC-SA 4.0 鹿児島Linux勉強会

    2022.08(オンライン開催) Kenichiro Matohara(matoken) Asciidoctor Reveal.js 31 / 31