1
0
Fork 0
mirror of https://github.com/nix-community/home-manager synced 2024-12-23 10:19:48 +01:00

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:
flexagoon 2021-10-17 00:35:03 +03:00 committed by Robert Helgesson
parent 21590d40c1
commit 288faaa5a6
No known key found for this signature in database
GPG key ID: 36BDAA14C2797E89
2 changed files with 14 additions and 0 deletions

View file

@ -31,6 +31,14 @@ in {
type = types.listOf pluginModule; type = types.listOf pluginModule;
description = "List of zplug plugins."; 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 { config = mkIf cfg.enable {
@ -39,6 +47,8 @@ in {
programs.zsh.initExtraBeforeCompInit = '' programs.zsh.initExtraBeforeCompInit = ''
source ${pkgs.zplug}/init.zsh source ${pkgs.zplug}/init.zsh
export ZPLUG_HOME=${cfg.zplugHome}
${optionalString (cfg.plugins != [ ]) '' ${optionalString (cfg.plugins != [ ]) ''
${concatStrings (map (plugin: '' ${concatStrings (map (plugin: ''
zplug "${plugin.name}"${ zplug "${plugin.name}"${

View file

@ -8,6 +8,7 @@ with lib;
enable = true; enable = true;
zplug = { zplug = {
enable = true; enable = true;
zplugHome = ~/.customZplugHome;
plugins = [ plugins = [
{ {
name = "plugins/git"; name = "plugins/git";
@ -43,6 +44,9 @@ with lib;
assertFileRegex home-files/.zshrc \ assertFileRegex home-files/.zshrc \
'^zplug load$' '^zplug load$'
assertFileContains home-files/.zshrc \
'export ZPLUG_HOME=${config.programs.zsh.zplug.zplugHome}'
''; '';
}; };
} }