rose-pine-nix/modules/home-manager/tmux.nix

49 lines
1 KiB
Nix

{
config,
lib,
pkgs,
...
}:
let
inherit (lib)
ctp
mkOption
types
concatStrings
;
inherit (config.catppuccin) sources;
cfg = config.programs.tmux.catppuccin;
enable = cfg.enable && config.programs.tmux.enable;
plugin =
# TODO @getchoo: upstream this in nixpkgs
pkgs.tmuxPlugins.mkTmuxPlugin {
pluginName = "catppuccin";
version = builtins.substring 0 7 sources.tmux.revision;
src = sources.tmux;
};
in
{
options.programs.tmux.catppuccin = ctp.mkCatppuccinOpt { name = "tmux"; } // {
extraConfig = mkOption {
type = types.lines;
description = "Additional configuration for the catppuccin plugin.";
default = "";
example = ''
set -g @catppuccin_status_modules_right "application session user host date_time"
'';
};
};
config.programs.tmux.plugins = lib.mkIf enable [
{
inherit plugin;
extraConfig = concatStrings [
''
set -g @catppuccin_flavor '${cfg.flavor}'
''
cfg.extraConfig
];
}
];
}