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