76 lines
1.7 KiB
Nix
76 lines
1.7 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
with lib; let
|
|
cfg = config.modules.fish;
|
|
in {
|
|
options.modules.fish = {
|
|
enable = lib.mkEnableOption "enables fish";
|
|
abbrs = lib.mkOption {
|
|
type = types.attrsOf types.str;
|
|
default = {};
|
|
example = {
|
|
cp = "cp -i";
|
|
lns = "ln -si";
|
|
};
|
|
};
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
programs.fish = {
|
|
enable = true;
|
|
shellAbbrs = cfg.abbrs;
|
|
preferAbbrs = true;
|
|
shellInit = ''
|
|
function fish_command_not_found
|
|
__fish_default_command_not_found_handler $argv
|
|
end
|
|
'';
|
|
plugins = [
|
|
{
|
|
name = "bass";
|
|
inherit (pkgs.fishPlugins.bass) src;
|
|
# src = pkgs.fishPlugins.bass.src;
|
|
}
|
|
{
|
|
name = "colored-man-pages";
|
|
inherit (pkgs.fishPlugins.colored-man-pages) src;
|
|
}
|
|
{
|
|
name = "done";
|
|
inherit (pkgs.fishPlugins.done) src;
|
|
}
|
|
{
|
|
name = "fzf";
|
|
inherit (pkgs.fishPlugins.fzf) src;
|
|
}
|
|
{
|
|
name = "pisces";
|
|
inherit (pkgs.fishPlugins.pisces) src;
|
|
}
|
|
{
|
|
name = "getopts.fish";
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "jorgebucaran";
|
|
repo = "getopts.fish";
|
|
rev = "4b74206725c3e11d739675dc2bb84c77d893e901";
|
|
sha256 = "9hRFBmjrCgIUNHuOJZvOufyLsfreJfkeS6XDcCPesvw=";
|
|
};
|
|
}
|
|
{
|
|
name = "replay.fish";
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "jorgebucaran";
|
|
repo = "replay.fish";
|
|
rev = "d2ecacd3fe7126e822ce8918389f3ad93b14c86c";
|
|
sha256 = "TzQ97h9tBRUg+A7DSKeTBWLQuThicbu19DHMwkmUXdg=";
|
|
};
|
|
}
|
|
];
|
|
};
|
|
};
|
|
}
|