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