69 lines
1.7 KiB
Nix
Executable file
69 lines
1.7 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;
|
|
generateCompletions = true;
|
|
|
|
# vendor = {
|
|
# config.enable = true;
|
|
# functions.enable = true;
|
|
# completions.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
|
|
|
|
function gitignore -a type
|
|
curl -sL "https://www.gitignore.io/api/$type"
|
|
end
|
|
|
|
# ripgrep on files
|
|
function rgf
|
|
rg --files | rg $args
|
|
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;
|
|
}
|
|
];
|
|
};
|
|
};
|
|
}
|