91 lines
3.2 KiB
Nix
Executable file
91 lines
3.2 KiB
Nix
Executable file
{ config, pkgs, ... }:
|
|
{
|
|
programs.tmux = {
|
|
enable = true;
|
|
terminal = "xterm-256color";
|
|
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 '${pkgs.wl-clipboard}/bin/wl-copy'
|
|
set -g status-right ""
|
|
setw -g status-style 'bg=terminal fg=colour7'
|
|
setw -g window-status-current-format '[#P:#W*] '
|
|
set-option -g history-limit 50000
|
|
bind-key C-a last-window
|
|
bind-key C-s run-shell 'export tmpfile=$(mktemp) && tmux capture-pane -pS -32768 > "$tmpfile" && tmux new-window "nvim $tmpfile"'
|
|
'';
|
|
};
|
|
|
|
programs.zellij.enable = true;
|
|
home.file."${config.xdg.configHome}/zellij/config.kdl".text = ''
|
|
show_startup_tips false
|
|
on_force_close "quit"
|
|
default_layout "compact"
|
|
default_mode "locked"
|
|
keybinds {
|
|
tmux {
|
|
bind "Ctrl a" { SwitchToMode "Locked"; }
|
|
bind "Ctrl b" { Write 1; }
|
|
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; }
|
|
}
|
|
bind "1" { GoToTab 1; SwitchToMode "Locked"; }
|
|
bind "2" { GoToTab 2; SwitchToMode "Locked"; }
|
|
bind "3" { GoToTab 3; SwitchToMode "Locked"; }
|
|
bind "4" { GoToTab 4; SwitchToMode "Locked"; }
|
|
bind "5" { GoToTab 5; SwitchToMode "Locked"; }
|
|
bind "6" { GoToTab 6; SwitchToMode "Locked"; }
|
|
bind "7" { GoToTab 7; SwitchToMode "Locked"; }
|
|
bind "8" { GoToTab 8; SwitchToMode "Locked"; }
|
|
bind "9" { GoToTab 9; SwitchToMode "Locked"; }
|
|
}
|
|
locked {
|
|
unbind "Ctrl g"
|
|
}
|
|
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
|
|
}
|
|
}
|
|
'';
|
|
}
|