programs.zsh: move evlauation of ${zshAliases}
after cfg.interactiveShellInit
#28378
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation for this change
/etc/zshrc
which might break several people's setups.cfg.interactiveShellInit
is used by modules likeprograms.zsh.oh-my-zsh
. This means that all aliases defined inprograms.zsh.shellAliases
might be overriden which is highlyunpredictable in some cases.
Example:
oh-my-zsh
overridesll
andl
aliases in the core (no plugin which might be disabled), but I decided to useexa
asls
replacement.Now I tried to alias
ls
andll
toexa
inprograms.zsh.shellAliases
, but it was overriden byoh-my-zsh
asinteractiveShellInit
is evaluated aftershellAliases
.A quickfix was to use
mkAfter
:As you can see I create
alias
statements manually in a custominteractiveShellInit
block, however I don't think that such hacks should be necessary to prevent such unexpectable behavior.Things done
(nix.useSandbox on NixOS,
or option
build-use-sandbox
innix.conf
on non-NixOS)
nix-shell -p nox --run "nox-review wip"
./result/bin/
)