// Keybindings come from a preset: a file in the "keybinds" folder next to this file, or one of // the presets built into Zellij ("default" and "unlock-first"). Print a built-in preset with // "zellij setup --dump-keybinds ". // "primary", "secondary" and "unlock" set the leader keys of presets that use them. // If a leader key is empty or two of them are equal, Zellij warns and uses the default preset. // Keybindings that come from a layout are shown in the settings screen but cannot be edited there. // Bindings inside the block are applied on top of the preset. To replace the preset // completely, add clear-defaults=true to the block. // For a single session, "zellij options --keybinds-preset " (and --keybinds-primary, // --keybinds-secondary, --keybinds-unlock) choose a preset without changing this file. // keybinds preset="default" primary="Ctrl" secondary="Alt" unlock="Ctrl g" { 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 "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"; } } 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 "s" { NewPane "stacked"; SwitchToMode "Normal"; } bind "x" { CloseFocus; SwitchToMode "Normal"; } bind "f" { ToggleFocusFullscreen; SwitchToMode "Normal"; } bind "Shift f" { ToggleFocusNoUiFullscreen; SwitchToMode "Normal"; } bind "z" { TogglePaneFrames; SwitchToMode "Normal"; } bind "w" { ToggleFloatingPanes; SwitchToMode "Normal"; } bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "Normal"; } bind "c" { SwitchToMode "RenamePane"; PaneNameInput 0;} bind "i" { TogglePanePinned; SwitchToMode "Normal"; } } 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"; } } 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 "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"; } bind "Tab" { ToggleTab; } bind "Space" { NextSwapLayout; } bind "Shift Space" { PreviousSwapLayout; } } 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; } bind "[" { ScrollToPreviousPrompt; } bind "]" { ScrollToNextPrompt; } bind "m" { SelectCommandAtScrollPosition; } bind "c" { CopyLastCommandOutput; SwitchToMode "Normal"; } // 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 "[" { ScrollToPreviousPrompt; } bind "]" { ScrollToNextPrompt; } bind "m" { SelectCommandAtScrollPosition; } 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 "session-manager" { floating true move_to_focused_tab true }; SwitchToMode "Normal" } bind "c" { LaunchOrFocusPlugin "configuration" { floating true move_to_focused_tab true }; SwitchToMode "Normal" } bind "p" { LaunchOrFocusPlugin "plugin-manager" { floating true move_to_focused_tab true }; SwitchToMode "Normal" } bind "a" { LaunchOrFocusPlugin "zellij:about" { floating true move_to_focused_tab true }; SwitchToMode "Normal" } bind "s" { LaunchOrFocusPlugin "zellij:share" { floating true move_to_focused_tab true }; SwitchToMode "Normal" } bind "l" { LaunchOrFocusPlugin "zellij:layout-manager" { floating true move_to_focused_tab true }; SwitchToMode "Normal" } } 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 ";" { FocusLastPane; } bind "d" { Detach; } bind "Space" { NextSwapLayout; } bind "x" { CloseFocus; SwitchToMode "Normal"; } } shared_except "locked" { bind "F9" { ToggleSessionCard; } bind "Ctrl g" { SwitchToMode "Locked"; } bind "Ctrl q" { Quit; } bind "Alt f" { ToggleFloatingPanes; } bind "Alt n" { NewPane; } bind "Alt i" { MoveTab "Left"; } bind "Alt o" { MoveTab "Right"; } 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"; } bind "Alt [" { PreviousSwapLayout; } bind "Alt ]" { NextSwapLayout; } bind "Alt p" { TogglePaneInGroup; } bind "Alt Shift p" { ToggleGroupMarking; } bind "Alt \\" { FocusLastPane; } } shared_except "normal" "locked" { bind "Enter" "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"; } } } // Plugin aliases - can be used to change the implementation of Zellij // changing these requires a restart to take effect // Built-in aliases cannot be deleted: this block can only add to or override them // (removing an override brings back the built-in one) plugins { tab-bar location="zellij:bars" { role "tab-bar" } status-bar location="zellij:bars" { role "status-bar" } strider location="zellij:strider" compact-bar location="zellij:bars" { role "compact-bar" } session-manager location="zellij:session-manager" welcome-screen location="zellij:session-manager" { welcome_screen true } filepicker location="zellij:strider" { cwd "/" } configuration location="zellij:configuration" plugin-manager location="zellij:plugin-manager" about location="zellij:about" context-menu location="zellij:context-menu" prompt location="zellij:prompt" } // Plugins to load in the background when a new session starts // (Requires restart) load_plugins { "zellij:bars" { role "link" } // "file:/path/to/my-plugin.wasm" // "https://example.com/my-plugin.wasm" } // Right-click menu items, per clicked target: "pane", "tab", "bar" (tab bar or status bar background) // "common" items are added to the end of every menu // Actions ending in "ByPaneId"/"ById"/"ByTabId" apply to the clicked pane or tab when no id is given // Add clear-defaults=true to the block or to a section to replace the default items // Without clear-defaults, a section changes the default items: // item "Label" { ... } replaces the item with that label, or adds it at the end // item "Label" after="Other" { ... } places the item after "Other" (before="Other" places it before) // separator after="Other" adds a separator after (or before=) "Other" // remove "Label" removes the item with that label // Unknown labels are ignored by remove and place the item at the end with after/before // An empty "context_menu clear-defaults=true {}" leaves the menu empty, so it never opens, // but right clicks are still taken by Zellij; use "context_menu_enabled false" to turn the menu off // context_menu { // pane { // item "New pane" { NewPane; } // item "New floating pane" { NewFloatingPane; } // separator // item "Fullscreen" { ToggleFocusFullscreenByPaneId; } // item "Float / Embed" { TogglePaneEmbedOrFloatingByPaneId; } // item "Rename pane" { StartRenamePaneByPaneId; } // item "Add to group" { TogglePaneInGroupByPaneId; } // separator // item "Close pane" { CloseFocusByPaneId; } // } // tab { // item "New tab" { NewTab; } // item "Rename tab" { StartRenameTabByTabId; } // item "Move tab left" { MoveTabByTabId "left"; } // item "Move tab right" { MoveTabByTabId "right"; } // item "Move tab to start" { MoveTabToPosition "start"; } // item "Move tab to end" { MoveTabToPosition "end"; } // separator // item "Close tab" { CloseTabById; } // } // bar { // item "New pane" { NewPane; } // item "New tab" { NewTab; } // } // common { // item "Settings…" { // LaunchOrFocusPlugin "configuration" { // floating true // move_to_focused_tab true // } // } // item "Session manager" { // LaunchOrFocusPlugin "session-manager" { // floating true // move_to_focused_tab true // } // } // item "Detach" { Detach; } // } // } // Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP // eg. when terminal window with an active zellij session is closed // (Requires restart) // Options: // - detach (Default) // - quit // // on_force_close "quit" // Choose how to handle a nested Zellij session detected running inside a pane // Options: // - ask (Default - prompt with a modal to zoom in or control on focus) // - fullscreen (always zoom into the nested session) // - descend (always control the nested session on focus) // - never (never prompt or descend; do it manually) // // nested_session_handling "ask" // 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 "fish" // Choose the path to override cwd that zellij will use for opening new panes // // default_cwd "" // Toggle between having pane frames around the panes // Options: // - true (default) // - false // // pane_frames true // Set the pane frame style when pane_frames is enabled // Options: // - titles (default - draw a title above each pane) // - full (draw a full frame around each pane) // - none (equivalent to pane_frames false) // // pane_frame_style "titles" // Configure the look of the pane frame borders // // ui { // pane_frames { // // round the corners of single-line borders // rounded_corners true // // line style for all four sides of tiled pane frames // // one of: single, double, heavy, dashed, heavy_dashed // border_style "single" // // per-side overrides, eg. a double top border with single sides // border_top "double" // border_right "single" // border_bottom "single" // border_left "single" // // when two neighbouring panes disagree about a shared grid line // // (pane frames off), that line falls back to border_style above // // the same keys prefixed with "floating_" apply to floating panes, // // they default to the values above // floating_border_style "double" // floating_border_top "double" // floating_border_right "double" // floating_border_bottom "double" // floating_border_left "double" // floating_border_rounded_corners false // } // } // Toggle between having Zellij lay out panes according to a predefined set of layouts whenever possible // Options: // - true (default) // - false // // auto_layout true // Whether sessions should be serialized to the cache folder (including their tabs/panes, cwds and running commands) so that they can later be resurrected // (Requires restart) // Options: // - true (default) // - false // // session_serialization false // Whether pane viewports are serialized along with the session, default is false // (Requires restart) // Options: // - true // - false (default) // // serialize_pane_viewport true // Scrollback lines to serialize along with the pane viewport when serializing sessions, 0 // defaults to the scrollback size. If this number is higher than the scrollback size, it will // also default to the scrollback size. This does nothing if `serialize_pane_viewport` is not true. // (Requires restart) // // scrollback_lines_to_serialize 10000 // 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 // Built-in themes and themes from theme_dir are read-only in the settings screen (copy one to edit it) // // 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" // Themes to use when the host terminal reports a dark or light color palette. // Both must be set for automatic switching to take place, otherwise `theme` // remains authoritative. Until the host terminal reports (or if it never does), // the dark theme is used. // // theme_dark "nightfox" // theme_light "dayfox" // Pin the session to a dark or light appearance, ignoring what the host // terminal reports. Resolved before the first render. When unset, the host // terminal decides. // Options: dark, light // // explicit_theme_hue "dark" // The name of the default layout to load on startup // Default: "default" // (Requires restart) // // default_layout "compact" // Choose the mode that zellij uses when starting up and returns to after actions. // Changes apply to the running session without a restart. // Default: normal // // default_mode "locked" // Toggle enabling the mouse mode. // On certain configurations, or terminals this could // potentially interfere with copying text. // (Requires restart) // Options: // - true (default) // - false // // mouse_mode false // Configure the scroll back buffer size // This is the number of display rows zellij stores for each pane in the scroll // back buffer. A logical line wider than the pane occupies one row per wrap. // Excess rows are discarded in a FIFO fashion. // (Requires restart) // 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 "/usr/bin/vim" // When attaching to an existing session with other users, // should the session be mirrored (true) // or should each user have their own cursor (false) // (Requires restart) // 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 // Changes apply to the running session without a restart. // Themes from this folder are read-only in the settings screen (copy one to edit it) // // theme_dir "/path/to/my/theme_dir" // The folder in which Zellij will look for keybinding presets // Default: a "keybinds" folder in the config directory // // keybinds_dir "/path/to/my/keybinds_dir" // Enable or disable the rendering of styled and colored underlines (undercurl). // May need to be disabled for certain unsupported terminals // (Requires restart) // Default: true // // styled_underlines false // Enable or disable writing of session metadata to disk (if disabled, other sessions might not know // metadata info on this session) // (Requires restart) // Default: false // // disable_session_metadata true // Enable or disable support for the enhanced Kitty Keyboard Protocol (the host terminal must also support it) // (Requires restart) // Default: true (if the host terminal supports it) // // support_kitty_keyboard_protocol false // Enable or disable support for the Kitty Graphics Protocol, used to display images (the host terminal must also support it) // (Requires restart) // Default: true (if the host terminal supports it) // // support_kitty_graphics_protocol false // Count each grapheme cluster (an emoji sequence such as a flag or a skin tone, a letter with its accents) as one unit of width, as the Unicode standard does // When false, widths are counted per code point, the way older programs expect; programs can still ask for clusters with mode 2027 // (Applies to new panes) // Default: true // // grapheme_clusters false // Whether a focused mirror of a pane in this session may resize that pane's program to the mirror's size, and whether new mirrors opened in this session resize their source pane by default // Default: true // // mirror_resizes_source_pane false // Whether to make sure a local web server is running when a new Zellij session starts. // This web server will allow creating new sessions and attaching to existing ones that have // opted in to being shared in the browser. // When enabled, navigate to http://127.0.0.1:8082 // (Requires restart) // // Note: a local web server can still be manually started from within a Zellij session or from the CLI. // If this is not desired, one can use a version of Zellij compiled without // `web_server_capability` // // Possible values: // - true // - false // Default: false // // web_server true // Whether to allow sessions started in the terminal to be shared through a local web server, assuming one is // running (see the `web_server` option for more details). // (Requires restart) // // Note: This is an administrative separation and not intended as a security measure. // // Possible values: // - "on" (allow web sharing through the local web server if it // is online) // - "off" (do not allow web sharing unless sessions explicitly opt-in to it) // - "disabled" (do not allow web sharing and do not permit sessions started in the terminal to opt-in to it) // Default: "off" // // web_sharing "on" // The ip address the web server should listen on when it starts // Default: "127.0.0.1" // (Requires restart) // // web_server_ip "127.0.0.1" // A path to a certificate file to be used when setting up the web client to serve the // connection over HTTPs // (Requires restart) // // web_server_cert "/path/to/my/cert.pem" // A path to a key file to be used when setting up the web client to serve the // connection over HTTPs // (Requires restart) // // web_server_key "/path/to/my/key.pem" // Whether to enforce https connections to the web server when it is bound to localhost // (127.0.0.0/8) // (Requires restart) // // Note: https is enforced when bound to non-local interfaces, unless // dangerously_allow_web_serving_without_a_certificate is set // // Default: false // // enforce_https_for_localhost true // DANGEROUS: allow the web server to serve plain, unencrypted HTTP when bound to a // non-local interface without web_server_cert and web_server_key. // Anyone on the network can read and tamper with the traffic, including login tokens. // Only use behind a trusted TLS-terminating proxy or on a fully trusted network. // Does not override enforce_https_for_localhost. // Default: false // (Requires restart) // // dangerously_allow_web_serving_without_a_certificate true // The port the web server should listen on when it starts // Default: 8082 // (Requires restart) // // web_server_port 8082 // Whether to stack panes when resizing beyond a certain size // Default: true // // stacked_resize false // Whether to let programs running inside panes read the paste buffer (clipboard) // with the OSC 52 escape sequence. When enabled, any program in any pane - // including one running on a remote machine over SSH - can read the clipboard // without the user being asked. // Default: false // // dangerously_enable_paste_buffer_read true // Whether stacked panes display as a list with the expanded pane pinned to the bottom // Default: true // // stacked_pane_list false // Whether to show release notes on first version run // (Requires restart) // Default: true // // show_release_notes false // Whether to enable mouse hover effects and pane grouping functionality // Default: true // // advanced_mouse_actions false // Whether Ctrl+ScrollWheel resizes panes // Default: true // // mouse_scroll_resize false // Whether scrolling a pane implicitly enters and exits Scroll mode // Default: true // // scroll_mode_sync false // Whether to enable mouse hover visual effects (frame highlight and help text) // Default: true // // mouse_hover_effects false // Whether to show mouse hover help-text tips (resize help and group shortcuts) // Default: true // // mouse_hover_tips false // Whether triple-clicking inside command output marked by the shell (OSC 133) selects // the command and its output instead of the logical line // Default: true // // osc133_command_selection false // Characters that terminate a word when double-clicking to select it // whitespace is always a separator and need not be listed here // Default: "[]{}<>()" // // word_separators "[]{}<>()" // Whether to output OSC8 hyperlink sequences // (Requires restart) // Default: true // // osc8_hyperlinks false // A command to run (will be wrapped with sh -c and provided the RESURRECT_COMMAND env variable) // after Zellij attempts to discover a command inside a pane when resurrecting sessions, the STDOUT // of this command will be used instead of the discovered RESURRECT_COMMAND // can be useful for removing wrappers around commands // Note: be sure to escape backslashes and similar characters properly // // post_command_discovery_hook "echo $RESURRECT_COMMAND | sed " // Number of async worker tasks to spawn per active client. // (Requires restart) // // Allocating few tasks may result in resource contention and lags. Small values (around 4) should // typically work best. Set to 0 to use the number of (physical) CPU cores. // NOTE: This only applies to web clients at the moment. // client_async_worker_tasks 4 // How often (in seconds) sessions are saved to disk so they can be resurrected // (Requires restart) // Default: 60 // // serialization_interval 60 // Whether to show a startup tip when a new session starts // (Requires restart) // Default: true // // show_startup_tips false // Whether to flash pane and tab frames (and add a [!] suffix) when a terminal bell rings // Default: true // // visual_bell false // Whether hovering the mouse over a pane focuses it // Default: false // // focus_follows_mouse true // Whether the click that focuses a pane is also sent to the program running in it // Default: false // // mouse_click_through true // Whether to show the other sessions indicator in the tab bar and compact bar // Default: true // // session_indicator false // Whether to briefly show the name of the new swap layout when it is changed // Default: true // // swap_layout_notification false // How other sessions are suggested on the session card and in the session manager // The first matching rule decides the order; within a rule, running sessions come first, // then the most recently used // Facts: directory, git_repo, git_branch, git_worktree, hostname, or a custom `fact` // fact "project" command="echo $PROJECT" column="project" at="live" // script "~/.config/zellij/rank.sh" timeout_ms=300 hide_unlisted=false // record "~/.config/zellij/record.sh" // // session_suggestions { // match "directory" "git_branch" // match "git_repo" "git_branch" // match "directory" // match "git_repo" // then "recent" // } // Whether a right click opens the right-click menu // When off, right clicks go to the focused pane only and Alt + right click clears the pane group // Plugins can still open the menu through their API // Default: true // // context_menu_enabled false // How notifications from programs inside Zellij are passed to the outer terminal // Options: // - auto (Default - pick the best protocol the terminal supports) // - osc9 // - osc99 // - bell // - off // // host_notification_protocol "auto" // Settings for the web client (font, font_size, cursor_blink, cursor_style, ...) // (Requires restart) web_client { font "monospace" }