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=";
|
||
|
};
|
||
|
}
|
||
|
];
|
||
|
};
|
||
|
};
|
||
|
}
|