{ pkgs, realPkgs, config, lib, ... }: # Temporarily broken due to Nixpkgs issue. lib.mkIf false { programs.nushell = { enable = true; package = realPkgs.nushell; configFile.text = '' let config = { filesize_metric: false table_mode: rounded use_ls_colors: true } ''; envFile.text = '' $env.FOO = 'BAR' ''; loginFile.text = '' # Prints "Hello, World" upon logging into tty1 if (tty) == "/dev/tty1" { echo "Hello, World" } ''; plugins = [ realPkgs.nushellPlugins.formats ]; shellAliases = { "ll" = "ls -a"; "multi word alias" = "cd -"; "z" = "__zoxide_z"; }; settings = { show_banner = false; display_errors.exit_code = false; hooks.pre_execution = [ (lib.hm.nushell.mkNushellInline ''{|| "pre_execution hook"}'') ]; }; environmentVariables = { FOO = "BAR"; LIST_VALUE = [ "foo" "bar" ]; PROMPT_COMMAND = lib.hm.nushell.mkNushellInline ''{|| "> "}''; ENV_CONVERSIONS.PATH = { from_string = lib.hm.nushell.mkNushellInline "{|s| $s | split row (char esep) }"; to_string = lib.hm.nushell.mkNushellInline "{|v| $v | str join (char esep) }"; }; }; }; nmt.script = let configDir = if pkgs.stdenv.isDarwin && !config.xdg.enable then "home-files/Library/Application Support/nushell" else "home-files/.config/nushell"; in '' assertFileContent \ "${configDir}/config.nu" \ ${./config-expected.nu} assertFileContent \ "${configDir}/env.nu" \ ${./env-expected.nu} assertFileContent \ "${configDir}/login.nu" \ ${./login-expected.nu} assertFileExists \ "${configDir}/plugin.msgpackz" ''; }