Zellij — терминальный мультиплексор, написанный на Rust: панели, вкладки, плавающие окна, лейауты и статус-бар с подсказками. В отличие от tmux, он показывает доступные действия прямо на экране, поэтому им проще пользоваться без заучивания комбинаций. Разберём установку, работу с сессиями и конфигурацию.
Установка
Zellij есть в репозиториях многих дистрибутивов, а также в виде готового бинарника и Flatpak.
# Debian/Ubuntu
sudo apt install zellij
# Fedora
sudo dnf install zellij
# Arch
sudo pacman -S zellij
# Flatpak
flatpak install flathub org.zellij.Zellij
# проверить версию
zellij --version
Если в репозитории старая версия, установите через cargo или возьмите готовый бинарник с официальной страницы релизов — и проверьте контрольную сумму перед запуском.
# если установлен Rust
cargo install --locked zellij
# либо скачайте архив с релизами проекта, сверьте sha256 и распакуйте в ~/.local/bin
sha256sum zellij-*.tar.gz
mkdir -p ~/.local/bin && tar -xzf zellij-*.tar.gz -C ~/.local/bin
Первый запуск и интерфейс
После запуска внизу отображается строка подсказок: нажатия модификатора переключают режимы, а подсказки показывают, что доступно. Это главное отличие от tmux.
# запустить
zellij
# сразу с именем сессии
zellij -s work
# посмотреть доступные команды
zellij --help | head -30
По умолчанию модификатор — Ctrl + p для панелей и Ctrl + t для вкладок. Точные сочетания зависят от версии и конфигурации, поэтому ориентируйтесь на подсказки внизу экрана.
Панели и вкладки
Панель — область внутри вкладки, вкладка — набор панелей. Разделение похоже на tmux, но переключение нагляднее.
# типовые действия
# Ctrl+p, затем n — новая панель
# Ctrl+p, затем d — разделить вправо
# Ctrl+p, затем r — разделить вниз
# Ctrl+t, затем n — новая вкладка
# Ctrl+t, затем стрелки — переключение вкладок
# Ctrl+p, затем x — закрыть панель
Плавающие панели удобны для быстрого просмотра логов или документации, не нарушая основную раскладку.
# плавающая панель
# Ctrl+p, затем w
# переместить фокус
# Ctrl+p, затем стрелки
Сессии
Сессия переживает закрытие терминала: к ней можно подключиться с другого окна или по SSH. Это основной сценарий для серверной работы.
# список сессий
zellij list-sessions
# подключиться к сессии
zellij attach work
# создать новую, если нет
zellij attach --create work
# убить сессию
zellij kill-session work
# убить все
zellij kill-all-sessions
На сервере держите одну именованную сессию на задачу: так проще вернуться к работе после обрыва соединения.
Конфигурация
Файл конфигурации написан на KDL — это простой текстовый формат. Настройте тему, модификатор, поведение копирования и стартовый лейаут.
mkdir -p ~/.config/zellij
cat > ~/.config/zellij/config.kdl <<'EOF'
keybinds {
normal {
bind "Ctrl g" { SwitchToMode "locked"; }
}
}
theme "catppuccin-mocha"
default_shell "bash"
copy_command "wl-copy"
EOF
# проверить, что файл читается и версия на месте
zellij --version
ls -l ~/.config/zellij/config.kdl
Тема задаётся именем из встроенного набора или пользовательским файлом. Для Wayland укажите copy_command "wl-copy", для X11 — xclip -selection clipboard.
Лейауты
Лейаут описывает стартовую раскладку: сколько панелей, какие команды в них запускать. Это избавляет от ручной сборки окружения каждый раз.
cat > ~/.config/zellij/layouts/work.kdl <<'EOF'
layout {
tab name="code" {
pane command="nvim" { args "src/main.py"; }
pane split_direction="vertical" {
pane command="bash" { size "60%"; }
pane command="htop";
}
}
tab name="logs" {
pane command="journalctl" { args "-f"; }
}
}
EOF
# запуск с лейаутом
zellij --layout work
Плагины
Zellij поддерживает плагины на WASM: файловый менеджер, просмотр сессий, таймеры. Устанавливайте только те, которым доверяете: плагин работает внутри вашего терминала.
# каталог плагинов
ls ~/.config/zellij/plugins 2>/dev/null | head
# список доступных плагинов проекта
# https://zellij.dev/plugins
Zellij или tmux
- Zellij проще для новичков: подсказки и единый модификатор.
- tmux зрелее и чаще встречается на серверах по умолчанию.
- Zellij лучше работает с современными терминалами и Wayland-буфером.
- tmux имеет больше плагинов и примеров в интернете.
# оба можно держать установленными
tmux -V 2>/dev/null; zellij --version 2>/dev/null
Типичные проблемы
- Не копируется текст — не задан
copy_command. - Ломаются горячие клавиши — конфликт с терминалом или оболочкой.
- Сессия не находится — проверьте имя и права пользователя.
- Плагин не запускается — несовместимая версия или отсутствует разрешение.
# журнал
ls ~/.cache/zellij 2>/dev/null
zellij --debug 2>&1 | tail -30
Работа по SSH и восстановление сессии
Главный сценарий мультиплексора — не потерять работу при обрыве соединения. Сессия продолжает жить на сервере, а вы подключаетесь заново.
# на сервере
ssh user@server
zellij attach --create main
# при обрыве связи просто подключитесь снова
ssh user@server -t "zellij attach main"
Команда -t выделяет псевдотерминал, без неё attach может завершиться ошибкой. Для нескольких задач держите разные сессии: main, db, logs.
# переименовать текущую сессию (в интерфейсе)
# Ctrl+p, затем s — список сессий
zellij list-sessions
zellij kill-session old-work
Автоматизация запуска
Лейауты можно комбинировать с переменными окружения и вызывать из скриптов: например, одна команда поднимает окружение для конкретного проекта.
#!/bin/bash
# /usr/local/bin/project-shell
set -euo pipefail
cd "$1"
zellij attach --create "$(basename "$1")" 2>/dev/null || zellij --layout dev
Не храните в лейауте пароли и токены: файл читается всеми, у кого есть доступ к домашнему каталогу.
Настройка статус-бара и подсказок
# в config.kdl можно скрыть подсказки, когда они мешают
# simplified_ui true
# show_startup_tips false
grep -n "simplified_ui\|show_startup_tips" ~/.config/zellij/config.kdl 2>/dev/null
Ограничения и типичные ошибки
- Старые терминалы не поддерживают часть escape-последовательностей.
- Конфликт модификатора с tmux или оболочкой.
- Плагины требуют совместимой версии Zellij.
- Копирование в Wayland не работает без настроенного
wl-copy.
# проверить TERM и поддержку цветов
echo $TERM
tput colors 2>/dev/null
Итог
Zellij — удобный современный мультиплексор с понятными подсказками, сессиями и лейаутами. Начните с одной сессии и двух панелей, затем добавьте конфиг и лейаут под свою работу. Для серверов держите именованные сессии, а для копирования на Wayland настройте wl-copy.