I am running unstable. In my configuration.nix i added the following:
`environment.systemPackages = with pkgs; [
…(unrelated packages)…
fishPlugins.grc
grc
fishPlugins.done
babelfish
];
programs.fish.enable = true;
programs.fish.useBabelfish = true;`
I built the configuration (switch) without errors.
Thereafter, fish showed an error regarding cat so i commented the following entries and ran the configuration again (switch).
fishPlugins.grc grc fishPlugins.done
However, NixOS added 3 aliases to /etc/fish/config.fish and i can’t delete them, because the file is read only:
alias l 'ls -alh' alias ll 'ls -l' alias ls 'ls --color=tty'
How can i delete these aliases? Why were they added in the first place?
What I have in configuration.nix is this:
environment.shellAliases = {
l = null;
ls = null;
ll = null;
};
These are the only aliases added by the nix AFAIK.
Adding programs.fish.shellAliases = {}
may also work, but that is for fish only. The environment.shellAliases
is for all the shells and I prefer that.
Thank you for the suggestion and your quick reply!
I added
environment.shellAliases = {}; programs.fish.shellAliases = {};
but the aliases are still there.
1 Like
I remember that setting environment.shellAliases = {};
didn’t work, I had to manually set every alias to null
. Try forcing the value like this environment.shellAliases = lib.mkForce {};
?
When compiling it says building the system configuration... error: undefined variable 'lib'
Yes, you have to include it in the top of the file. Change the line{ config, pkgs, ... }:
to { config, pkgs, lib, ... }:
And I just made the change in my configuration, and lib.mkForce {}
does the job.
That worked. Thanks for your help! 
1 Like