Configuration
cc-deck installs with sensible defaults that work out of the box. This page covers how to customize keybindings, choose layout variants, and integrate with your terminal emulator.
Layout Variants
cc-deck ships with three layout variants that control what appears alongside the sidebar:
| Variant | Description |
|---|---|
|
Sidebar + tab-bar at top + status-bar at bottom. The most informative layout, recommended for users new to Zellij. This is the default. |
|
Sidebar + compact-bar at bottom. Less visual clutter while still showing tab names. |
|
Sidebar only, no bars at all. Maximum terminal space. For experienced users who navigate entirely by keyboard. |
All three variants are installed as separate layout files.
The --layout flag during install sets which one becomes the default cc-deck.kdl:
cc-deck config plugin install --layout minimal
You can always try a different variant without changing the default:
zellij --layout cc-deck-standard
zellij --layout cc-deck-minimal
zellij --layout cc-deck-clean
Custom Keybindings
The three global shortcuts (Alt+s for navigation, Alt+a for attend, Alt+w for working) can be changed.
Using the Personal Layout
The recommended approach is to create a personal layout file that is never overwritten by cc-deck config plugin install:
-
Copy the default layout:
cp ~/.config/zellij/layouts/cc-deck.kdl ~/.config/zellij/layouts/cc-deck-personal.kdl -
Edit the plugin configuration block to change the key bindings:
plugin location="file:~/.config/zellij/plugins/cc_deck.wasm" { navigate_key "Super s" attend_key "Super n" working_key "Alt w" } -
Set the personal layout as your default in
~/.config/zellij/config.kdl:default_layout "cc-deck-personal"
The personal layout is never modified by cc-deck config plugin install, so your custom keybindings are preserved across updates.
Ghostty Integration
If you use Ghostty as your terminal emulator, you can pass Cmd (Super) keys through to Zellij for a macOS-native feel.
In your Ghostty config, unbind the keys you want to pass through:
keybind = cmd+t=unbind
keybind = cmd+s=unbind
keybind = cmd+n=unbind
Then bind them in your Zellij config:
keybinds {
shared {
bind "Super t" { NewTab; }
}
}
And configure cc-deck to use Super keys in your personal layout:
plugin location="file:~/.config/zellij/plugins/cc_deck.wasm" {
navigate_key "Super s"
attend_key "Super n"
working_key "Alt w"
}
This gives you Cmd+S for navigation and Cmd+N for smart attend, matching the macOS convention of using Cmd for app-level shortcuts.
Session Timing
The plugin controls session lifecycle transitions through configurable timeouts. These determine how long a session stays in each state before advancing to the next.
The full lifecycle is:
Working ──[done_timeout]──> Done ──[done_timeout]──> Idle ──[auto_pause_secs]──> Paused
Configure these in the plugin block of your layout file:
plugin location="file:~/.config/zellij/plugins/cc_deck.wasm" {
done_timeout "300" // seconds before Working→Done and Done→Idle (default: 300)
idle_fade_secs "3600" // idle indicator fade duration in seconds (default: 3600)
auto_pause_secs "3600" // auto-pause after idle for this many seconds (default: 3600, 0 to disable)
attend_cycle_ms "2000" // rapid-cycle window for attend/working in ms (default: 2000, 0 to disable)
}
| Key | Default | Description |
|---|---|---|
|
300 |
Seconds of inactivity before a Working session transitions to Done (green checkmark), and again before Done transitions to Idle. |
|
3600 |
Duration in seconds over which the Idle indicator fades from light grey to dark grey, providing a visual sense of staleness. |
|
3600 |
Seconds an Idle session waits before auto-pausing. Paused sessions are excluded from attend cycling and hook processing. Set to 0 to disable auto-pause. |
|
2000 |
When pressing |
Auto-paused sessions unpause automatically when you switch to them (via click, navigate, or attend).
Setting cc-deck as Default
To start Zellij with cc-deck automatically, add to ~/.config/zellij/config.kdl:
default_layout "cc-deck"
Then simply running zellij will start with the cc-deck sidebar.
Plugin Installation
The plugin is installed via the cc-deck CLI:
# Install with defaults (standard layout)
cc-deck config plugin install
# Install with minimal layout as default
cc-deck config plugin install --layout minimal
# Force overwrite without prompts
cc-deck config plugin install --force
# Check installation status
cc-deck config plugin status
# Remove the plugin, layouts, and hooks
cc-deck config plugin remove
When layout files have local changes, the installer shows a colored diff and offers three options: overwrite, skip, or backup and overwrite.