zellij

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

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