{ config, ... }: { imports = [ ./fish/env.nix ]; home.file.".config/nushell/nu".source = ../../shell/nu; programs = { nushell = { enable = true; shellAliases = { vi = "nvim"; }; environmentVariables = let env = import ./fish/env.nix { inherit config; }; in env.home.sessionVariables; extraConfig = '' source ~/.config/nushell/nu/config.nu 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) | append /usr/bin/env | append $"($env.HOME)/.local/share/pnpm" ) ''; }; carapace.enable = true; carapace.enableNushellIntegration = true; }; }