{ pkgs, ... }: { programs.tmux = { shell = "${pkgs.zsh}/bin/zsh"; terminal = "screen-256color"; enable = true; clock24 = true; shortcut = "a"; escapeTime = 0; newSession = true; mouse = true; keyMode = "vi"; plugins = [ pkgs.tmuxPlugins.vim-tmux-navigator pkgs.tmuxPlugins.better-mouse-mode pkgs.tmuxPlugins.yank { plugin = pkgs.tmuxPlugins.catppuccin; extraConfig = '' set -ogq @catppuccin_flavor "mocha" set -ogq @catppuccin_window_status_style "rounded" set -ogq @catppuccin_pane_border_style "fg=#181825" set -ogq @catppuccin_pane_active_border_style "fg=#023269" set -ogq @catppuccin_menu_selected_style "fg=#{@thm_gray},bg=#0F7FCF" set -g @catppuccin_window_current_number_color "#0F7FCF" set -g @catppuccin_window_current_text_color "#1F2430" set -g @catppuccin_window_text_color "#1F2430" set -g @catppuccin_window_number_color "#707072" set -ogq status-right "#{E:@catppuccin_status_directory}" # Make the status line pretty and add some modules set -g status-right-length 100 set -g status-left-length 100 set -g status-left "" set -g status-right "#{E:@catppuccin_status_application}" set -ag status-right "#{E:@catppuccin_status_session}" ''; } ]; extraConfig = '' set -ag terminal-overrides ",screen-256color:Tc" set-window-option -g mode-keys vi bind-key -T copy-mode-vi 'v' send -X begin-selection bind-key -T copy-mode-vi 'y' send -X copy-selection bind | split-window -h -c "#{pane_current_path}" bind - split-window -v -c "#{pane_current_path}" bind c new-window -c "#{pane_current_path}" unbind '"' unbind % # Renumber windows starting from 1 set -g base-index 1 setw -g pane-base-index 1 set-option -g renumber-windows on # Transparent bar set -g status-bg default set -g status-style "bg=default" ''; }; }