zellij

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

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