{config, ...}: { programs.tmux = { enable = true; keyMode = "vi"; mouse = true; newSession = true; prefix = "C-a"; escapeTime = 0; baseIndex = 1; # vi mode navigation customPaneNavigationAndResize = true; extraConfig = '' bind-key -T copy-mode-vi 'v' send -X begin-selection bind-key -T copy-mode-vi 'y' send-keys -X copy-pipe-and-cancel 'xclip -sel clip -i' set -g status-right "" setw -g status-style 'bg=colour0 fg=colour7' setw -g window-status-current-format '[#P:#W*] ' ''; }; programs.zellij = { enable = true; enableFishIntegration = true; }; home.file."${config.xdg.configHome}/zellij/config.kdl".text = '' on_force_close "quit" default_layout "compact" default_mode "locked" keybinds { tmux { bind "Ctrl a" { Write 2; SwitchToMode "Locked"; } bind "[" { SwitchToMode "Scroll"; } bind "\"" { NewPane "Down"; SwitchToMode "Locked"; } bind "%" { NewPane "Right"; SwitchToMode "Locked"; } bind "z" { ToggleFocusFullscreen; SwitchToMode "Locked"; } bind "c" { NewTab; SwitchToMode "Locked"; } bind "," { SwitchToMode "RenameTab"; } bind "p" { GoToPreviousTab; SwitchToMode "Locked"; } bind "n" { GoToNextTab; SwitchToMode "Locked"; } bind "h" { MoveFocus "Left"; SwitchToMode "Locked"; } bind "l" { MoveFocus "Right"; SwitchToMode "Locked"; } bind "j" { MoveFocus "Down"; SwitchToMode "Locked"; } bind "k" { MoveFocus "Up"; SwitchToMode "Locked"; } bind "Ctrl h" { MoveFocus "Left"; } bind "Ctrl l" { MoveFocus "Right"; } bind "Ctrl j" { MoveFocus "Down"; } bind "Ctrl k" { MoveFocus "Up"; } bind "o" { FocusNextPane; } bind "d" { Detach; } bind "Space" { NextSwapLayout; } bind "x" { CloseFocus; SwitchToMode "Locked"; } bind "/" { LaunchOrFocusPlugin "zellij-forgot" { floating true; } } } shared_except "tmux" { bind "Ctrl a" { SwitchToMode "Tmux" } } } mouse_mode true pane_frames false plugins { zellij-forgot location="https://github.com/karimould/zellij-forgot/releases/download/0.4.0/zellij_forgot.wasm" } simplified_ui true theme "ansi" ui { pane_frames { hide_session_name true } } ''; }