Skip to content

Commit 016119d

Browse files
committed
zellij example
1 parent 887a543 commit 016119d

File tree

4 files changed

+602
-0
lines changed

4 files changed

+602
-0
lines changed

examples/zellij-unquoted-bindings.kdl

+298
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,298 @@
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

Comments
 (0)