{ pkgs, ... }: { home.packages = with pkgs; [ gitmux ]; programs.tmux = { enable = true; aggressiveResize = true; baseIndex = 1; clock24 = true; customPaneNavigationAndResize = true; escapeTime = 50; # focusEvents = true; historyLimit = 100000; keyMode = "vi"; mouse = true; shell = "${pkgs.fish}/bin/fish"; plugins = with pkgs.tmuxPlugins; [ catppuccin cpu weather ]; extraConfig = '' # catppuccin theme options set -g @catppuccin_flavour "mocha" set -g @catppuccin_status_modules_right "application gitmux cpu weather session" set -g @tmux-weather-units "u" run-shell ${pkgs.tmuxPlugins.catppuccin}/share/tmux-plugins/catppuccin/catppuccin.tmux run-shell ${pkgs.tmuxPlugins.cpu}/share/tmux-plugins/cpu/cpu.tmux run-shell ${pkgs.tmuxPlugins.weather}/share/tmux-plugins/weather/tmux-weather.tmux # new panes inherit current working directory bind '%' split-window -h -c '#{pane_current_path}' bind '"' split-window -v -c '#{pane_current_path}' # navigating panes with Ctrl+{hjkl} bind -n C-h select-pane -L bind -n C-j select-pane -D bind -n C-k select-pane -U bind -n C-l select-pane -R # synchronize panes with S bind S set-window-option synchronize-panes \; display-message 'Synchronize-panes #{?pane_synchronized,on,off}' # swap panes with <> bind > swap-pane -D bind < swap-pane -U # window operations unbind n unbind w bind n command-prompt "rename-window '%%'" bind w new-window bind -n M-j previous-window # alt+j bind -n M-k next-window # alt+k # shorter status update interval set-option -g status-interval 1 # display up to 20 chars of session name set-option -g status-left-length 20 # default statusbar colors set-option -g status-style fg=yellow,bg=black # default window title colors set-window-option -g window-status-style fg=brightblue,bg=default #set-window-option -g window-status-style dim # active window title colors set-window-option -g window-status-current-style fg=brightred,bg=default #set-window-options -g window-status-current-style bright # pane border set-option -g pane-border-style fg=black set-option -g pane-active-border-style fg=brightgreen # message text set-option -g message-style fg=brightred,bg=black # pane number display set-option -g display-panes-active-colour blue set-option -g display-panes-colour brightred # clock set-window-option -g clock-mode-colour brightgreen # bell set-window-option -g window-status-bell-style fg=black,bg=red # clipboard set-option -s set-clipboard on # terminal colors set-option -g default-terminal "tmux-256color" set-option -a terminal-features "xterm-256color:RGB" ''; }; home.shellAliases = { tm = "tmux"; tms = "tmux new -s"; tml = "tmux list-sessions"; tma = "tmux attach -t"; tmk = "tmux kill-session -t"; }; }