keybinds clear-defaults=true {
  normal {
    // any normal mode keys?
  }
  locked {
    bind "Ctrl g" { SwitchToMode "Normal"; }
  }
  tab {
    bind "Ctrl a" { ToggleTab; SwitchToMode "Normal"; }
    bind "c" { NewTab; SwitchToMode "Normal"; }
    bind "r" { SwitchToMode "RenameTab"; TabNameInput 0; }
    bind "h" "Left" "Up" "k" { GoToPreviousTab; }
    bind "l" "Right" "Down" "j" { GoToNextTab; }
    bind "Space" { GoToNextTab; SwitchToMode "Normal"; }
    bind "s" { ToggleActiveSyncTab; SwitchToMode "Normal"; }
    bind "b" { BreakPane; SwitchToMode "Normal"; }
    bind "]" { BreakPaneRight; SwitchToMode "Normal"; }
    bind "[" { BreakPaneLeft; SwitchToMode "Normal"; }
    bind "1" { GoToTab 1; SwitchToMode "Normal"; }
    bind "2" { GoToTab 2; SwitchToMode "Normal"; }
    bind "3" { GoToTab 3; SwitchToMode "Normal"; }
    bind "4" { GoToTab 4; SwitchToMode "Normal"; }
    bind "5" { GoToTab 5; SwitchToMode "Normal"; }
    bind "6" { GoToTab 6; SwitchToMode "Normal"; }
    bind "7" { GoToTab 7; SwitchToMode "Normal"; }
    bind "8" { GoToTab 8; SwitchToMode "Normal"; }
    bind "9" { GoToTab 9; SwitchToMode "Normal"; }
  }
  pane {
    bind "Ctrl p" { SwitchFocus; SwitchToMode "Normal"; }
    bind "n" { NewPane; SwitchToMode "Normal"; }
    bind "Tab" { SwitchFocus; }
    bind "h" "Left" { MoveFocus "Left"; }
    bind "l" "Right" { MoveFocus "Right"; }
    bind "j" "Down" { MoveFocus "Down"; }
    bind "k" "Up" { MoveFocus "Up"; }
    bind "d" { NewPane "Down"; SwitchToMode "Normal"; }
    bind "r" { NewPane "Right"; SwitchToMode "Normal"; }
    bind "x" { CloseFocus; SwitchToMode "Normal"; }
    bind "f" { ToggleFocusFullscreen; SwitchToMode "Normal"; }
    bind "z" { TogglePaneFrames; SwitchToMode "Normal"; }
    bind "w" { ToggleFloatingPanes; SwitchToMode "Normal"; }
    bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "Normal"; }
    bind "c" { SwitchToMode "RenamePane"; PaneNameInput 0;}
  }
  move {
    bind "Ctrl h" { SwitchToMode "Normal"; }
    bind "n" "Tab" { MovePane; }
    bind "p" { MovePaneBackwards; }
    bind "h" "Left" { MovePane "Left"; }
    bind "j" "Down" { MovePane "Down"; }
    bind "k" "Up" { MovePane "Up"; }
    bind "l" "Right" { MovePane "Right"; }
  }
  resize {
    bind "Ctrl n" { SwitchToMode "Normal"; }
    bind "h" "Left" { Resize "Increase Left"; }
    bind "j" "Down" { Resize "Increase Down"; }
    bind "k" "Up" { Resize "Increase Up"; }
    bind "l" "Right" { Resize "Increase Right"; }
    bind "H" { Resize "Decrease Left"; }
    bind "J" { Resize "Decrease Down"; }
    bind "K" { Resize "Decrease Up"; }
    bind "L" { Resize "Decrease Right"; }
    bind "=" "+" { Resize "Increase"; }
    bind "-" { Resize "Decrease"; }
  }
  scroll {
    bind "Ctrl s" { SwitchToMode "Normal"; }
    bind "e" { EditScrollback; SwitchToMode "Normal"; }
    bind "s" { SwitchToMode "EnterSearch"; SearchInput 0; }
    bind "Ctrl c" { ScrollToBottom; SwitchToMode "Normal"; }
    bind "j" "Down" { ScrollDown; }
    bind "k" "Up" { ScrollUp; }
    bind "Ctrl f" "PageDown" "Right" "l" { PageScrollDown; }
    bind "Ctrl b" "PageUp" "Left" "h" { PageScrollUp; }
    bind "d" { HalfPageScrollDown; }
    bind "u" { HalfPageScrollUp; }
    // uncomment this and adjust key if using copy_on_select=false
    // bind "Alt c" { Copy; }
  }
  search {
    bind "Ctrl s" { SwitchToMode "Normal"; }
    bind "Ctrl c" { ScrollToBottom; SwitchToMode "Normal"; }
    bind "j" "Down" { ScrollDown; }
    bind "k" "Up" { ScrollUp; }
    bind "Ctrl f" "PageDown" "Right" "l" { PageScrollDown; }
    bind "Ctrl b" "PageUp" "Left" "h" { PageScrollUp; }
    bind "d" { HalfPageScrollDown; }
    bind "u" { HalfPageScrollUp; }
    bind "n" { Search "down"; }
    bind "p" { Search "up"; }
    bind "c" { SearchToggleOption "CaseSensitivity"; }
    bind "w" { SearchToggleOption "Wrap"; }
    bind "o" { SearchToggleOption "WholeWord"; }
  }
  entersearch {
    bind "Ctrl c" "Esc" { SwitchToMode "Scroll"; }
    bind "Enter" { SwitchToMode "Search"; }
  }
  renametab {
    bind "Ctrl c" { SwitchToMode "Normal"; }
    bind "Esc" { UndoRenameTab; SwitchToMode "Tab"; }
  }
  renamepane {
    bind "Ctrl c" { SwitchToMode "Normal"; }
    bind "Esc" { UndoRenamePane; SwitchToMode "Pane"; }
  }
  session {
    bind "Ctrl o" { SwitchToMode "Normal"; }
    bind "Ctrl s" { SwitchToMode "Scroll"; }
    bind "d" { Detach; }
    bind "w" {
      LaunchOrFocusPlugin "zellij:session-manager" {
        floating true
        move_to_focused_tab true
      };
      SwitchToMode "Normal"
    }
  }
  shared_except "locked" {
    bind "Ctrl g" { SwitchToMode "Locked"; }
    bind "Alt n" { NewPane; }
    bind "Alt h" "Alt Left" { MoveFocusOrTab "Left"; }
    bind "Alt l" "Alt Right" { MoveFocusOrTab "Right"; }
    bind "Alt j" "Alt Down" { MoveFocusOrTab "Down"; }
    bind "Alt k" "Alt Up" { MoveFocusOrTab "Up"; }
    bind "Alt =" "Alt +" { Resize "Increase"; }
    bind "Alt -" { Resize "Decrease"; }
    bind "Alt [" { PreviousSwapLayout; }
    bind "Alt ]" { NextSwapLayout; }
  }
  shared_except "normal" "locked" {
    bind "Enter" "Esc" { SwitchToMode "Normal"; }
  }
  shared_except "pane" "locked" {
    bind "Ctrl p" { SwitchToMode "Pane"; }
  }
  shared_except "resize" "locked" {
    bind "Ctrl r" { SwitchToMode "Resize"; }
  }
  shared_except "scroll" "locked" {
    bind "Ctrl s" { SwitchToMode "Scroll"; }
  }
  shared_except "session" "locked" {
    bind "Ctrl o" { SwitchToMode "Session"; }
  }
  shared_except "tab" "locked" {
    bind "Ctrl a" { SwitchToMode "Tab"; }
  }
  shared_except "move" "locked" {
    bind "Ctrl m" { SwitchToMode "Move"; }
  }
}

