80 lines
1.8 KiB
Nix
80 lines
1.8 KiB
Nix
|
{
|
|||
|
pkgs,
|
|||
|
lib,
|
|||
|
config,
|
|||
|
hmConfig,
|
|||
|
...
|
|||
|
}: {
|
|||
|
programs.nushell = {
|
|||
|
enable = true;
|
|||
|
# The config.nu can be anywhere you want if you like to edit your Nushell with Nu
|
|||
|
#configFile.source = ./.../config.nu;
|
|||
|
# for editing directly to config.nu
|
|||
|
extraConfig = ''
|
|||
|
let carapace_completer = {|spans|
|
|||
|
carapace $spans.0 nushell $spans | from json
|
|||
|
}
|
|||
|
$env.config = {
|
|||
|
show_banner: false,
|
|||
|
completions: {
|
|||
|
case_sensitive: false # case-sensitive completions
|
|||
|
quick: true # set to false to prevent auto-selecting completions
|
|||
|
partial: true # set to false to prevent partial filling of the prompt
|
|||
|
algorithm: "fuzzy"
|
|||
|
external: {
|
|||
|
enable: true
|
|||
|
max_results: 100
|
|||
|
completer: $carapace_completer
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
'';
|
|||
|
|
|||
|
environmentVariables = {
|
|||
|
GNUPGHOME = hmConfig.programs.gpg.homedir;
|
|||
|
};
|
|||
|
};
|
|||
|
|
|||
|
# completion
|
|||
|
programs.carapace = {
|
|||
|
enable = true;
|
|||
|
enableNushellIntegration = true;
|
|||
|
enableBashIntegration = true;
|
|||
|
};
|
|||
|
|
|||
|
# prompt
|
|||
|
programs.starship = {
|
|||
|
enable = true;
|
|||
|
enableNushellIntegration = true;
|
|||
|
enableBashIntegration = true;
|
|||
|
settings = {
|
|||
|
add_newline = true;
|
|||
|
format = ''
|
|||
|
$all $fill $time
|
|||
|
$character
|
|||
|
'';
|
|||
|
fill = {
|
|||
|
symbol = " ";
|
|||
|
};
|
|||
|
line_break = {
|
|||
|
disabled = true;
|
|||
|
};
|
|||
|
directory = {
|
|||
|
truncate_to_repo = false;
|
|||
|
};
|
|||
|
time = {
|
|||
|
disabled = false;
|
|||
|
use_12hr = true;
|
|||
|
};
|
|||
|
character = {
|
|||
|
success_symbol = "[❯](bold green)";
|
|||
|
error_symbol = "[❯](bold red)";
|
|||
|
};
|
|||
|
nix_shell = {
|
|||
|
symbol = " ";
|
|||
|
heuristic = true;
|
|||
|
};
|
|||
|
};
|
|||
|
};
|
|||
|
}
|