{ config, lib, inputs, ... }: let cfg = config.seth.shell.nushell; theme = "catppuccin-${config.catppuccin.flavour}"; in { options.seth.shell.nushell = { enable = lib.mkEnableOption "Nushell configuration"; }; config = lib.mkIf cfg.enable { programs = { nushell = { enable = true; configFile.text = '' def "nixgc" [] { sudo nix-collect-garbage -d; nix-collect-garbage -d } ''; envFile.text = '' use ${inputs.nu-scripts}/themes/nu-themes/${theme}.nu $env.config.color_config = (${theme}) ''; inherit (config.home) shellAliases; }; bash.initExtra = lib.mkAfter '' if [[ $(ps --no-header --pid=$PPID --format=comm) != "nu" && -z ''${BASH_EXECUTION_STRING} ]]; then exec ${lib.getExe config.programs.nushell.package} fi ''; # builtin `ls` is good here! eza.enable = lib.mkForce false; }; }; }