Zellij
https://gyazo.com/08912b3c94d833b27ad0da6e847d492a
ぜりっじ?
tmuxみたいなやつ
Terminal Multiplexer
website
github
Rust実装
tmux / GNU Screen との比較
table:_
観点 tmux Zellij
言語 C (2007~) Rust
思想 Unixミニマリズム "Batteries included"
学習コスト 高い(キーバインド暗記) 低い(ステータスバーにヒント表示)
プラグイン なし(シェルスクリプトで拡張) WebAssembly (WASM) ベース
フローティングペイン ネイティブ非対応 ファーストクラス機能
セッション復元 tmux-resurrect等のプラグインが必要 組み込み
Webクライアント なし 組み込み
設定形式 独自形式 KDL
主な特徴
フローティングペイン: Alt+fでトグル。移動・リサイズ・ピン留め(常に前面表示)が可能
スタックペイン: 複数ペインを重ねて配置。矢印キーで切り替え
セッション復元: ペイン構造やコマンドを含むセッションを再起動後も復元可能
Webクライアント: ブラウザからセッションにアクセス可能。認証対応、ペアプロにも使える
コマンドペイン: コマンドをペインとして扱い、終了コードの表示やワンキー再実行ができる
スクロールバック編集: Ctrl+s → e でペインのスクロールバックを$EDITORで開ける
複数ペイン選択: Alt+左クリックで複数選択し、一括操作(閉じる、タブ化、スタック化など)
プラグインシステム
WebAssembly (WASM) / WASI ベースのサンドボックス実行
Zellij自体のUI(ステータスバー、タブバー)もプラグインとして実装されている
Rustが公式サポート言語(zellij-tile SDK)
プラグインの種類:
ペインプラグイン: UIを持ち、ユーザー入力に応答する
バックグラウンドプラグイン: UIなしで動作(長時間タスク等)
配布は単一の.wasmファイル。エンドユーザーはコンパイル不要
イベント駆動モデル(キー入力、ファイルアクセス、コマンド完了等に応答)
組み込みプラグイン: status-bar, tab-bar, strider(ファイルブラウザ), compact-bar
レイアウトシステム
KDL (KDL Document Language) で記述
ペインの分割方向、サイズ、コマンド、プラグインなどを宣言的に定義できる
code:kdl
layout {
pane
pane split_direction="vertical" {
pane
pane command="htop"
}
}
ペインテンプレート / タブテンプレートで再利用可能な構成を定義
default_tab_template で全タブに適用されるデフォルト構成を設定
Swap Layouts: ペイン数に応じて動的にレイアウトを切り替え
リモートURLからのレイアウト読み込みも可能
設定
KDL形式の config.kdl
探索順: --config-dir → ZELLIJ_CONFIG_DIR → ~/.config/zellij(Linux)/ ~/Library/Application Support/org.Zellij-Contributors.Zellij(macOS)
ライブリロード対応: 設定ファイル変更を監視し、即座に反映
デフォルト設定の出力: zellij setup --dump-config > ~/.config/zellij/config.kdl
組み込みテーマ: Light, Rust, Coal, Navy, Ayu
キーバインド
モードシステム
13のモード: normal, locked, resize, pane, move, tab, scroll, search, session など
2つのプリセット:
Default: Ctrl+<key> で各モードに直接アクセス
Unlock-first: Ctrl+g でアンロック後に操作(他アプリとのキー競合回避用)
基本操作
table:_
操作 キー
ペインモード Ctrl+p
新規ペイン Ctrl+p → n
ペインを閉じる Ctrl+p → x
フォーカス移動 Ctrl+p → h/j/k/l
フローティングペイン Alt+f
タブモード Ctrl+t
新規タブ Ctrl+t → n
リサイズモード Ctrl+n
スクロールモード Ctrl+s
セッションモード Ctrl+o
セッションマネージャ Ctrl+o → w
デタッチ Ctrl+o → d
ロック(キースルー) Ctrl+g
終了 Ctrl+q
セッション管理
code:bash
zellij # 新規セッション開始
zellij -s my-session # 名前付きセッション
zellij attach my-session # 既存セッションにアタッチ
zellij list-sessions # セッション一覧
zellij kill-session my-session # セッション削除