1+ // This config is just like `zellij.kdl`, except it shows what it would look
2+ // like if modifiers were done using `+` instead of spaces (thus needing to be
3+ // quoted).
4+ keybinds {
5+ normal {
6+ // uncomment this and adjust key if using copy_on_select=#false
7+ /- bind Alt+c { Copy }
8+ }
9+ locked {
10+ bind Ctrl+g { SwitchToMode Normal }
11+ }
12+ resize {
13+ bind Ctrl+n { SwitchToMode Normal }
14+ bind h Left { Resize Left }
15+ bind j Down { Resize Down }
16+ bind k Up { Resize Up }
17+ bind l Right { Resize Right }
18+ bind "=" + { Resize Increase }
19+ bind - { Resize Decrease }
20+ }
21+ pane {
22+ bind Ctrl+p { SwitchToMode Normal }
23+ bind h Left { MoveFocus Left }
24+ bind l Right { MoveFocus Right }
25+ bind j Down { MoveFocus Down }
26+ bind k Up { MoveFocus Up }
27+ bind p { SwitchFocus }
28+ bind n { NewPane ; SwitchToMode Normal }
29+ bind d { NewPane Down ; SwitchToMode Normal }
30+ bind r { NewPane Right ; SwitchToMode Normal }
31+ bind x { CloseFocus ; SwitchToMode Normal }
32+ bind f { ToggleFocusFullscreen ; SwitchToMode Normal }
33+ bind z { TogglePaneFrames ; SwitchToMode Normal }
34+ bind w { ToggleFloatingPanes ; SwitchToMode Normal }
35+ bind e { TogglePaneEmbedOrFloating ; SwitchToMode Normal }
36+ bind c { SwitchToMode RenamePane ; PaneNameInput 0 }
37+ }
38+ move {
39+ bind Ctrl+h { SwitchToMode Normal }
40+ bind n Tab { MovePane }
41+ bind h Left { MovePane Left }
42+ bind j Down { MovePane Down }
43+ bind k Up { MovePane Up }
44+ bind l Right { MovePane Right }
45+ }
46+ tab {
47+ bind Ctrl+t { SwitchToMode Normal }
48+ bind r { SwitchToMode RenameTab ; TabNameInput 0 }
49+ bind h Left Up k { GoToPreviousTab }
50+ bind l Right Down j { GoToNextTab }
51+ bind n { NewTab ; SwitchToMode Normal }
52+ bind x { CloseTab ; SwitchToMode Normal }
53+ bind s { ToggleActiveSyncTab ; SwitchToMode Normal }
54+ bind "1" { GoToTab 1 ; SwitchToMode Normal }
55+ bind "2" { GoToTab 2 ; SwitchToMode Normal }
56+ bind "3" { GoToTab 3 ; SwitchToMode Normal }
57+ bind "4" { GoToTab 4 ; SwitchToMode Normal }
58+ bind "5" { GoToTab 5 ; SwitchToMode Normal }
59+ bind "6" { GoToTab 6 ; SwitchToMode Normal }
60+ bind "7" { GoToTab 7 ; SwitchToMode Normal }
61+ bind "8" { GoToTab 8 ; SwitchToMode Normal }
62+ bind "9" { GoToTab 9 ; SwitchToMode Normal }
63+ bind Tab { ToggleTab }
64+ }
65+ scroll {
66+ bind Ctrl+s { SwitchToMode Normal }
67+ bind e { EditScrollback ; SwitchToMode Normal }
68+ bind s { SwitchToMode EnterSearch ; SearchInput 0 }
69+ bind Ctrl+c { ScrollToBottom ; SwitchToMode Normal }
70+ bind j Down { ScrollDown }
71+ bind k Up { ScrollUp }
72+ bind Ctrl+f PageDown Right l { PageScrollDown }
73+ bind Ctrl+b PageUp Left h { PageScrollUp }
74+ bind d { HalfPageScrollDown }
75+ bind u { HalfPageScrollUp }
76+ // uncomment this and adjust key if using copy_on_select=#false
77+ /- bind Alt+c { Copy }
78+ }
79+ search {
80+ bind Ctrl+s { SwitchToMode Normal }
81+ bind Ctrl+c { ScrollToBottom ; SwitchToMode Normal }
82+ bind j Down { ScrollDown }
83+ bind k Up { ScrollUp }
84+ bind Ctrl+f PageDown Right l { PageScrollDown }
85+ bind Ctrl+b PageUp Left h { PageScrollUp }
86+ bind d { HalfPageScrollDown }
87+ bind u { HalfPageScrollUp }
88+ bind n { Search down }
89+ bind p { Search up }
90+ bind c { SearchToggleOption CaseSensitivity }
91+ bind w { SearchToggleOption Wrap }
92+ bind o { SearchToggleOption WholeWord }
93+ }
94+ entersearch {
95+ bind Ctrl+c Esc { SwitchToMode Scroll }
96+ bind Enter { SwitchToMode Search }
97+ }
98+ renametab {
99+ bind Ctrl+c { SwitchToMode Normal }
100+ bind Esc { UndoRenameTab ; SwitchToMode Tab }
101+ }
102+ renamepane {
103+ bind Ctrl+c { SwitchToMode Normal }
104+ bind Esc { UndoRenamePane ; SwitchToMode Pane }
105+ }
106+ session {
107+ bind Ctrl+o { SwitchToMode Normal }
108+ bind Ctrl+s { SwitchToMode Scroll }
109+ bind d { Detach }
110+ }
111+ tmux {
112+ bind "[" { SwitchToMode Scroll }
113+ bind Ctrl+b { Write 2 ; SwitchToMode Normal }
114+ bind "\" " { NewPane Down ; SwitchToMode Normal }
115+ bind % { NewPane Right ; SwitchToMode Normal }
116+ bind z { ToggleFocusFullscreen ; SwitchToMode Normal }
117+ bind c { NewTab ; SwitchToMode Normal }
118+ bind , { SwitchToMode RenameTab }
119+ bind p { GoToPreviousTab ; SwitchToMode Normal }
120+ bind n { GoToNextTab ; SwitchToMode Normal }
121+ bind Left { MoveFocus Left ; SwitchToMode Normal }
122+ bind Right { MoveFocus Right ; SwitchToMode Normal }
123+ bind Down { MoveFocus Down ; SwitchToMode Normal }
124+ bind Up { MoveFocus Up ; SwitchToMode Normal }
125+ bind h { MoveFocus Left ; SwitchToMode Normal }
126+ bind l { MoveFocus Right ; SwitchToMode Normal }
127+ bind j { MoveFocus Down ; SwitchToMode Normal }
128+ bind k { MoveFocus Up ; SwitchToMode Normal }
129+ bind o { FocusNextPane }
130+ bind d { Detach }
131+ bind x { CloseFocus ; SwitchToMode Normal }
132+ }
133+ shared_except locked {
134+ bind Ctrl+g { SwitchToMode Locked }
135+ bind Ctrl+q { Quit }
136+ bind Alt+n { NewPane }
137+ bind Alt+h Alt+Left { MoveFocusOrTab Left }
138+ bind Alt+l Alt+Right { MoveFocusOrTab Right }
139+ bind Alt+j Alt+Down { MoveFocus Down }
140+ bind Alt+k Alt+Up { MoveFocus Up }
141+ bind Alt+= Alt++ { Resize Increase }
142+ bind Alt+- { Resize Decrease }
143+ }
144+ shared_except normal locked {
145+ bind Enter Space Esc { SwitchToMode Normal }
146+ }
147+ shared_except pane locked {
148+ bind Ctrl+p { SwitchToMode Pane }
149+ }
150+ shared_except resize locked {
151+ bind Ctrl+n { SwitchToMode Resize }
152+ }
153+ shared_except scroll locked {
154+ bind Ctrl+s { SwitchToMode Scroll }
155+ }
156+ shared_except session locked {
157+ bind Ctrl+o { SwitchToMode Session }
158+ }
159+ shared_except tab locked {
160+ bind Ctrl+t { SwitchToMode Tab }
161+ }
162+ shared_except move locked {
163+ bind Ctrl+h { SwitchToMode Move }
164+ }
165+ shared_except tmux locked {
166+ bind Ctrl+b { SwitchToMode Tmux }
167+ }
168+ }
169+
170+ plugins {
171+ tab-bar { path tab-bar }
172+ status-bar { path status-bar }
173+ strider { path strider }
174+ compact-bar { path compact-bar }
175+ }
176+
177+ // Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP
178+ // eg. when terminal window with an active zellij session is closed
179+ // Options:
180+ // - detach (Default)
181+ // - quit
182+ //
183+ /- on_force_close quit
184+
185+ // Send a request for a simplified ui (without arrow fonts) to plugins
186+ // Options:
187+ // - #true
188+ // - #false (Default)
189+ //
190+ /- simplified_ui #true
191+
192+ // Choose the path to the default shell that zellij will use for opening new panes
193+ // Default: $SHELL
194+ //
195+ /- default_shell $SHELL
196+
197+ // Toggle between having pane frames around the panes
198+ // Options:
199+ // - #true (default)
200+ // - #false
201+ //
202+ /- pane_frames #true
203+
204+ // Define color themes for Zellij
205+ // For more examples, see: https://github.com/zellij-org/zellij/tree/main/example/themes
206+ // Once these themes are defined, one of them should to be selected in the "theme" section of this file
207+ //
208+ // themes {
209+ // dracula {
210+ // fg 248 248 242
211+ // bg 40 42 54
212+ // red 255 85 85
213+ // green 80 250 123
214+ // yellow 241 250 140
215+ // blue 98 114 164
216+ // magenta 255 121 198
217+ // orange 255 184 108
218+ // cyan 139 233 253
219+ // black 0 0 0
220+ // white 255 255 255
221+ // }
222+ // }
223+
224+ // Choose the theme that is specified in the themes section.
225+ // Default: default
226+ //
227+ /- theme default
228+
229+ // The name of the default layout to load on startup
230+ // Default: "default"
231+ //
232+ /- default_layout compact
233+
234+ // Choose the mode that zellij uses when starting up.
235+ // Default: normal
236+ //
237+ /- default_mode locked
238+
239+ // Toggle enabling the mouse mode.
240+ // On certain configurations, or terminals this could
241+ // potentially interfere with copying text.
242+ // Options:
243+ // - #true (default)
244+ // - #false
245+ //
246+ /- mouse_mode #false
247+
248+ // Configure the scroll back buffer size
249+ // This is the number of lines zellij stores for each pane in the scroll back
250+ // buffer. Excess number of lines are discarded in a FIFO fashion.
251+ // Valid values: positive integers
252+ // Default value: 10000
253+ //
254+ /- scroll_buffer_size 10000
255+
256+ // Provide a command to execute when copying text. The text will be piped to
257+ // the stdin of the program to perform the copy. This can be used with
258+ // terminal emulators which do not support the OSC 52 ANSI control sequence
259+ // that will be used by default if this option is not set.
260+ // Examples:
261+ //
262+ /- copy_command xclip -selection clipboard // x11
263+ /- copy_command wl-copy // wayland
264+ /- copy_command pbcopy // osx
265+
266+ // Choose the destination for copied text
267+ // Allows using the primary selection buffer (on x11/wayland) instead of the system clipboard.
268+ // Does not apply when using copy_command.
269+ // Options:
270+ // - system (default)
271+ // - primary
272+ //
273+ /- copy_clipboard primary
274+
275+ // Enable or disable automatic copy (and clear) of selection when releasing mouse
276+ // Default: #true
277+ //
278+ /- copy_on_select #false
279+
280+ // Path to the default editor to use to edit pane scrollbuffer
281+ // Default: $EDITOR or $VISUAL
282+ //
283+ /- scrollback_editor $EDITOR
284+
285+ // When attaching to an existing session with other users,
286+ // should the session be mirrored (true)
287+ // or should each user have their own cursor (false)
288+ // Default: #false
289+ //
290+ /- mirror_session #true
291+
292+ // The folder in which Zellij will look for layouts
293+ //
294+ /- layout_dir "/path/to/my/layout_dir"
295+
296+ // The folder in which Zellij will look for themes
297+ //
298+ /- theme_dir "/path/to/my/theme_dir"
0 commit comments