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