programs.zsh: option localVariables
Add option "extraLocalVars" for additional local variable definitions in .zshrc, at the top of the file. Some zsh plugins/themes expect configuration in local variables before they are loaded (example: https://github.com/bhilburn/powerlevel9k). Exporting those clutters the environment and is unnecessary.
This commit is contained in:
parent
6b5e0efd1e
commit
9052131aef
|
@ -12,6 +12,7 @@ let
|
||||||
relToDotDir "plugins" else ".zsh/plugins";
|
relToDotDir "plugins" else ".zsh/plugins";
|
||||||
|
|
||||||
envVarsStr = config.lib.zsh.exportAll cfg.sessionVariables;
|
envVarsStr = config.lib.zsh.exportAll cfg.sessionVariables;
|
||||||
|
localVarsStr = config.lib.zsh.defineAll cfg.localVariables;
|
||||||
|
|
||||||
aliasesStr = concatStringsSep "\n" (
|
aliasesStr = concatStringsSep "\n" (
|
||||||
mapAttrsToList (k: v: "alias ${k}='${v}'") cfg.shellAliases
|
mapAttrsToList (k: v: "alias ${k}='${v}'") cfg.shellAliases
|
||||||
|
@ -265,6 +266,15 @@ in
|
||||||
default = {};
|
default = {};
|
||||||
description = "Options to configure oh-my-zsh.";
|
description = "Options to configure oh-my-zsh.";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
localVariables = mkOption {
|
||||||
|
type = types.attrs;
|
||||||
|
default = {};
|
||||||
|
example = { POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=["dir" "vcs"]; };
|
||||||
|
description = ''
|
||||||
|
Extra local variables defined at the top of <filename>.zshrc</filename>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -321,6 +331,8 @@ in
|
||||||
${getAttr cfg.defaultKeymap bindkeyCommands}
|
${getAttr cfg.defaultKeymap bindkeyCommands}
|
||||||
''}
|
''}
|
||||||
|
|
||||||
|
${localVarsStr}
|
||||||
|
|
||||||
${concatStrings (map (plugin: ''
|
${concatStrings (map (plugin: ''
|
||||||
path+="$HOME/${pluginsDir}/${plugin.name}"
|
path+="$HOME/${pluginsDir}/${plugin.name}"
|
||||||
fpath+="$HOME/${pluginsDir}/${plugin.name}"
|
fpath+="$HOME/${pluginsDir}/${plugin.name}"
|
||||||
|
|
Loading…
Reference in a new issue