{ lib, config, pkgs, ... }: let cfg = config.snowhawk.tmux; sessionizer = cfg.sessionizer; in { options.snowhawk.tmux = { enable = lib.mkEnableOption "tmux"; }; config = lib.mkIf cfg.enable { programs.tmux = { enable = true; shell = "${pkgs.fish}/bin/fish"; mouse = true; baseIndex = 1; terminal = "screen-256color"; newSession = true; escapeTime = 0; plugins = with pkgs; [ { plugin = tmuxPlugins.rose-pine; extraConfig = '' set -g @rose_pine_variant 'main' # Options are 'main', 'moon' or 'dawn' set -g @rose_pine_host 'on' set -g @rose_pine_date_time '%c' # %c is a good value but ''; } { plugin = tmuxPlugins.vim-tmux-navigator; } ]; extraConfig = '' set-option -g renumber-windows on set-option -g focus-events on bind '"' split-window -v -c "#{pane_current_path}" bind % split-window -h -c "#{pane_current_path}" ${lib.optionalString sessionizer.enable ''bind-key -r f run-shell "tmux neww ${sessionizer.pkg}/bin/tmux-sessionizer"''} ''; }; programs.fish.shellAbbrs = { a = "tmux a"; }; }; }