dotfiles/homes/modules/fish.nix

52 lines
1.3 KiB
Nix
Executable file

{
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)
'';
shellAliases = {
brip = "batgrep"; # bat + ripgrep
man = "batman"; # bat + man
ls = "eza --color=auto";
l = "eza -Alh --color=auto --icons=auto";
ll = "eza -lh --color=auto --icons=auto";
li = "eza --color=auto --git-ignore";
};
plugins = [
{
name = "grc";
src = pkgs.fishPlugins.grc.src;
}
];
};
};
}