programs.zsh.zplug: add zplugHome option
Add an option to set custom `$ZPLUG_HOME`. Changing it with `home.sessionVariables` doesnt work, since it has to be exported before Zplug is initialised
This commit is contained in:
parent
21590d40c1
commit
288faaa5a6
|
@ -31,6 +31,14 @@ in {
|
|||
type = types.listOf pluginModule;
|
||||
description = "List of zplug plugins.";
|
||||
};
|
||||
|
||||
zplugHome = mkOption {
|
||||
type = types.path;
|
||||
default = "${config.home.homeDirectory}/.zplug";
|
||||
defaultText = "~/.zplug";
|
||||
apply = toString;
|
||||
description = "Path to zplug home directory.";
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
@ -39,6 +47,8 @@ in {
|
|||
programs.zsh.initExtraBeforeCompInit = ''
|
||||
source ${pkgs.zplug}/init.zsh
|
||||
|
||||
export ZPLUG_HOME=${cfg.zplugHome}
|
||||
|
||||
${optionalString (cfg.plugins != [ ]) ''
|
||||
${concatStrings (map (plugin: ''
|
||||
zplug "${plugin.name}"${
|
||||
|
|
|
@ -8,6 +8,7 @@ with lib;
|
|||
enable = true;
|
||||
zplug = {
|
||||
enable = true;
|
||||
zplugHome = ~/.customZplugHome;
|
||||
plugins = [
|
||||
{
|
||||
name = "plugins/git";
|
||||
|
@ -43,6 +44,9 @@ with lib;
|
|||
|
||||
assertFileRegex home-files/.zshrc \
|
||||
'^zplug load$'
|
||||
|
||||
assertFileContains home-files/.zshrc \
|
||||
'export ZPLUG_HOME=${config.programs.zsh.zplug.zplugHome}'
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue