about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDaiderd Jordan <daiderd@gmail.com>2017-07-09 10:45:40 +0200
committerGitHub <noreply@github.com>2017-07-09 10:45:40 +0200
commit8189811d3f7cdb0f9c12f486e955fdd7476e97b7 (patch)
treec731ca73fef8082a1b0b135d65a8bba172d5f173
parentbd129c2b3e033bd92d5c93cca4d516b021d408e6 (diff)
parent1f70f3801b7173ddb2890fbe39f57d6dae3e6611 (diff)
downloadnixlib-8189811d3f7cdb0f9c12f486e955fdd7476e97b7.tar
nixlib-8189811d3f7cdb0f9c12f486e955fdd7476e97b7.tar.gz
nixlib-8189811d3f7cdb0f9c12f486e955fdd7476e97b7.tar.bz2
nixlib-8189811d3f7cdb0f9c12f486e955fdd7476e97b7.tar.lz
nixlib-8189811d3f7cdb0f9c12f486e955fdd7476e97b7.tar.xz
nixlib-8189811d3f7cdb0f9c12f486e955fdd7476e97b7.tar.zst
nixlib-8189811d3f7cdb0f9c12f486e955fdd7476e97b7.zip
Merge pull request #25648 from yacinehmito/custom
Make zshrc more predictable
-rw-r--r--nixos/modules/programs/zsh/oh-my-zsh.nix4
-rw-r--r--nixos/modules/programs/zsh/zsh.nix71
2 files changed, 36 insertions, 39 deletions
diff --git a/nixos/modules/programs/zsh/oh-my-zsh.nix b/nixos/modules/programs/zsh/oh-my-zsh.nix
index 446c05da39d0..aa5844cdc4d4 100644
--- a/nixos/modules/programs/zsh/oh-my-zsh.nix
+++ b/nixos/modules/programs/zsh/oh-my-zsh.nix
@@ -42,6 +42,10 @@ in
     };
 
     config = mkIf cfg.enable {
+
+      # Prevent zsh from overwriting oh-my-zsh's prompt
+      programs.zsh.promptInit = mkDefault "";
+
       environment.systemPackages = with pkgs; [ oh-my-zsh ];
 
       programs.zsh.interactiveShellInit = with pkgs; with builtins; ''
diff --git a/nixos/modules/programs/zsh/zsh.nix b/nixos/modules/programs/zsh/zsh.nix
index b276bf9bb73c..a055291282c9 100644
--- a/nixos/modules/programs/zsh/zsh.nix
+++ b/nixos/modules/programs/zsh/zsh.nix
@@ -97,45 +97,6 @@ in
 
   config = mkIf cfg.enable {
 
-    programs.zsh = {
-
-      shellInit = ''
-        . ${config.system.build.setEnvironment}
-
-        ${cfge.shellInit}
-      '';
-
-      loginShellInit = cfge.loginShellInit;
-
-      interactiveShellInit = ''
-        # history defaults
-        SAVEHIST=2000
-        HISTSIZE=2000
-        HISTFILE=$HOME/.zsh_history
-
-        setopt HIST_IGNORE_DUPS SHARE_HISTORY HIST_FCNTL_LOCK
-
-        # Tell zsh how to find installed completions
-        for p in ''${(z)NIX_PROFILES}; do
-          fpath+=($p/share/zsh/site-functions $p/share/zsh/$ZSH_VERSION/functions $p/share/zsh/vendor-completions)
-        done
-
-        ${if cfg.enableCompletion then "autoload -U compinit && compinit" else ""}
-
-        ${optionalString (cfg.enableAutosuggestions)
-          "source ${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh"
-        }
-
-        ${zshAliases}
-        ${cfg.promptInit}
-
-        ${cfge.interactiveShellInit}
-
-        HELPDIR="${pkgs.zsh}/share/zsh/$ZSH_VERSION/help"
-      '';
-
-    };
-
     environment.etc."zshenv".text =
       ''
         # /etc/zshenv: DO NOT EDIT -- this file has been generated automatically.
@@ -146,6 +107,10 @@ in
         if [ -n "$__ETC_ZSHENV_SOURCED" ]; then return; fi
         export __ETC_ZSHENV_SOURCED=1
 
+        . ${config.system.build.setEnvironment}
+
+        ${cfge.shellInit}
+
         ${cfg.shellInit}
 
         # Read system-wide modifications.
@@ -163,6 +128,8 @@ in
         if [ -n "$__ETC_ZPROFILE_SOURCED" ]; then return; fi
         __ETC_ZPROFILE_SOURCED=1
 
+        ${cfge.loginShellInit}
+
         ${cfg.loginShellInit}
 
         # Read system-wide modifications.
@@ -182,8 +149,34 @@ in
 
         . /etc/zinputrc
 
+        # history defaults
+        SAVEHIST=2000
+        HISTSIZE=2000
+        HISTFILE=$HOME/.zsh_history
+
+        setopt HIST_IGNORE_DUPS SHARE_HISTORY HIST_FCNTL_LOCK
+
+        HELPDIR="${pkgs.zsh}/share/zsh/$ZSH_VERSION/help"
+
+        ${optionalString cfg.enableCompletion "autoload -U compinit && compinit"}
+
+        ${optionalString (cfg.enableAutosuggestions)
+          "source ${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh"
+        }
+
+        ${zshAliases}
+
+        ${cfge.interactiveShellInit}
+
         ${cfg.interactiveShellInit}
 
+        ${cfg.promptInit}
+
+        # Tell zsh how to find installed completions
+        for p in ''${(z)NIX_PROFILES}; do
+          fpath+=($p/share/zsh/site-functions $p/share/zsh/$ZSH_VERSION/functions $p/share/zsh/vendor-completions)
+        done
+
         # Read system-wide modifications.
         if test -f /etc/zshrc.local; then
           . /etc/zshrc.local