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