config.kdl.bak (19317B)
1 keybinds clear-defaults=true { 2 locked { 3 bind "Ctrl g" { SwitchToMode "normal"; } 4 } 5 pane { 6 bind "left" { MoveFocus "left"; } 7 bind "down" { MoveFocus "down"; } 8 bind "up" { MoveFocus "up"; } 9 bind "right" { MoveFocus "right"; } 10 bind "c" { SwitchToMode "renamepane"; PaneNameInput 0; } 11 bind "d" { NewPane "down"; SwitchToMode "normal"; } 12 bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "normal"; } 13 bind "f" { ToggleFocusFullscreen; SwitchToMode "normal"; } 14 bind "h" { MoveFocus "left"; } 15 bind "i" { TogglePanePinned; SwitchToMode "normal"; } 16 bind "j" { MoveFocus "down"; } 17 bind "k" { MoveFocus "up"; } 18 bind "l" { MoveFocus "right"; } 19 bind "n" { NewPane; SwitchToMode "normal"; } 20 bind "p" { SwitchFocus; } 21 bind "Ctrl p" { SwitchToMode "normal"; } 22 bind "r" { NewPane "right"; SwitchToMode "normal"; } 23 bind "s" { NewPane "stacked"; SwitchToMode "normal"; } 24 bind "w" { ToggleFloatingPanes; SwitchToMode "normal"; } 25 bind "z" { TogglePaneFrames; SwitchToMode "normal"; } 26 } 27 tab { 28 bind "left" { GoToPreviousTab; } 29 bind "down" { GoToNextTab; } 30 bind "up" { GoToPreviousTab; } 31 bind "right" { GoToNextTab; } 32 bind "1" { GoToTab 1; SwitchToMode "normal"; } 33 bind "2" { GoToTab 2; SwitchToMode "normal"; } 34 bind "3" { GoToTab 3; SwitchToMode "normal"; } 35 bind "4" { GoToTab 4; SwitchToMode "normal"; } 36 bind "5" { GoToTab 5; SwitchToMode "normal"; } 37 bind "6" { GoToTab 6; SwitchToMode "normal"; } 38 bind "7" { GoToTab 7; SwitchToMode "normal"; } 39 bind "8" { GoToTab 8; SwitchToMode "normal"; } 40 bind "9" { GoToTab 9; SwitchToMode "normal"; } 41 bind "[" { BreakPaneLeft; SwitchToMode "normal"; } 42 bind "]" { BreakPaneRight; SwitchToMode "normal"; } 43 bind "b" { BreakPane; SwitchToMode "normal"; } 44 bind "h" { GoToPreviousTab; } 45 bind "j" { GoToNextTab; } 46 bind "k" { GoToPreviousTab; } 47 bind "l" { GoToNextTab; } 48 bind "n" { NewTab; SwitchToMode "normal"; } 49 bind "r" { SwitchToMode "renametab"; TabNameInput 0; } 50 bind "s" { ToggleActiveSyncTab; SwitchToMode "normal"; } 51 bind "Ctrl t" { SwitchToMode "normal"; } 52 bind "x" { CloseTab; SwitchToMode "normal"; } 53 bind "tab" { ToggleTab; } 54 } 55 resize { 56 bind "left" { Resize "Increase left"; } 57 bind "down" { Resize "Increase down"; } 58 bind "up" { Resize "Increase up"; } 59 bind "right" { Resize "Increase right"; } 60 bind "+" { Resize "Increase"; } 61 bind "-" { Resize "Decrease"; } 62 bind "=" { Resize "Increase"; } 63 bind "H" { Resize "Decrease left"; } 64 bind "J" { Resize "Decrease down"; } 65 bind "K" { Resize "Decrease up"; } 66 bind "L" { Resize "Decrease right"; } 67 bind "h" { Resize "Increase left"; } 68 bind "j" { Resize "Increase down"; } 69 bind "k" { Resize "Increase up"; } 70 bind "l" { Resize "Increase right"; } 71 bind "Ctrl n" { SwitchToMode "normal"; } 72 } 73 move { 74 bind "left" { MovePane "left"; } 75 bind "down" { MovePane "down"; } 76 bind "up" { MovePane "up"; } 77 bind "right" { MovePane "right"; } 78 bind "h" { MovePane "left"; } 79 bind "Ctrl h" { SwitchToMode "normal"; } 80 bind "j" { MovePane "down"; } 81 bind "k" { MovePane "up"; } 82 bind "l" { MovePane "right"; } 83 bind "n" { MovePane; } 84 bind "p" { MovePaneBackwards; } 85 bind "tab" { MovePane; } 86 } 87 scroll { 88 bind "e" { EditScrollback; SwitchToMode "normal"; } 89 bind "s" { SwitchToMode "entersearch"; SearchInput 0; } 90 } 91 search { 92 bind "c" { SearchToggleOption "CaseSensitivity"; } 93 bind "n" { Search "down"; } 94 bind "o" { SearchToggleOption "WholeWord"; } 95 bind "p" { Search "up"; } 96 bind "w" { SearchToggleOption "Wrap"; } 97 } 98 session { 99 bind "a" { 100 LaunchOrFocusPlugin "zellij:about" { 101 floating true 102 move_to_focused_tab true 103 } 104 SwitchToMode "normal" 105 } 106 bind "c" { 107 LaunchOrFocusPlugin "configuration" { 108 floating true 109 move_to_focused_tab true 110 } 111 SwitchToMode "normal" 112 } 113 bind "l" { 114 LaunchOrFocusPlugin "zellij:layout-manager" { 115 floating true 116 move_to_focused_tab true 117 } 118 SwitchToMode "normal" 119 } 120 bind "Ctrl o" { SwitchToMode "normal"; } 121 bind "p" { 122 LaunchOrFocusPlugin "plugin-manager" { 123 floating true 124 move_to_focused_tab true 125 } 126 SwitchToMode "normal" 127 } 128 bind "s" { 129 LaunchOrFocusPlugin "zellij:share" { 130 floating true 131 move_to_focused_tab true 132 } 133 SwitchToMode "normal" 134 } 135 bind "w" { 136 LaunchOrFocusPlugin "session-manager" { 137 floating true 138 move_to_focused_tab true 139 } 140 SwitchToMode "normal" 141 } 142 } 143 shared_except "locked" { 144 bind "Alt left" { MoveFocusOrTab "left"; } 145 bind "Alt down" { MoveFocus "down"; } 146 bind "Alt up" { MoveFocus "up"; } 147 bind "Alt right" { MoveFocusOrTab "right"; } 148 bind "Alt +" { Resize "Increase"; } 149 bind "Alt -" { Resize "Decrease"; } 150 bind "Alt =" { Resize "Increase"; } 151 bind "Alt [" { PreviousSwapLayout; } 152 bind "Alt ]" { NextSwapLayout; } 153 bind "Alt f" { ToggleFloatingPanes; } 154 bind "Ctrl g" { SwitchToMode "locked"; } 155 bind "Alt h" { MoveFocusOrTab "left"; } 156 bind "Alt i" { MoveTab "left"; } 157 bind "Alt j" { MoveFocus "down"; } 158 bind "Alt k" { MoveFocus "up"; } 159 bind "Alt l" { MoveFocusOrTab "right"; } 160 bind "Alt n" { NewPane; } 161 bind "Alt o" { MoveTab "right"; } 162 bind "Alt p" { TogglePaneInGroup; } 163 bind "Alt Shift p" { ToggleGroupMarking; } 164 bind "Ctrl q" { Quit; } 165 } 166 shared_except "locked" "move" { 167 bind "Ctrl h" { SwitchToMode "move"; } 168 } 169 shared_except "locked" "session" { 170 bind "Ctrl o" { SwitchToMode "session"; } 171 } 172 shared_except "locked" "scroll" "search" "tmux" { 173 bind "Ctrl b" { SwitchToMode "tmux"; } 174 } 175 shared_except "locked" "scroll" "search" { 176 bind "Ctrl s" { SwitchToMode "scroll"; } 177 } 178 shared_except "locked" "tab" { 179 bind "Ctrl t" { SwitchToMode "tab"; } 180 } 181 shared_except "locked" "pane" { 182 bind "Ctrl p" { SwitchToMode "pane"; } 183 } 184 shared_except "locked" "resize" { 185 bind "Ctrl n" { SwitchToMode "resize"; } 186 } 187 shared_except "normal" "locked" "entersearch" { 188 bind "enter" { SwitchToMode "normal"; } 189 } 190 shared_except "normal" "locked" "entersearch" "renametab" "renamepane" { 191 bind "esc" { SwitchToMode "normal"; } 192 } 193 shared_among "pane" "tmux" { 194 bind "x" { CloseFocus; SwitchToMode "normal"; } 195 } 196 shared_among "scroll" "search" { 197 bind "PageDown" { PageScrollDown; } 198 bind "PageUp" { PageScrollUp; } 199 bind "left" { PageScrollUp; } 200 bind "down" { ScrollDown; } 201 bind "up" { ScrollUp; } 202 bind "right" { PageScrollDown; } 203 bind "Ctrl b" { PageScrollUp; } 204 bind "Ctrl c" { ScrollToBottom; SwitchToMode "normal"; } 205 bind "d" { HalfPageScrollDown; } 206 bind "Ctrl f" { PageScrollDown; } 207 bind "h" { PageScrollUp; } 208 bind "j" { ScrollDown; } 209 bind "k" { ScrollUp; } 210 bind "l" { PageScrollDown; } 211 bind "Ctrl s" { SwitchToMode "normal"; } 212 bind "u" { HalfPageScrollUp; } 213 } 214 entersearch { 215 bind "Ctrl c" { SwitchToMode "scroll"; } 216 bind "esc" { SwitchToMode "scroll"; } 217 bind "enter" { SwitchToMode "search"; } 218 } 219 renametab { 220 bind "esc" { UndoRenameTab; SwitchToMode "tab"; } 221 } 222 shared_among "renametab" "renamepane" { 223 bind "Ctrl c" { SwitchToMode "normal"; } 224 } 225 renamepane { 226 bind "esc" { UndoRenamePane; SwitchToMode "pane"; } 227 } 228 shared_among "session" "tmux" { 229 bind "d" { Detach; } 230 } 231 tmux { 232 bind "left" { MoveFocus "left"; SwitchToMode "normal"; } 233 bind "down" { MoveFocus "down"; SwitchToMode "normal"; } 234 bind "up" { MoveFocus "up"; SwitchToMode "normal"; } 235 bind "right" { MoveFocus "right"; SwitchToMode "normal"; } 236 bind "space" { NextSwapLayout; } 237 bind "\"" { NewPane "down"; SwitchToMode "normal"; } 238 bind "%" { NewPane "right"; SwitchToMode "normal"; } 239 bind "," { SwitchToMode "renametab"; } 240 bind "[" { SwitchToMode "scroll"; } 241 bind "Ctrl b" { Write 2; SwitchToMode "normal"; } 242 bind "c" { NewTab; SwitchToMode "normal"; } 243 bind "h" { MoveFocus "left"; SwitchToMode "normal"; } 244 bind "j" { MoveFocus "down"; SwitchToMode "normal"; } 245 bind "k" { MoveFocus "up"; SwitchToMode "normal"; } 246 bind "l" { MoveFocus "right"; SwitchToMode "normal"; } 247 bind "n" { GoToNextTab; SwitchToMode "normal"; } 248 bind "o" { FocusNextPane; } 249 bind "p" { GoToPreviousTab; SwitchToMode "normal"; } 250 bind "z" { ToggleFocusFullscreen; SwitchToMode "normal"; } 251 } 252 } 253 254 // Plugin aliases - can be used to change the implementation of Zellij 255 // changing these requires a restart to take effect 256 plugins { 257 about location="zellij:about" 258 compact-bar location="zellij:compact-bar" 259 configuration location="zellij:configuration" 260 filepicker location="zellij:strider" { 261 cwd "/" 262 } 263 plugin-manager location="zellij:plugin-manager" 264 session-manager location="zellij:session-manager" 265 status-bar location="zellij:status-bar" 266 strider location="zellij:strider" 267 tab-bar location="zellij:tab-bar" 268 welcome-screen location="zellij:session-manager" { 269 welcome_screen true 270 } 271 } 272 273 // Plugins to load in the background when a new session starts 274 // eg. "file:/path/to/my-plugin.wasm" 275 // eg. "https://example.com/my-plugin.wasm" 276 load_plugins { 277 zellij:link 278 } 279 web_client { 280 font "monospace" 281 } 282 283 // Use a simplified UI without special fonts (arrow glyphs) 284 // Options: 285 // - true 286 // - false (Default) 287 // 288 // simplified_ui true 289 290 // Enable OSC8 hyperlink output 291 // Options: 292 // - true (Default) 293 // - false 294 // 295 // osc8_hyperlinks true 296 297 // Choose the theme that is specified in the themes section. 298 // Default: default 299 // 300 // theme "dracula" 301 302 // Choose the base input mode of zellij. 303 // Default: normal 304 // 305 // default_mode "locked" 306 307 // Choose the path to the default shell that zellij will use for opening new panes 308 // Default: $SHELL 309 // 310 // default_shell "fish" 311 312 // Choose the path to override cwd that zellij will use for opening new panes 313 // 314 // default_cwd "/tmp" 315 316 // The name of the default layout to load on startup 317 // Default: "default" 318 // 319 // default_layout "compact" 320 321 // The folder in which Zellij will look for layouts 322 // (Requires restart) 323 // 324 // layout_dir "/tmp" 325 326 // The folder in which Zellij will look for themes 327 // (Requires restart) 328 // 329 // theme_dir "/tmp" 330 331 // Toggle enabling the mouse mode. 332 // On certain configurations, or terminals this could 333 // potentially interfere with copying text. 334 // Options: 335 // - true (default) 336 // - false 337 // 338 // mouse_mode false 339 340 // Toggle having pane frames around the panes 341 // Options: 342 // - true (default, enabled) 343 // - false 344 // 345 // pane_frames false 346 347 // When attaching to an existing session with other users, 348 // should the session be mirrored (true) 349 // or should each user have their own cursor (false) 350 // (Requires restart) 351 // Default: false 352 // 353 // mirror_session true 354 355 // Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP 356 // eg. when terminal window with an active zellij session is closed 357 // (Requires restart) 358 // Options: 359 // - detach (Default) 360 // - quit 361 // 362 // on_force_close "quit" 363 364 // Configure the scroll back buffer size 365 // This is the number of lines zellij stores for each pane in the scroll back 366 // buffer. Excess number of lines are discarded in a FIFO fashion. 367 // (Requires restart) 368 // Valid values: positive integers 369 // Default value: 10000 370 // 371 // scroll_buffer_size 10000 372 373 // Provide a command to execute when copying text. The text will be piped to 374 // the stdin of the program to perform the copy. This can be used with 375 // terminal emulators which do not support the OSC 52 ANSI control sequence 376 // that will be used by default if this option is not set. 377 // Examples: 378 // 379 // copy_command "xclip -selection clipboard" // x11 380 // copy_command "wl-copy" // wayland 381 // copy_command "pbcopy" // osx 382 // 383 // copy_command "pbcopy" 384 385 // Choose the destination for copied text 386 // Allows using the primary selection buffer (on x11/wayland) instead of the system clipboard. 387 // Does not apply when using copy_command. 388 // Options: 389 // - system (default) 390 // - primary 391 // 392 // copy_clipboard "primary" 393 394 // Enable automatic copying (and clearing) of selection when releasing mouse 395 // Default: true 396 // 397 // copy_on_select true 398 399 // Path to the default editor to use to edit pane scrollbuffer 400 // Default: $EDITOR or $VISUAL 401 // scrollback_editor "/usr/bin/vim" 402 403 // A fixed name to always give the Zellij session. 404 // Consider also setting `attach_to_session true,` 405 // otherwise this will error if such a session exists. 406 // Default: <RANDOM> 407 // 408 // session_name "My singleton session" 409 410 // When `session_name` is provided, attaches to that session 411 // if it is already running or creates it otherwise. 412 // Default: false 413 // 414 // attach_to_session true 415 416 // Toggle between having Zellij lay out panes according to a predefined set of layouts whenever possible 417 // Options: 418 // - true (default) 419 // - false 420 // 421 // auto_layout false 422 423 // Whether sessions should be serialized to the cache folder (including their tabs/panes, cwds and running commands) so that they can later be resurrected 424 // Options: 425 // - true (default) 426 // - false 427 // 428 // session_serialization false 429 430 // Whether pane viewports are serialized along with the session, default is false 431 // Options: 432 // - true 433 // - false (default) 434 // 435 // serialize_pane_viewport false 436 437 // Scrollback lines to serialize along with the pane viewport when serializing sessions, 0 438 // defaults to the scrollback size. If this number is higher than the scrollback size, it will 439 // also default to the scrollback size. This does nothing if `serialize_pane_viewport` is not true. 440 // 441 // scrollback_lines_to_serialize 10000 442 443 // Enable or disable the rendering of styled and colored underlines (undercurl). 444 // May need to be disabled for certain unsupported terminals 445 // (Requires restart) 446 // Default: true 447 // 448 // styled_underlines false 449 450 // How often in seconds sessions are serialized 451 // 452 // serialization_interval 10000 453 454 // Enable or disable writing of session metadata to disk (if disabled, other sessions might not know 455 // metadata info on this session) 456 // (Requires restart) 457 // Default: false 458 // 459 // disable_session_metadata false 460 461 // Enable or disable support for the enhanced Kitty Keyboard Protocol (the host terminal must also support it) 462 // (Requires restart) 463 // Default: true (if the host terminal supports it) 464 // 465 // support_kitty_keyboard_protocol false 466 // Whether to make sure a local web server is running when a new Zellij session starts. 467 // This web server will allow creating new sessions and attaching to existing ones that have 468 // opted in to being shared in the browser. 469 // When enabled, navigate to http://127.0.0.1:8082 470 // (Requires restart) 471 // 472 // Note: a local web server can still be manually started from within a Zellij session or from the CLI. 473 // If this is not desired, one can use a version of Zellij compiled without 474 // `web_server_capability` 475 // 476 // Possible values: 477 // - true 478 // - false 479 // Default: false 480 // 481 // web_server false 482 // Whether to allow sessions started in the terminal to be shared through a local web server, assuming one is 483 // running (see the `web_server` option for more details). 484 // (Requires restart) 485 // 486 // Note: This is an administrative separation and not intended as a security measure. 487 // 488 // Possible values: 489 // - "on" (allow web sharing through the local web server if it 490 // is online) 491 // - "off" (do not allow web sharing unless sessions explicitly opt-in to it) 492 // - "disabled" (do not allow web sharing and do not permit sessions started in the terminal to opt-in to it) 493 // Default: "off" 494 // 495 // web_sharing "off" 496 // A path to a certificate file to be used when setting up the web client to serve the 497 // connection over HTTPs 498 // 499 // web_server_cert "/path/to/cert.pem" 500 // A path to a key file to be used when setting up the web client to serve the 501 // connection over HTTPs 502 // 503 // web_server_key "/path/to/key.pem" 504 /// Whether to enforce https connections to the web server when it is bound to localhost 505 /// (127.0.0.0/8) 506 /// 507 /// Note: https is ALWAYS enforced when bound to non-local interfaces 508 /// 509 /// Default: false 510 // 511 // enforce_https_for_localhost false 512 513 // Whether to stack panes when resizing beyond a certain size 514 // Default: true 515 // 516 // stacked_resize false 517 518 // Whether to show tips on startup 519 // Default: true 520 // 521 // show_startup_tips false 522 523 // Whether to show release notes on first version run 524 // Default: true 525 // 526 // show_release_notes false 527 528 // Whether to enable mouse hover effects and pane grouping functionality 529 // default is true 530 // advanced_mouse_actions false 531 532 // Whether to enable mouse hover visual effects (frame highlight and help text) 533 // default is true 534 // mouse_hover_effects false 535 536 // Whether to show visual bell indicators (pane/tab frame flash and [!] suffix) 537 // default is true 538 // visual_bell true 539 540 // Whether to focus panes on mouse hover 541 // default is false 542 // focus_follows_mouse false 543 544 // Whether clicking a pane to focus it also sends the click into the pane 545 // default is false 546 // mouse_click_through false 547 548 // The ip address the web server should listen on when it starts 549 // Default: "127.0.0.1" 550 // (Requires restart) 551 // web_server_ip "127.0.0.1" 552 553 // The port the web server should listen on when it starts 554 // Default: 8082 555 // (Requires restart) 556 // web_server_port 8082 557 558 // A command to run (will be wrapped with sh -c and provided the RESURRECT_COMMAND env variable) 559 // after Zellij attempts to discover a command inside a pane when resurrecting sessions, the STDOUT 560 // of this command will be used instead of the discovered RESURRECT_COMMAND 561 // can be useful for removing wrappers around commands 562 // Note: be sure to escape backslashes and similar characters properly 563 // post_command_discovery_hook "echo $RESURRECT_COMMAND | sed <your_regex_here>" 564 565 // Number of async worker tasks to spawn per active client. 566 // 567 // Allocating few tasks may result in resource contention and lags. Small values (around 4) should 568 // typically work best. Set to 0 to use the number of (physical) CPU cores. 569 // Note: This only applies to web clients at the moment. 570 // client_async_worker_tasks 4