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;
|
||
};
|
||
};
|
||
};
|
||
}
|