Fish
Appearance
Fish is the Friendly Interactive SHell.
At the moment it’s not possible to use fish as login shell. But you can always start it as default shell of your terminal emulator.
Useful scripts
Show that you are in a nix-shell
Add this to fish/fish_prompt.fish:
set -l nix_shell_info (
if test "$IN_NIX_SHELL" = "1"
echo -n "<nix-shell> "
end
)
and $nix_shell_info to the echo in that function, e.g.:
echo -n -s "$nix_shell_info ~>"
Now your prompt looks like this
- outside:
~> - inside:
<nix-shell> ~>
btw. you can directly start nix-shell in fish with nix-shell --run fish, but (FIXME) the normal build functions are not available there.
Environments
Helper functions that put you in a nix-shell with the given packages installed.
haskellEnv
function haskellEnv nix-shell -p "haskellPackages.ghcWithPackages (pkgs: with pkgs; [ $argv ])" end # Invocation: haskellEnv package1 packages2 .. packageN
pythonEnv
function pythonEnv --description 'start a nix-shell with the given python packages' --argument pythonVersion
if set -q argv[2]
set argv $argv[2..-1]
end
for el in $argv
set ppkgs $ppkgs "python"$pythonVersion"Packages.$el"
end
nix-shell -p $ppkgs
end
# Invocation: pythonEnv 3 package1 package2 .. packageN
# or: pythonEnv 2 ..