{ pkgs, config, ... }: { programs.nushell = { enable = true; configFile.source = ./nushell/config.nu; envFile.source = ./nushell/env.nu; shellAliases = { cat = "bat"; find = "fd"; df = "duf"; du = "dust -b -d 1"; ll = "ls -al"; nix-shell = "nix-shell --run nu"; cachix-build = "cachix watch-exec jolheiser -- nix build --rebuild --max-jobs 4"; }; extraConfig = with pkgs; '' use ${nu_scripts}/share/nu_scripts/custom-completions/bitwarden-cli/bitwarden-cli-completions.nu * use ${nu_scripts}/share/nu_scripts/custom-completions/btm/btm-completions.nu * use ${nu_scripts}/share/nu_scripts/custom-completions/git/git-completions.nu * use ${nu_scripts}/share/nu_scripts/custom-completions/glow/glow-completions.nu * use ${nu_scripts}/share/nu_scripts/custom-completions/just/just-completions.nu * use ${nu_scripts}/share/nu_scripts/custom-completions/nix/nix-completions.nu * use ${jolheiser.tmpl}/share/tmpl-completions.nu * ''; extraEnv = '' $env.GOPATH = "${config.xdg.dataHome}/go" $env.PATH = ($env.PATH | split row (char esep) | prepend '${config.xdg.dataHome}/go/bin') $env.SPECTRE_USERNAME = "jolheiser" $env.SPECTRE_SECRET-FILE = "${config.age.secrets.spectre-pw.path}" ''; }; xdg.configFile = { "nushell/jolheiser.nu".source = ./nushell/jolheiser.nu; "nushell/ssh.nu".source = ./nushell/ssh.nu; "nushell/miniserve.nu".source = ./nushell/miniserve.nu; "nushell/ohmyposh.nu".source = ./nushell/ohmyposh.nu; }; }