{ config, lib, pkgs, ... }: { options = { morphBashToFish = lib.mkEnableOption "morphBashToFish"; }; # TODO: make the greeting controllable (ie so my VPS can be different) config = { programs.fish = { enable = true; interactiveShellInit = '' # 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 weary "Welcome weary traveller to my shop" set alone "It's dangerous to go alone! Take this." set sad "Do butterflies cry when they're sad?" set alice "I think Alice is lost..." set greetings "$weary" "$alone" "$sad" "$alice" echo -n $greetings[(random 1 (count $greetings))] end set -g fish_greeting (rand_greet) ''; plugins = [ { name = "grc"; src = pkgs.fishPlugins.grc.src; } ]; }; }; }