plugins {
    tab-bar { path "tab-bar"; }
    status-bar { path "status-bar"; }
    strider { path "strider"; }
    compact-bar { path "compact-bar"; }
    session-manager { path "session-manager"; }
}

on_force_close "detach"
simplified_ui false
// default_shell "zsh" // defaults to $SHELL
// default_cwd "" // defaults to $HOME and cwd of current pane
pane_frames false
auto_layout true
session_serialization true
serialize_pane_viewport false
// scrollback_lines_to_serialize 10000
theme "kanagawa"
default_layout "compact"
default_mode "normal"
mouse_mode true
scroll_buffer_size 10000

// Copy command to use. Defaults to OSC 52 ANSI control sequence
// copy_command "xclip -selection clipboard" // x11
// copy_command "wl-copy"                    // wayland
// copy_command "pbcopy"                     // osx

// Does not apply when using copy_command. Defaults to "system"
// copy_clipboard "primary"

copy_on_select true
// scrollback_editor // defaults to $EDITOR or $VISUAL

// When attaching to an existing session with other users,
// should the session be mirrored (true)
// or should each user have their own cursor (false)
//
// mirror_session true // defaults to false

// layout_dir "/path/to/my/layout_dir"
// theme_dir "/path/to/my/theme_dir"
styled_underlines true // may need to be disabled for unsupported terminals
