{pkgs, ...}: { programs.fish = { enable = true; generateCompletions = true; interactiveShellInit = let greetings = [ # Official _cry64 quotes "Do butterflies cry when they're sad?" "I hope they do" "I think Alice is lost..." "I once again retreat to the sanctuary of my virtual realm" # Unknown "Welcome weary traveler to my shop" # Legend of Zelda "It's dangerous to go alone! Take this." # ULTRAKILL "Something wicked this way comes" "May your L's be many... and your bitches few" # Terraria "What a horrible night to have a curse." "The ancient spirits of light and dark have been released." # Calamity "The god of the stars rejects your offering. The ritual can only be performed at night." "You should have just died..." "Supreme Witch, Calamitas has killed every player!" # Key Fairy "A broken heart beats in fractals" # Signalis "Remember our promise" ] |> map (x: "\"${x}\"") |> builtins.concatStringsSep " "; in '' # add dotnet completions if it exists (ie we're in a virtual environment) if type -q dotnet complete -f -c dotnet -a "(dotnet complete (commandline -cp))" end function rand_greet set greetings ${greetings} echo -n $greetings[(random 1 (count $greetings))] end function gitignore -a type curl -sL "https://www.gitignore.io/api/$type" end function decompile objdump --disassemble --demangle --debugging --debugging-tags $argv | bat --language asm end set -g fish_greeting (rand_greet) ''; plugins = [ { name = "grc"; src = pkgs.fishPlugins.grc.src; } ]; }; }