diff --git a/modules/programs/mcfly.nix b/modules/programs/mcfly.nix index 75f6f2b3..0a7a6480 100644 --- a/modules/programs/mcfly.nix +++ b/modules/programs/mcfly.nix @@ -5,6 +5,24 @@ let cfg = config.programs.mcfly; + bashIntegration = '' + eval "$(${getExe pkgs.mcfly} init bash)" + '' + optionalString cfg.fzf.enable '' + eval "$(${getExe pkgs.mcfly-fzf} init bash)" + ''; + + fishIntegration = '' + ${getExe pkgs.mcfly} init fish | source + '' + optionalString cfg.fzf.enable '' + ${getExe pkgs.mcfly-fzf} init fish | source + ''; + + zshIntegration = '' + eval "$(${getExe pkgs.mcfly} init zsh)" + '' + optionalString cfg.fzf.enable '' + eval "$(${getExe pkgs.mcfly-fzf} init zsh)" + ''; + in { meta.maintainers = [ ]; @@ -30,6 +48,8 @@ in { ''; }; + fzf.enable = mkEnableOption "McFly fzf integration"; + enableLightTheme = mkOption { default = false; type = types.bool; @@ -75,19 +95,13 @@ in { config = mkIf cfg.enable (mkMerge [ { - home.packages = [ pkgs.mcfly ]; + home.packages = [ pkgs.mcfly ] ++ optional cfg.fzf.enable pkgs.mcfly-fzf; - programs.bash.initExtra = mkIf cfg.enableBashIntegration '' - eval "$(${pkgs.mcfly}/bin/mcfly init bash)" - ''; + programs.bash.initExtra = mkIf cfg.enableBashIntegration bashIntegration; - programs.zsh.initExtra = mkIf cfg.enableZshIntegration '' - eval "$(${pkgs.mcfly}/bin/mcfly init zsh)" - ''; + programs.zsh.initExtra = mkIf cfg.enableZshIntegration zshIntegration; - programs.fish.shellInit = mkIf cfg.enableFishIntegration '' - ${pkgs.mcfly}/bin/mcfly init fish | source - ''; + programs.fish.shellInit = mkIf cfg.enableFishIntegration fishIntegration; home.sessionVariables.MCFLY_KEY_SCHEME = cfg.keyScheme; }