{pkgs, ...}: { # Required by the fzf fish plugin programs.fzf = { enable = true; }; home.packages = with pkgs; [ fd bat ]; programs.fish = { enable = true; # enableCompletion = true; plugins = [ { name = "fzf-fish"; src = pkgs.fetchFromGitHub { owner = "PatrickF1"; repo = "fzf.fish"; rev = "v10.3"; sha256 = "sha256-T8KYLA/r/gOKvAivKRoeqIwE2pINlxFQtZJHpOy9GMM="; }; } # add others here ]; }; # 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 ''; }; }