From 4d4acf65509319d56ca6f3ee2970d77b3f82b73f Mon Sep 17 00:00:00 2001 From: Daiderd Jordan Date: Wed, 17 Jan 2018 01:54:02 +0100 Subject: [PATCH] zsh: don't clobber promptInit in a nix-shell Configure this yourself if you want a different prompt when a nix-shell is active. --- modules/examples/lnl.nix | 8 ++++++-- modules/programs/zsh/default.nix | 15 +++++++-------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/modules/examples/lnl.nix b/modules/examples/lnl.nix index 0173e82f..e21c2ad6 100644 --- a/modules/examples/lnl.nix +++ b/modules/examples/lnl.nix @@ -203,8 +203,12 @@ programs.zsh.promptInit = '' autoload -U promptinit && promptinit - PROMPT='%B%(?..%? )%b⇒ ' - RPROMPT='%F{green}%~%f' + if [ -n "$IN_NIX_SHELL" ]; then + PS1='%F{green}%B[nix-shell]%#%b%f ' + else + PS1='%B%(?..%? )%b⇒ ' + fi + RPS1='%F{green}%~%f' ''; programs.zsh.loginShellInit = '' diff --git a/modules/programs/zsh/default.nix b/modules/programs/zsh/default.nix index 0c873de3..ee22a2b2 100644 --- a/modules/programs/zsh/default.nix +++ b/modules/programs/zsh/default.nix @@ -163,11 +163,6 @@ in # /etc/zshrc: DO NOT EDIT -- this file has been generated automatically. # This file is read for interactive shells. - bindkey -e - ${optionalString cfg.enableFzfCompletion "source ${fzfCompletion}"} - ${optionalString cfg.enableFzfGit "source ${fzfGit}"} - ${optionalString cfg.enableFzfHistory "source ${fzfHistory}"} - # Only execute this file once per shell. if [ -n "$__ETC_ZSHRC_SOURCED" -o -n "$NOSYSZSHRC" ]; then return; fi __ETC_ZSHRC_SOURCED=1 @@ -179,6 +174,8 @@ in setopt HIST_IGNORE_DUPS SHARE_HISTORY HIST_FCNTL_LOCK + bindkey -e + ${config.environment.interactiveShellInit} ${cfg.interactiveShellInit} @@ -187,6 +184,8 @@ in fpath+=($p/share/zsh/site-functions $p/share/zsh/$ZSH_VERSION/functions) done + ${cfg.promptInit} + ${optionalString cfg.enableCompletion "autoload -U compinit && compinit"} ${optionalString cfg.enableBashCompletion "autoload -U bashcompinit && bashcompinit"} @@ -194,9 +193,9 @@ in "source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" } - ${cfg.promptInit} - - if test -n "$IN_NIX_SHELL"; then PS1='%F{green}%B[nix-shell:%~]%#%b%f '; fi + ${optionalString cfg.enableFzfCompletion "source ${fzfCompletion}"} + ${optionalString cfg.enableFzfGit "source ${fzfGit}"} + ${optionalString cfg.enableFzfHistory "source ${fzfHistory}"} # Read system-wide modifications. if test -f /etc/zshrc.local; then