{ pkgs, ... }: let shellAliases = import ./aliases.nix; aliasesStr = builtins.concatStringsSep "\n" ( pkgs.lib.mapAttrsToList (k: v: "alias ${k} = ${v}") shellAliases ); in { programs.nushell = { enable = true; package = pkgs.unstable.nushell; configFile.text = '' $env.config = { edit_mode: "vi" show_banner: false } ${aliasesStr} use ${pkgs.unstable.nu_scripts}/share/nu_scripts/modules/network/ssh.nu * use ${pkgs.unstable.nu_scripts}/share/nu_scripts/modules/git/git.nu * use ${pkgs.unstable.nu_scripts}/share/nu_scripts/modules/nix/nix.nu * use ${pkgs.unstable.nu_scripts}/share/nu_scripts/modules/docker/docker.nu * use ${pkgs.unstable.nu_scripts}/share/nu_scripts/custom-completions/git/git-completions.nu * use ${pkgs.unstable.nu_scripts}/share/nu_scripts/custom-completions/nix/nix-completions.nu * use ${pkgs.unstable.nu_scripts}/share/nu_scripts/custom-completions/cargo/cargo-completions.nu * use ${pkgs.unstable.nu_scripts}/share/nu_scripts/custom-completions/npm/npm-completions.nu * use ${pkgs.unstable.nu_scripts}/share/nu_scripts/custom-completions/auto-generate/completions/wget.nu * # use ${pkgs.unstable.nu_scripts}/share/nu_scripts/custom-completions/auto-generate/completions/tar.nu * # TODO broken use ${pkgs.unstable.nu_scripts}/share/nu_scripts/custom-completions/auto-generate/completions/zstd.nu * use ${pkgs.unstable.nu_scripts}/share/nu_scripts/custom-completions/auto-generate/completions/unzstd.nu * use ${pkgs.unstable.nu_scripts}/share/nu_scripts/custom-completions/auto-generate/completions/npm.nu * use ${pkgs.unstable.nu_scripts}/share/nu_scripts/custom-completions/auto-generate/completions/dotnet.nu * use ${pkgs.unstable.nu_scripts}/share/nu_scripts/custom-completions/auto-generate/completions/terraform.nu * ''; envFile.text = ""; }; }