dotfiles/home/tmux/default.nix

64 lines
2.4 KiB
Nix

{ 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"
'';
};
}