Configuration

Zellij uses KDL as its configuration language.

Quickstart:

mkdir ~/.config/zellij
zellij setup --dump-config > ~/.config/zellij/config.kdl

Note: In most cases, Zellij will create the above file automatically on first run. Be sure to check if it exists first.

Where does Zellij look for the config file?

By default Zellij will look for config.kdl in the config directory.

Zellij will search for the config directory as follows:

  • --config-dir flag

  • ZELLIJ_CONFIG_DIR env variable

  • $HOME/.config/zellij

  • default location

    • Linux: /home/alice/.config/zellij
    • Mac: /Users/Alice/Library/Application Support/org.Zellij-Contributors.Zellij
  • system location (/etc/zellij)

How to bypass the config file?

In order to pass a config file directly to zellij:

zellij --config [FILE]

or use the ZELLIJ_CONFIG_FILE environment variable.

To start without loading configuration from default directories:

zellij options --clean

How do I update the config file for running sessions?

Zellij actively watches for changes in the active configuration file. Most fields will be applied immediately without the need for a restart. Otherwise, this will be mentioned in the commentary of the relevant field.

The themes folder, the keybindings folder and the layouts folder are watched as well.

Changing the configuration from the settings screen

Most of the configuration can also be changed from the settings screen (Ctrl o + c with the default keybinding preset, or "Settings…" in the right-click menu). Changes apply right away, and stay unsaved until they are saved to the configuration file.

When saving, Zellij changes only the affected parts of the file and keeps its comments and formatting. The previous version of the file is copied next to it as config.kdl.bak, replacing any earlier backup with that name.

What can be configured?

The configuration file is made of options set at its root, and of blocks:

BlockPurpose
keybindskeybindings and keybinding presets
mousebindsmouse bindings
themesthemes
uipane frame and border settings
pluginsplugin aliases
load_pluginsplugins loaded in the background when a session starts
envenvironment variables for new panes
web_clientthe web client
context_menuthe right-click menu
session_suggestionssession suggestions
terminalthe Zellij terminal window
attentionthe inbox, status markers and desktop notifications