59 lines
1,006 B
Nix
59 lines
1,006 B
Nix
{ lib, pkgs, ... }:
|
|
let
|
|
plugins = "${pkgs.nu_scripts}/share/nu_scripts";
|
|
|
|
mkCompletions =
|
|
completions:
|
|
lib.concatStringsSep "\n" (
|
|
builtins.map (
|
|
el:
|
|
let
|
|
name = el.name or el;
|
|
filename = el.filename or el;
|
|
in
|
|
"source ${plugins}/custom-completions/${name}/${filename}-completions.nu"
|
|
) completions
|
|
);
|
|
|
|
completions = [
|
|
"cargo"
|
|
"composer"
|
|
"gh"
|
|
"git"
|
|
"just"
|
|
"man"
|
|
"nix"
|
|
"npm"
|
|
"pnpm"
|
|
"poetry"
|
|
"rg"
|
|
"tar"
|
|
{
|
|
name = "tealdeer";
|
|
filename = "tldr";
|
|
}
|
|
{
|
|
name = "yarn";
|
|
filename = "yarn-v4";
|
|
}
|
|
];
|
|
in
|
|
{
|
|
home.packages = [ pkgs.carapace ];
|
|
programs.nushell = {
|
|
enable = true;
|
|
|
|
configFile.source = ./nu/config.nu;
|
|
|
|
extraConfig =
|
|
''
|
|
source ${plugins}/aliases/git/git-aliases.nu
|
|
''
|
|
+ mkCompletions completions;
|
|
};
|
|
|
|
xdg.configFile."nushell/config" = {
|
|
source = ./nu/config;
|
|
recursive = true;
|
|
};
|
|
}
|