{pkgs, ...}: with pkgs; { programs = { fish = let mkFishPlugin = sources: { inherit (sources) src; name = sources.pname; }; sources = import ../../../_sources/generated.nix {inherit (pkgs) fetchurl fetchFromGitHub;}; extraPlugins = lib.attrsets.mapAttrsToList (_: value: mkFishPlugin value) sources; mkFishPlugins = names: map (name: { inherit name; src = pkgs.fishPlugins.${name}.src; }) names; in { enable = true; plugins = extraPlugins ++ (mkFishPlugins ["autopair" "bass" "colored-man-pages" "done" "fifc" "forgit" "grc"]); shellAliases = { cat = "${bat}/bin/bat"; df = "${duf}/bin/duf"; rm = "${rm-improved}/bin/rip"; cp = "${xcp}/bin/xcp"; }; interactiveShellInit = '' function fish_greeting macchina end bind --erase \ct fish_add_path /opt/homebrew/bin fish_add_path /Users/marshall/.nix-profile/bin ''; }; starship = { enable = true; catppuccin.enable = true; }; }; }