Terminal multiplexers are indispensable tools for Linux developers and system administrators. They allow you to divide a single terminal window into multiple split panes, organise disparate workflows into tabs, and detach sessions on remote servers so long-running commands, builds, or server logs survive unexpected network disconnections. However, traditional multiplexers like tmux and screen present a steep learning curve, requiring users to memorise complex prefix key combinations and edit cumbersome configuration files.
Zellij is a modern terminal workspace multiplexer and session manager written in Rust. Designed out of the box with user-friendly ergonomics, Zellij features an interactive, discoverable status bar displaying available keyboard shortcuts, supports floating and tiled panes, includes an extensible WebAssembly (Wasm) plugin engine, and offers declarative workspace layouts without requiring complex setup.
Why Choose Zellij Over Traditional Multiplexers?
Zellij modernises terminal multitasking through several user-centric architectural innovations:
- Discoverable Interface: An informative status ribbon at the bottom of the screen displays contextual keyboard shortcuts based on your current active mode (pane, tab, resize, or scroll), eliminating the need to consult cheatsheets.
- Floating and Tiled Panes: Seamlessly toggle individual panes between standard tiled grids and floating popup overlays, ideal for running quick git commands or inspecting logs without disrupting your primary editor layout.
- Declarative Layouts (KDL): Define reproducible multi-pane development environments (such as an editor on the left, a build terminal on the upper right, and a server monitor on the lower right) using clean KDL syntax.
- Resilient Session Management: Disconnect from an SSH session and re-attach seamlessly from any computer without losing your shell state or scrollback history.
Installing Zellij on Linux
Zellij is available across major Linux package repositories and as pre-compiled standalone binaries.
Installing on Ubuntu, Debian, and Linux Mint
On modern Debian-based systems, download and install the official compiled binary release:
curl -sL https://github.com/zellij-org/zellij/releases/latest/download/zellij-x86_64-unknown-linux-musl.tar.gz | tar -xz
sudo mv zellij /usr/local/bin/
Installing on Arch Linux and Manjaro
Arch Linux provides Zellij natively in the extra repository:
sudo pacman -S zellij
Installing on Fedora
On Fedora systems, install Zellij using COPR or Cargo:
sudo dnf copr enable varlad/zellij
sudo dnf install zellij
Installing via Cargo (Rust Toolchain)
If you have Rust installed, install Zellij directly via Cargo:
cargo install --locked zellij
Starting and Using Zellij
To launch a new Zellij workspace session, run:
zellij
Your terminal opens with an active command pane surrounded by a thin frame. At the bottom of your screen, the discoverable status bar highlights available command modes.
Understanding Modal Navigation in Zellij
Zellij operates using intuitive navigation modes. Instead of remembering multi-key combinations, press a designated mode key to switch operational context:
| Mode Key | Operational Mode | Key Actions Available |
|---|---|---|
| Ctrl + P | Pane Mode | n (new pane), d (split down), r (split right), x (close), w (toggle floating). |
| Ctrl + T | Tab Mode | n (new tab), x (close tab), r (rename tab), 1-9 (switch tab). |
| Ctrl + N | Resize Mode | h, j, k, l or arrow keys to expand and contract pane borders. |
| Ctrl + S | Scroll Mode | j, k or PageUp / PageDown to inspect command output history. |
| Ctrl + O | Session Mode | d (detach session), w (session manager menu). |
To exit any active mode and return to normal shell typing, press Esc or Enter.
Splitting Panes and Using Floating Windows
To create a split pane without switching modes manually, Zellij supports convenient direct shortcuts:
- Split Right: Press
Ctrl + Pfollowed byrto split the active pane vertically. - Split Down: Press
Ctrl + Pfollowed bydto split the active pane horizontally. - Toggle Floating Pane: Press
Ctrl + Pfollowed byw. The current pane detaches from the grid and floats above your background workspace. PressCtrl + Pthenwagain to re-embed it. - Switch Active Pane: Use
Alt + Left / Right / Up / Downarrow keys to move focus between panes immediately without entering pane mode.
Detaching and Re-attaching Sessions
When running long compile scripts, remote backups, or long-term monitoring processes over SSH, detaching your session ensures that terminating your network connection does not interrupt the command.
- Press Ctrl + O followed by d to detach from the active workspace.
- You are returned to your standard Linux shell prompt with the message: “Session detached”.
- To list all background Zellij sessions currently running on the server, execute:
zellij list-sessions - To re-attach to your existing session:
zellij attach - If multiple sessions are active, specify the session name:
zellij attach <session-name>
Creating Declarative Project Layouts
Zellij allows you to define declarative layout files using human-readable KDL syntax. Save a file named dev-layout.kdl inside ~/.config/zellij/layouts/:
layout {
pane size=1 borderless=true {
plugin location="zellij:tab-bar"
}
pane split_direction="vertical" {
pane size="60%" name="Editor"
pane split_direction="horizontal" {
pane name="Server"
pane name="Terminal"
}
}
pane size=2 borderless=true {
plugin location="zellij:status-bar"
}
}
Launch your customized environment directly by specifying the layout parameter:
zellij --layout dev-layout
Zellij instantly constructs your three-pane workspace, labelling each pane and docking the status bars appropriately.
By pairing zero-configuration key discovery with robust session detachment and floating window flexibility, Zellij makes command-line workspace management accessible and enjoyable for every Linux professional.