From ee7f2413edf40f323fff76c876304ceca87931f9 Mon Sep 17 00:00:00 2001 From: Nikita Uvarov Date: Fri, 13 Oct 2017 16:34:02 +0200 Subject: [PATCH] zsh: use new option to set internal session vars --- modules/programs/zsh.nix | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/modules/programs/zsh.nix b/modules/programs/zsh.nix index aed6fd401..d9ee7ab18 100644 --- a/modules/programs/zsh.nix +++ b/modules/programs/zsh.nix @@ -230,14 +230,16 @@ in ++ optional cfg.enableCompletion nix-zsh-completions ++ optional cfg.oh-my-zsh.enable oh-my-zsh; + programs.zsh.sessionVariables = { + HISTSIZE = cfg.history.size; + HISTFILE = "$HOME/" + cfg.history.path; + }; + home.file."${relToDotDir ".zshenv"}".text = '' ${envVarsStr} ''; home.file."${relToDotDir ".zshrc"}".text = '' - ${export "HISTSIZE" cfg.history.size} - ${export "HISTFILE" ("$HOME/" + cfg.history.path)} - setopt HIST_FCNTL_LOCK ${if cfg.history.ignoreDups then "setopt" else "unsetopt"} HIST_IGNORE_DUPS ${if cfg.history.share then "setopt" else "unsetopt"} SHARE_HISTORY @@ -259,9 +261,6 @@ in ${optionalString cfg.oh-my-zsh.enable '' # oh-my-zsh configuration generated by NixOS - export ZSH=${pkgs.oh-my-zsh}/share/oh-my-zsh - export ZSH_CACHE_DIR=''${XDG_CACHE_HOME:-$HOME/.cache}/oh-my-zsh - ${optionalString (cfg.oh-my-zsh.plugins != []) "plugins=(${concatStringsSep " " cfg.oh-my-zsh.plugins})" } @@ -283,6 +282,14 @@ in ${aliasesStr} ''; } + + (mkIf cfg.oh-my-zsh.enable { + programs.zsh.sessionVariables = { + ZSH = "${pkgs.oh-my-zsh}/share/oh-my-zsh"; + ZSH_CACHE_DIR = "\${XDG_CACHE_HOME:-$HOME/.cache}/oh-my-zsh"; + }; + }) + (mkIf (cfg.dotDir != null) { programs.zsh.sessionVariables.ZDOTDIR = zdotdir; @@ -294,12 +301,14 @@ in source ${zdotdir}/.zshenv ''; }) + (mkIf cfg.oh-my-zsh.enable { # Oh-My-Zsh calls compinit during initialization, # calling it twice causes sight start up slowdown # as all $fpath entries will be traversed again. programs.zsh.enableCompletion = mkForce false; }) + (mkIf (cfg.plugins != []) { # Many plugins require compinit to be called # but allow the user to opt out.