Nushell: Difference between revisions
imported>Schrottkatze removed redundant sentence |
imported>Vieta autosuggestion with carapace |
||
Line 15: | Line 15: | ||
====Examples==== | ====Examples==== | ||
Configuration with [https://starship.rs/ | Configuration with [https://starship.rs/ Starship] prompt and autosuggestion support with [https://search.nixos.org/packages?channel=unstable&from=0&size=50&sort=relevance&type=packages&query=carapace carapace] | ||
{{file|~/.config/nixpkgs/home.nix|nix|<nowiki> | {{file|~/.config/nixpkgs/home.nix|nix|<nowiki> | ||
programs = { | programs = { | ||
nushell = { enable = true; | 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 = { | $env.config = { | ||
show_banner: false, | 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" # prefix or fuzzy | |||
external: { | |||
# set to false to prevent nushell looking into $env.PATH to find more suggestions | |||
enable: true | |||
# set to lower can improve completion performance at the cost of omitting some options | |||
max_results: 100 | |||
completer: $carapace_completer # check 'carapace_completer' | |||
} | |||
} | |||
} | } | ||
$env.PATH = ($env.PATH | | $env.PATH = ($env.PATH | | ||
split row (char esep) | | split row (char esep) | | ||
prepend /home/ | prepend /home/vieta/.apps | | ||
append /usr/bin/env | append /usr/bin/env | ||
) | ) | ||
''; | ''; | ||
shellAliases = { | |||
vi = hx; | |||
vim = hx; | |||
nano = hx; | |||
}; | |||
}; | |||
carapace.enable = true; | |||
carapace.enableNushellIntegration = true; | |||
starship = { enable = true; | starship = { enable = true; | ||
settings = { | settings = { |
Revision as of 23:52, 28 October 2023
Nushell is a powerfull shell written in Rust.
Installation
See Command Shell Example if you want Nushell as your default shell.
/etc/nixos/configuration.nix
users.users.myuser= {
...
shell = pkgs.nushell;
};
Configuration
Nushell can be configured with Home Manager.
Examples
Configuration with Starship prompt and autosuggestion support with carapace
~/.config/nixpkgs/home.nix
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" # prefix or fuzzy
external: {
# set to false to prevent nushell looking into $env.PATH to find more suggestions
enable: true
# set to lower can improve completion performance at the cost of omitting some options
max_results: 100
completer: $carapace_completer # check 'carapace_completer'
}
}
}
$env.PATH = ($env.PATH |
split row (char esep) |
prepend /home/vieta/.apps |
append /usr/bin/env
)
'';
shellAliases = {
vi = hx;
vim = hx;
nano = hx;
};
};
carapace.enable = true;
carapace.enableNushellIntegration = true;
starship = { enable = true;
settings = {
add_newline = true;
character = {
success_symbol = "[➜](bold green)";
error_symbol = "[➜](bold red)";
};
};
};
};