dotfiles/home/apps/nu.nix

70 lines
1.1 KiB
Nix
Raw Normal View History

2024-05-16 16:21:04 +02:00
{
config,
lib,
pkgs,
...
}:
2024-05-16 01:26:47 +02:00
let
plugins = "${pkgs.nu_scripts}/share/nu_scripts";
2024-05-16 16:21:04 +02:00
shellAliases = lib.concatStringsSep "\n" (
lib.mapAttrsToList (k: v: "alias ${k} = ${v}") config.home.shellAliases
);
2024-05-16 01:26:47 +02:00
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
''
2024-05-16 16:21:04 +02:00
+ shellAliases
2024-05-16 01:26:47 +02:00
+ mkCompletions completions;
};
xdg.configFile."nushell/config" = {
source = ./nu/config;
recursive = true;
};
}