nixos/home/modules/tmux.nix

50 lines
1.2 KiB
Nix

{ 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 ${lib.getExe sessionizer.pkg}"''}
'';
};
programs.fish.shellAbbrs = {
a = "tmux a";
};
};
}