Files
nixos-config/modules/home-manager/fish.nix

46 lines
1013 B
Nix

{pkgs, ...}:
{
# Required by the fzf fish plugin
programs.fzf = {
enable = true;
};
home.packages = with pkgs; [
fd
bat
];
programs.fish = {
enable = true;
generateCompletions = true;
plugins = [
{ name = "fzf"; src = pkgs.fishPlugins.fzf-fish.src; }
{ name = "z"; src = pkgs.fishPlugins.z.src; }
{ name = "pure"; src = pkgs.fishPlugins.pure.src; }
];
functions = {
# disable the fish greeting
fish_greeting = "";
};
};
# sets the "default" shell to fish
# actually keeps bash as a posix-compliant default but starts fish if the shell is not bash
# See https://nixos.wiki/wiki/Fish
programs.bash = {
enable = true;
initExtra = ''
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
then
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
fi
'';
};
}