目次
背景
- 10年以上、tmux on screen(GNU Screen)を使い続けてきた
- しかし、ここに来て、zellijも使い始めた
- その結果、zellij on tmux on screenという三重仮想化の極致に達した
- 二重仮想化をしている人も全く見ないが、三重の人はさらに稀有だろう
2重仮想化
- もともとは2重仮想化までだった
- ボトムバーにscreenのタブ、ヘッドバーにtmuxのタブを表示していた
- これで10年以上、全く問題なく運用していた

3重仮想化に至った背景
- 問題はAIだった
- 複数のAIコーディングをrcなしでスマホも通して操作したくなった
- それに伴いどこからでもatttachできるterminalが必要になった
- しかし、現状screenとtmuxをデフォルトShellとして使っている
- そのため、tmuxをai用に起動すると、tmux in tmuxになってしまい動かなかった
- そこで、別のterminal multiplexerを使う必要が生まれ、zellijを使うに至った
3重仮想化
以下のように、更にzellijがterminalに入って、三重入れ子のターミナルとなった。

なお、Terminal Multiplexerのショートカットは以下にしている:
- Screen: ctrl-z
- Tmux: ctrl-q
- Zellij: 無効化
3重仮想化とスマホ

- また、zellijとttydによって、スマホからもアクセスして、rcなしで以下のように簡便に操作が可能になった
- これによって、複数PCのAgentを束ねて、10個以上のAgentをスマホで簡単に管理できるようになった
神キーの配置
- PCには、左Ctrlキーに近いところに3つの神キーがある
- 言わずもしれた、QAZの3つのキーである
- このキーはCtrlと相性が良いので個人的に神キーと読んでいる
- その上で、Ctrl-aはあえてTeminal Multiplexerのprefixキーとしては使わない設計としている
- 理由は、Ctrl-aはEmacsやVimで使うため、そっちを優先して開けているからだ

配置
見た目は3重入れ子だが、zellijのparent processから分離する設計にしている。
| |
つまり、tmux on screenは起動すると一撃で開くが、zellij自体はその後別のコマンドで起動する形。
まとめ
- もともとはnohupコマンドを打たずにずっとプロセスをbackgroundで実行するために、screenを使っていた
- そのうち、便利さのために、その中でtmuxも使い2重化し完全にPCを支配下に置いていた
- さらに最近、AIのために、zellijとttydも使い3重化している
- その結果、スマホからでもPCの作業を簡便にすることができるようになった
- ちにみに、今は更に一歩進んで統括Agentと仕事をするようにもなっている
