puzzlevision/modules/home/apps/nushell/default.nix
2025-02-09 23:53:19 +01:00

69 lines
1.7 KiB
Nix

{
lib,
pkgs,
config,
namespace,
...
}: let
inherit (lib) mkEnableOption mkIf;
cfg = config.${namespace}.apps.nushell;
in {
options.${namespace}.apps.nushell = {
enable = mkEnableOption "Whether to enable nushell customization.";
};
config = mkIf cfg.enable {
programs = {
nushell = {
enable = true;
extraConfig = ''
let carapace_completer = {|spans|
carapace $spans.0 nushell ...$spans | from json
}
$env.config = {
completions: {
case_sensitive: false # case-sensitive completions
quick: true # auto complete selections
partial: true # partial filling of prompts
algorithm: "fuzzy" # prefix or fuzzy
external: {
# discover completions using $env.PATH
enable: true
# lowering can improve completion performance at the cost of omitting some options
max_results: 200
completer: $carapace_completer # check 'carapace_completer'
}
}
}
$env.PATH = ($env.PATH |
split row (char esep) |
prepend /run/wrappers/bin |
prepend /home/jo/.nix-profile/bin |
append /usr/bin/env/run/wrappers/bin
)
'';
};
carapace.enable = true;
carapace.enableNushellIntegration = true;
starship = {
enable = true;
settings = {
add_newline = true;
character = {
success_symbol = "[](bold green)";
error_symbol = "[](bold red)";
};
};
};
};
home.packages = with pkgs; [
carapace
];
};
}