// If you'd like to override the default keybindings completely, be sure to // change "keybinds" to "keybinds clear-defaults=#true" keybinds { normal { // uncomment this and adjust key if using copy_on_select=#false /- bind "Alt c" { Copy } } locked { bind "Ctrl g" { SwitchToMode Normal } } resize { bind "Ctrl n" { SwitchToMode Normal } bind h Left { Resize Left } bind j Down { Resize Down } bind k Up { Resize Up } bind l Right { Resize Right } bind "=" + { Resize Increase } bind - { Resize Decrease } } pane { bind "Ctrl p" { SwitchToMode Normal } bind h Left { MoveFocus Left } bind l Right { MoveFocus Right } bind j Down { MoveFocus Down } bind k Up { MoveFocus Up } bind p { SwitchFocus } bind n { NewPane; SwitchToMode Normal } 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 h Left { MovePane Left } bind j Down { MovePane Down } bind k Up { MovePane Up } bind l Right { MovePane Right } } tab { bind "Ctrl t" { SwitchToMode Normal } bind r { SwitchToMode RenameTab; TabNameInput 0 } bind h Left Up k { GoToPreviousTab } bind l Right Down j { GoToNextTab } bind n { NewTab; SwitchToMode Normal } bind x { CloseTab; SwitchToMode Normal } bind s { ToggleActiveSyncTab; 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 } bind Tab { ToggleTab } } 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 } } tmux { bind "[" { SwitchToMode Scroll } bind "Ctrl+b" { Write 2; SwitchToMode Normal } bind "\"" { NewPane Down; SwitchToMode Normal } bind % { NewPane Right; SwitchToMode Normal } bind z { ToggleFocusFullscreen; SwitchToMode Normal } bind c { NewTab; SwitchToMode Normal } bind , { SwitchToMode RenameTab } bind p { GoToPreviousTab; SwitchToMode Normal } bind n { GoToNextTab; SwitchToMode Normal } bind Left { MoveFocus Left; SwitchToMode Normal } bind Right { MoveFocus Right; SwitchToMode Normal } bind Down { MoveFocus Down; SwitchToMode Normal } bind Up { MoveFocus Up; SwitchToMode Normal } bind h { MoveFocus Left; SwitchToMode Normal } bind l { MoveFocus Right; SwitchToMode Normal } bind j { MoveFocus Down; SwitchToMode Normal } bind k { MoveFocus Up; SwitchToMode Normal } bind o { FocusNextPane } bind d { Detach } bind x { CloseFocus; SwitchToMode Normal } } shared_except locked { bind "Ctrl g" { SwitchToMode Locked } bind "Ctrl q" { Quit } bind "Alt n" { NewPane } bind "Alt h" "Alt Left" { MoveFocusOrTab Left } bind "Alt l" "Alt Right" { MoveFocusOrTab Right } bind "Alt j" "Alt Down" { MoveFocus Down } bind "Alt k" "Alt Up" { MoveFocus Up } bind "Alt =" "Alt +" { Resize Increase } bind "Alt -" { Resize Decrease } } shared_except normal locked { bind Enter Space Esc { SwitchToMode Normal } } shared_except pane locked { bind "Ctrl p" { SwitchToMode Pane } } shared_except resize locked { bind "Ctrl n" { 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 t" { SwitchToMode Tab } } shared_except move locked { bind "Ctrl h" { SwitchToMode Move } } shared_except tmux locked { bind "Ctrl b" { SwitchToMode Tmux } } } plugins { tab-bar { path tab-bar } status-bar { path status-bar } strider { path strider } compact-bar { path compact-bar } } // Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP // eg. when terminal window with an active zellij session is closed // Options: // - detach (Default) // - quit // /- on_force_close quit // Send a request for a simplified ui (without arrow fonts) to plugins // Options: // - #true // - #false (Default) // /- simplified_ui #true // Choose the path to the default shell that zellij will use for opening new panes // Default: $SHELL // /- default_shell $SHELL // Toggle between having pane frames around the panes // Options: // - #true (default) // - #false // /- pane_frames #true // Define color themes for Zellij // For more examples, see: https://github.com/zellij-org/zellij/tree/main/example/themes // Once these themes are defined, one of them should to be selected in the "theme" section of this file // // themes { // dracula { // fg 248 248 242 // bg 40 42 54 // red 255 85 85 // green 80 250 123 // yellow 241 250 140 // blue 98 114 164 // magenta 255 121 198 // orange 255 184 108 // cyan 139 233 253 // black 0 0 0 // white 255 255 255 // } // } // Choose the theme that is specified in the themes section. // Default: default // /- theme default // The name of the default layout to load on startup // Default: "default" // /- default_layout compact // Choose the mode that zellij uses when starting up. // Default: normal // /- default_mode locked // Toggle enabling the mouse mode. // On certain configurations, or terminals this could // potentially interfere with copying text. // Options: // - #true (default) // - #false // /- mouse_mode #false // Configure the scroll back buffer size // This is the number of lines zellij stores for each pane in the scroll back // buffer. Excess number of lines are discarded in a FIFO fashion. // Valid values: positive integers // Default value: 10000 // /- scroll_buffer_size 10000 // Provide a command to execute when copying text. The text will be piped to // the stdin of the program to perform the copy. This can be used with // terminal emulators which do not support the OSC 52 ANSI control sequence // that will be used by default if this option is not set. // Examples: // /- copy_command xclip -selection clipboard // x11 /- copy_command wl-copy // wayland /- copy_command pbcopy // osx // Choose the destination for copied text // Allows using the primary selection buffer (on x11/wayland) instead of the system clipboard. // Does not apply when using copy_command. // Options: // - system (default) // - primary // /- copy_clipboard primary // Enable or disable automatic copy (and clear) of selection when releasing mouse // Default: #true // /- copy_on_select #false // Path to the default editor to use to edit pane scrollbuffer // Default: $EDITOR or $VISUAL // /- scrollback_editor $EDITOR // When attaching to an existing session with other users, // should the session be mirrored (true) // or should each user have their own cursor (false) // Default: #false // /- mirror_session #true // The folder in which Zellij will look for layouts // /- layout_dir "/path/to/my/layout_dir" // The folder in which Zellij will look for themes // /- theme_dir "/path/to/my/theme_dir"