{ ... }: { 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 envFile.source = ./env.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/myuser/.apps | append /usr/bin/env ) ''; shellAliases = { # cd = "z"; update = "sudo nixos-rebuild switch"; clean = "nix-collect-garbage -d"; repair = "nix-store --repair --verify --check-contents"; "." = "cd ../"; ".." = "cd ../../"; "..." = "cd ../../../"; "...." = "cd ../../../../"; ps = "procs"; grep = "rg"; cat = "bat"; vim = "nvim"; # Default flags rm = "rm -i"; chmod = "chmod -R"; cp = "cp -i -v"; mv = "mv -i -v"; mkdir = "mkdir -v"; df = "df -h"; du = "du -h"; dd = "dd status=progress bs=4M conv=fdatasync "; wgetpaste = "wgetpaste -Xx"; sudo = "sudo "; # Makes sudo work with es # ssh = "TERM=xterm ssh"; # Fixes some issues with ssh on some terminals wget = "wget -c"; ping = "ping -c 5"; ftp = "ftp -p"; # Misc alieses I use often ports = "ss -tulanp"; rmd = "rm -rf"; # mine = "sudo chown -R (whoami):users"; benchmark = "hyperfine --warmup 3 "; c = "clear"; listen = "lsof -P -i -n"; octal = "stat -c '%a %n'"; l = "ls --all"; lt = "eza --tree --level=2 --long --icons --git"; }; }; carapace.enable = true; carapace.enableNushellIntegration = true; starship = { enable = true; settings = { add_newline = true; # character = { # success_symbol = "[➜](bold green)"; # error_symbol = "[➜](bold red)"; # }; }; }; }; }